Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 如何选择Visual Studio解决方案平台工具集以实现最大兼容性 背景_Visual Studio 2010_Visual Studio_Configuration_Cross Platform_Compatibility - Fatal编程技术网

Visual studio 2010 如何选择Visual Studio解决方案平台工具集以实现最大兼容性 背景

Visual studio 2010 如何选择Visual Studio解决方案平台工具集以实现最大兼容性 背景,visual-studio-2010,visual-studio,configuration,cross-platform,compatibility,Visual Studio 2010,Visual Studio,Configuration,Cross Platform,Compatibility,我正在开源一些我不久前创建的旧VisualStudio应用程序。我使用新的VS2012环境为他们创建了新的解决方案,并将项目设置为git存储库。我在VisualStudio2012中一切正常,没有对源代码进行任何更改,我所需要做的就是确保在新的项目配置中链接正确的库 我想将这些项目配置为对从Github下载项目的其他人具有最大兼容性。在这台机器上,我安装了VS2010和最新的VS2012版本。在VS2012中,我让这两个项目的一切都正常工作之后,我尝试在VS2010中打开它们 当我尝试构建时,出

我正在开源一些我不久前创建的旧VisualStudio应用程序。我使用新的VS2012环境为他们创建了新的解决方案,并将项目设置为git存储库。我在VisualStudio2012中一切正常,没有对源代码进行任何更改,我所需要做的就是确保在新的项目配置中链接正确的库

我想将这些项目配置为对从Github下载项目的其他人具有最大兼容性。在这台机器上,我安装了VS2010和最新的VS2012版本。在VS2012中,我让这两个项目的一切都正常工作之后,我尝试在VS2010中打开它们

当我尝试构建时,出现了一个错误:

Specified platform toolset (v110) is not installed or invalid.
Please make sure that a supported PlatformToolset value is selected.    
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets  518
我试过的 因此,我打开了项目的属性,转到
配置选项-->常规
,而平台工具集确实设置为
Visual Studio 2012(v110)
。此输入是一个下拉框,
v110
值未列出,而是有两个选择:

  • v100
  • v90
这些分别对应于VS2010和VS2008。如果我将值更改为v100并重新生成,则不会出现错误,并且我的程序在VisualStudio2010环境中运行良好

当我在Visual Studio 2012中打开项目备份时,如果告诉我有一个旧项目文件,并询问是否要升级,我会说是,然后它会升级。我重建并运行,以确保一切正常。当我在VS2012中打开配置选项时,平台工具集被设置回“Visual Studio 2012(v110)”,但单击下拉输入,会列出更多选项:

  • Visual Studio 2012(v110)
  • v110_wp80
  • Visual Studio 2012-Windows XP(v110_XP)
  • VisualStudio2010(v100)
  • Visual Studio 2008(v90)
  • 媫从父项或项目默认值继承›
我的问题 这就引出了几个问题。我要把它们都摆出来。如果我能得到尽可能多的信息就好了,但是只要对其中一个问题给出一个好的答案就可能解决我的问题

  • 如果我没有使用Visual Studio较新版本的特定功能,是否可以设置一个解决方案,该解决方案可以在尽可能多的版本(即2008、2010或2012)中打开并运行而无需修改?如果是,怎么做

  • 如果我在Visual Studio 2012中将平台工具集设置为v90(VS2008),并且它能够构建和运行,这是否意味着它将为使用VS2012、VS2010和VS2008的用户构建和运行

  • 选项的具体功能是什么?项目默认设置为什么?这可以用来告诉Visual Studio尝试使用任何安装的平台工具集都可以

  • 除了Visual Studio中的平台工具集之外,我还可以设置其他选项来提高与其他开发环境的兼容性吗


这是一个有点棘手的情况。这里的一个潜在问题是VS2010和VS2012使用MSBug来构建C++项目,而VS2008将其移植到VCBug中。通过比较项目文件可以看到这一点。VS2010/VS2012使用.vcxproj,而VS2008使用.vcproj

如果我没有使用新版本Visual Studio的特定功能, 是否可以设置一个可以打开并运行的解决方案 无需修改尽可能多的版本(即2008年、2010年、, 还是2012年?如果是,怎么做

为了获得最大的兼容性,您希望以最低的公分母为目标(即本例中的vc90)。请注意,升级时,解决方案文件和项目文件将升级到最新版本,这可能会破坏与旧版本Visual Studio的兼容性

如果我从Visual Studio中将平台工具集设置为v90(VS2008) Studio 2012,并且它能够构建和运行,这是否意味着 是否将使用VS2012、VS2010和VS2008为用户构建和运行

不太可能,因为上面提到的.vcxproj/.vcproj冲突

例如,我目前有一组.vcxproj文件和一个为VS2010设计的解决方案。我使用VS2012作为IDE,因此当我在VS2012中打开VS2010解决方案时,我选择不升级它,而是按原样打开它。就项目文件而言,VS2012及其后版本应向后兼容VS2010


为了在开发环境中实现最大的兼容性,我的建议是使用VS2010的解决方案作为基准,以v100为目标。开发人员可以使用比这个版本更新的任何版本,它们应该能够优雅地协同工作。

感谢您提供的详细答案。这至少让我知道我应该做什么。