Clarifying a few things which I know will come up:

- Both outputs are from a Release configuration, therefore the default compiler optimizations should be "on" for both builds.

- Both outputs are from the same set of source code and project files.

- The version of MSBuild might be slightly different between the two, but they should both be basically MSBuild version 15.

- I tried adding the /deterministic parameter to the command line of MSBuild and it failed, saying that it didn't recognize that parameter.

- I tried adding <Deterministic>true</Deterministic> to the CSPROJ file of one of the modules as described here, and the files still differed in the same way. I'm thinking the flag was simply ignored in the project file.

- Actually I notice that when MSBuild calls out to the Roslyn compiler (csc.exe), it adds "/deterministic+" to every one of them already anyway. Here's an example output (some filenames blurred on purpose):
Code:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Roslyn\csc.exe
/noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:TRACE /highentropyva+
/reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\mscorlib.dll"
/reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Core.dll"
/reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.dll"
/debug:pdbonly /filealign:512 /optimize+
/out:obj\Release\***************.dll
/ruleset:d:\_work\1\s\Development\***********.ruleset
/subsystemversion:6.00 /target:library /warnaserror+ /utf8output /deterministic+
**********.cs **********.cs **********.cs **********.cs **********.cs (etc)


Though I don't know what the "plus sign" means after the parameter. There are a few parameters with the plus sign after them. Any idea what those mean?
_________________________
Tony Fabris