如果没有指定,msbuild如何选择平台?在我看来,对于某些解决方案,它为其他“x86”选择“混合平台”。
我打开日志记录的诊断级别,我唯一能看到的是开头的“初始属性”包含例如“平台=混合平台”没有任何解释。
为了抢占一些答案,我知道我可以手动覆盖平台。这不是问题。我需要知道未指定时 msbuild 会做什么。
这可能会有所帮助:我正在研究这个,并最终通过查看找到了我的安装的默认平台Microsoft.Cpp.Default.props
(此版本的 Visual Studio 中的第 21 行),位于Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120
:
<Platform Condition="'$(Platform)' == ''">Win32</Platform>
这意味着在 VS12 (Visual Studio 2013) 下,如果没有明确指定其他平台,MSBuild 将选择 Win32 作为平台。正如其他一些问题中所述,设置一个名为的环境变量Platform
会将默认值更改为您设置的值。
重要的提示:如果在 Visual Studio 解决方案文件 (*.sln) 而不是项目文件上调用 MSBuild,并且未在 MSBuild 参数中指定平台,则 MSBuild 将根据第一个条目自动选择平台在下面SolutionConfigurationPlatforms
解决方案文件中的全局部分。我还没有在任何地方找到这个记录,但从实验看来确实如此。这意味着编辑项目文件并提供不同的默认平台属性(如上所述),MSBuild 将ignore这是默认值,因为它在开始查看项目之前就已经选择了平台。直接在项目文件上调用 MSBuild 似乎可以绕过此行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)