Visual Studio在转换为2013的项目上使用较旧的2012编译器

迈克尔·多根(Michael Dorgan)

我从VS2012继承了一个(小型)构建系统,我们的团队希望将其带到VS2013。我已经在解决方案上运行了向导以“转换”到2013年,这已尽职地将各种.vcxproj文件中的VisualStudioVersion和Project ToolsVersion更改为“ 12.0”,并在此处和此处添加了一些额外的字段,没有报告错误或警告。

但是,IDE仍将这些项目显示为2012:

Solution 'foo'
   Bar (Visual Studio 2012)

而且IDE仍然允许我“升级”这些项目。我确实注意到转换过程也没有碰到任何.props文件,我已经浏览并手动更新了它们,但是它似乎仍未使用最新版本的编译器,并且IDE仍然很混乱-或不是“ t。

我是这里的MSBuild新手,所以也许这只是某个地方的一个简单失踪标记-希望吗?

另外,在首次构建时会收到大量的模式警告,但是我相信这是我研究中的已知功能。

我还要在这里看看什么?

pdm2011

确保每个配置属性组(即定义构建配置的每个组)在其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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Linux上的Visual Studio 2012编译器替代方案?

在Visual Studio 2013中使用Roslyn编译器

如何在Microsoft Visual C ++ 2019中选择较旧的编译器?

配置Visual Studio 2013以允许ASPNETCOMPILER使用x64编译器进行预编译

在Visual Studio 2013上编译旧的C ++代码

如何使用 Visual Studio 编译器在 Windows 上编译 cython 编译的 c 代码

如何在Visual Studio 2012或Visual Studio 2013中打开旧的MVC项目?

安装Visual Studio 2015是否会更改VS 2013使用的编译器?

什么是 ?和@符号表明此编译器错误?-Visual Studio 2013编译器

如何在Windows下使用cmake生成使用Intel编译器的Visual Studio项目

使用Visual Studio编译器分析内联的C ++函数

C ++:使用Visual Studio编译器时的const指针

在Visual Studio中使用64位编译器

Visual Studio 编译器错误(不能使用逗号)

将Visual Studio 2010项目转换为Visual Studio 2012

在Visual Studio中更改(使用较旧的)C ++版本

如何在Visual Studio 2012 Release 2中获得.less编译器支持?

在Visual Studio 2012上无法打开项目

编译器无法在使用cmake配置的Visual Studio项目中执行C ++ 11指令

使用 Visual Studio 2017 构建 SSDT 项目时如何将 /unsafe 标志传递给 C# 编译器

在Visual Studio 2013中更改编译器错误语言

Visual Studio 2013 Typescript编译器不遵守'_references.ts'文件

Visual Studio 2013中可能的C / C ++编译器错误

如何防止输出屏幕在Visual Studio 2013 C ++编译器中消失

static_assert(std :: is_abstract)在Visual Studio 2013中导致编译器错误

CMake:将条件编译器标志添加到Visual Studio项目中

当 Visual Studio 运行良好时,向量迭代器上的 LInux g++ 编译器错误

使用Visual Studio编译器在编译时获取矢量元素的大小(即使它为空)

使用g ++编译器在Visual Studio中编译C ++程序会在最后生成%