是否可以拥有向后兼容 vs2013 和 vs2017 的 vs 项目?
Posted
技术标签:
【中文标题】是否可以拥有向后兼容 vs2013 和 vs2017 的 vs 项目?【英文标题】:Is it possible to have vs project that is backwards compatible with vs2013 and vs2017? 【发布时间】:2017-10-25 23:27:26 【问题描述】:所以我的团队现在使用 VS2013,而我最近刚刚证明我可以使用 VS2017 运行我们的项目。所以我想知道是否有一种方法可以将我的更改推送到我们的主分支,而我的团队不会注意到任何事情。这意味着如果他们打开他们的 VS2013,他们就可以很好地运行项目,当我使用 VS2017 运行它时,它也可以正常运行。 (它现在不会这样做,因为 3rdParty 库是用 msvc 1800 编译的,而我的项目在 msvc 1900 上运行它会给我链接错误)
我可以利用 MSBuild 条件来执行此操作吗?
<Choose>
<When Condition=" '$(Configuration)'=='Debug' ">
<PropertyGroup>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>.\bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="UnitTesting\*.cs" />
<Reference Include="NUnit.dll" />
</ItemGroup>
</When>
<When Condition=" '$(Configuration)'=='retail' ">
<PropertyGroup>
<DebugSymbols>false</DebugSymbols>
<Optimize>true</Optimize>
<OutputPath>.\bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
</When>
</Choose>
【问题讨论】:
您可以尝试使用平台工具集“Visual Studio 2013(v120)”在 Visual Studio 2017 中构建您的项目,检查它是否构建良好。 ***.com/questions/19575747/… 您需要澄清一些事情:当您使用 VS2017 打开项目时,您想使用 VS2017 或 VS2013 附带的编译器/链接器来构建它?你想用 MsBuild 条件做什么?您是否有一个应该有条件地构建/使用的功能示例? 【参考方案1】:您应该可以使用 VS17 和您的团队 VS13。如果您在 VS17 中打开项目,请不要升级您的 Windows SDK 版本和平台工具集和团队,您可以照常构建,但您不能使用新的 C++ 功能,因为旧的 VS13 编译器无法编译它们
【讨论】:
以上是关于是否可以拥有向后兼容 vs2013 和 vs2017 的 vs 项目?的主要内容,如果未能解决你的问题,请参考以下文章