我从VS2012继承了一个(小型)构建系统,我们的团队希望将其带到VS2013。我已经在解决方案上运行了向导以“转换”到2013年,这已尽职地将各种.vcxproj文件中的VisualStudioVersion和Project ToolsVersion更改为“ 12.0”,并在此处和此处添加了一些额外的字段,没有报告错误或警告。
但是,IDE仍将这些项目显示为2012:
Solution 'foo'
Bar (Visual Studio 2012)
而且IDE仍然允许我“升级”这些项目。我确实注意到转换过程也没有碰到任何.props文件,我已经浏览并手动更新了它们,但是它似乎仍未使用最新版本的编译器,并且IDE仍然很混乱-或不是“ t。
我是这里的MSBuild新手,所以也许这只是某个地方的一个简单失踪标记-希望吗?
另外,在首次构建时会收到大量的模式警告,但是我相信这是我研究中的已知功能。
我还要在这里看看什么?
确保每个配置属性组(即定义构建配置的每个组)在其PlatformToolset元素中均以2013编译器为目标:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<PlatformToolset>v120</PlatformToolset>
...
</PropertyGroup>
还要检查您是否没有重复的属性组-任何属性组的一个实例都应具有相同的Condition和Label属性。由于平台和配置的合并和插入/删除,.vcxproj文件可能会随着时间的流逝而碎片化,重复的组会有效地取消定义文件中先前定义的配置元素。将重复的属性组合并为一个组。
如果要在一个props文件的宏中定义工具集版本,请确保它是v120。
还要检查您的道具文件是否与您期望的所有项目配置相关联。您可以查看每个配置的vcxproj文件的ImportGroup元素中直接包含了哪些道具,或者在Visual Studio中查看属性管理器-展开每个Configuration | Platform节点以查看已包含的道具文件列表。 。
最后,如果您的项目具有CLR支持,请将框架版本设置为v4.5.1:
<Project>
<PropertyGroup Label="Globals">
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
...
</PropertyGroup>
</Project>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句