/p:Platform=x86
,但实际上可能是/p:PlatformTarget=x86
。如果程序集本身始终是32位的,为什么不将设置添加到.vbproj文件中?这将排除MSBuild的影响。
只需在.vbproj文件中的初始PropertyGroup中添加以下行:
<PlatformTarget>x86</PlatformTarget>
如果有帮助的话,我使用了以下命令行构建我的x86平台目标:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe my.sln /t:build /p:Configuration=Release;Platform=x86
.proj
/.targets
文件中指定所需的“平台”和“版本”。例如:<ConfigurationToBuild Include="Release|x86">
<FlavorToBuild>Release</FlavorToBuild>
<PlatformToBuild>x86</PlatformToBuild>
</ConfigurationToBuild>
.sln
文件中复制/粘贴“Release|x86”字符串(或其它类似的字符串),以确保完全匹配,因为你无法从“解决方案资源管理器”中获取这些信息。PlatformToBuild
)包装在一组全局属性ConfigurationToBuild.PlatformToBuild
(等等)中,这些属性会根据需要动态生成,每个配置生成一次。这使得Team Build引擎在内部更加灵活,但也使得实现想要的命令行行为更加困难。ConfigurationToBuild.PlatformToBuild
,这可能有效,但我不确定。但是这肯定会阻止你在单个构建定义中构建多个配置。出于这个原因,我还是坚持以上的建议。经历了相同的问题后,我从使用位于 C:\WINDOWS\Microsoft.NET\Framework64
的 MSBuild 版本切换到位于 C:\WINDOWS\Microsoft.NET\Framework
(没有 64
)的版本,然后编译就正常了。
<msbuild project="your.sln">
<property name="PlatformTarget" value="x86" />
</msbuild>