如何通过" msbuild.exe"传递烦人的/Zm500
(500%虚拟内存,因为MS编译器是傻瓜甚至32位)这样当使用它编译解决方案时,每个" cl.exe"调用
答案 0 :(得分:2)
如何通过烦恼的/ Zm500通过" msbuild.exe"
我们无法直接通过MSBuild命令行传递全局选项/ Zm。因为PreprocessorDefinitions
为CLCompile
,不为PropertyGroup
。
<ClCompile>
<AdditionalOptions>/bigobj /Zm500 %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
</ClCompile>
作为此问题的解决方法,您可以添加目标调用MSBuild,以通过MSBuild命令行将外部参数传递到项目文件中:
首先,在项目文件中用$(Zm)更改“/ Zm500”的固定值:
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalOptions>/bigobj $(Zm) %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
</ClCompile>
其次,将目标添加到项目文件中:
<Target Name="TestBuild" Returns="@(ManagedTargetPath)">
<MSBuild Projects="YourProjectName.xxproj" Targets="NormalBuild" Properties="Zm=/Zm500"/>
</Target>
第三,使用带有属性/ Zm的MSBuild命令行:
msbuild.exe "$(ProjectPath)\.xxproj" /p:Zm=/Zm500