MSBUILD / csc: Cleanest way of handling x64 mscorlib warning 1607
I found by changing my project's Target framework to .NET Framework 4 it eliminated the warning.
In this blog I found a proposal that is too long to copy it entirely over here, but in short the idea can be described with summary adapted from this comment:
In the project file, you can define a custom variable in the PropertyGroup section for each build configuration. Example:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<MyCustomPath>C:\Windows\Microsoft.NET\Framework64</MyCustomPath>
</PropertyGroup>
Just add a tag such as
<Reference Include="System.Data">
<HintPath>$(MyCustomPath)</HintPath>
</Reference>
and then use the macro to define the reference path.
You can define MyCustomPath to a different location for different build configurations (platform and/or debug/release).
The problem would not exist if MS would support this in the VS UI, but until then this will work. I use this technique to reference different versions of the same assemblies in my debug & release builds. Works great!
In the above recitation I recovered the tag that was lost in the source commentarium and changed the wording to be somewhat more detailed.
An additional interesting piece from the same blog:
There’s some other ways to do this but they also require one to manually edit the project files. One way is to specify conditions to PropertyGroup-sections. This StackOverflow question highlights the use of conditions.