TL;DR - The X++ compiler will be able to generate cross reference information without doing assembly and fat PDB file generation.
One of the reasons that we see customers recompiling our source code is to get the latest snapshot of the code recorded in the cross-reference database. As you know, this is the information (stored in the DYNAMICSXREFDB database) that talks about where things are used and defined. This information is what ultimately powers the "Go to definition" and several other bits and pieces of functionality within Visual Studio.
We recognize that the latest cross reference information is indeed desirable to have in your development work, but it does seem wasteful to have to do a full compilation for that. Ideally you would want to keep the assemblies and skinny PDB files shipped by Microsoft unmodified. The point about the PDB files is crucial: We ship portable (i.e., skinny) PDB files that are optimized for size, which improves the debugging experience, since it decreases the memory pressure that VS has to endure. Currently you cannot generate the portable PDB files, although we plan to allow that soon.
To allow you to spend less time recompiling, and to leave the shipped assemblies and optimized PDBs unscathed, we have provided a switch on the compiler to stop the compilation process before the code generation, but after the cross-reference generation. This is what it looks like in Visual Studio:
As you can see, you can also turn off the cross-reference generation, which is useful for those cases where you need the maximum compilation performance, and you know that the cross-reference information does not need to be updated. In fact, half of the compilation time is actually spent updating the cross-reference information.
Please note, that I sometimes cover things in these blogs that may not be available when you read the blog. As you all know, some time passes from a feature leaves the laboratory to it arrives in production on your site. I do these blogs because I want your comments as early as possible, and to allow you to be informed about the work we do.
*This post is locked for comments