I'm rubbing the EmpegBBS genie lamp here, I'm hoping someone might know this one...

I'm in the process of converting our company's Build/CI/CD system from Team City to Azure DevOps Pipelines. One of my tasks is to move our product's main compilation step (which is done with MSBuild version 15.0 aka VS2017) to run on a different set of build agent machines, triggered by a different set of processes.

I'm checking to be sure that the resulting compiled executables are more-or-less the same on the new system as they were on the old system. I know that it's normal for some things to be different, I'm not expecting them to be binary-identical. However, I'm seeing a significant difference which looks like a compiler-settings kind of thing, and I'm wondering if anyone recognizes this particular difference. What am I getting wrong in the compiler settings? I'm worried that this is some kind of canary in the coal mine which indicates I've missed something important in my configuration settings.

I've done a "dump" of a particular DLL in our artifact set using the ILDASM tool, and I see this interesting difference in the "User Strings" section. The Azure DevOps Pipeline build is "baking in" some of the format-strings, whereas the Team City build leaves them separated. An example screen shot from Beyond Compare is attached below, to make my question clear.

Does anyone know what compiler optimization setting controls this thing shown in the screen shot? For example, a command line parameter to MSBuild or something.

Thanks!







Attachments
Dump Diff.png (229 downloads)

_________________________
Tony Fabris