Visual studio 2013 如何将VS 2013项目转换为能够在VS 2005中运行?

Visual studio 2013 如何将VS 2013项目转换为能够在VS 2005中运行?,visual-studio-2013,Visual Studio 2013,我有一个VisualStudio2013解决方案,我想让它与VisualStudio2005一起工作。如何降级解决方案文件 我在.sln文件中注意到这一行: MinimumVisualStudioVersion = 10.0.40219.1 但是,将此行更改为低于我的Visual Studio版本号的8.x.xxxxx.x,仍然失败,并出现相同的错误。简单的回答是,您不能(据我所知)。最快的选择是创建一个银行VS2005解决方案和项目,以模仿您现有的2013版本。然后在两个项目之间剪切/粘贴文

我有一个VisualStudio2013解决方案,我想让它与VisualStudio2005一起工作。如何降级解决方案文件

我在
.sln
文件中注意到这一行:

MinimumVisualStudioVersion = 10.0.40219.1

但是,将此行更改为低于我的Visual Studio版本号的
8.x.xxxxx.x
,仍然失败,并出现相同的错误。

简单的回答是,您不能(据我所知)。最快的选择是创建一个银行VS2005解决方案和项目,以模仿您现有的2013版本。然后在两个项目之间剪切/粘贴文件列表,直到它在2005年打开并生成。您也将无法使用任何大于.NET 2.0和/或NuGet的功能,这在当时是不存在/不受支持的


VS2013必须转换一个VS2005解决方案/项目才能打开它,因此它实际上没有任何倒退的希望(即VS2005对一个VS2013解决方案/项目文件感到满意)

由于Visual studio不支持降级,您不能直接或通过更改任何文件来进行降级,我建议更好的方法是在VisualStudio2005中创建另一个项目并导入其中的所有文件


只有在项目中没有使用比VS2005更高版本的库时,才能执行此操作

使用文本编辑器打开.sln和项目文件,记事本就可以了。sln文件是最容易破解的,多年来没有太大变化。您将在文件顶部看到类似的内容:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
然后是项目和配置的列表。“格式版本”是最重要的值,如果它与VS版本不匹配,那么它将很快无法加载解决方案。数值为8.00=VS2005、9.00=VS2008、10.00=VS2010、11.00=VS2012、12.00=VS2013

提到VS版本的行是最新添加的,最初是在VS2012中添加的,以支持VS无需升级即可打开旧项目的功能。只需删除这些行


然后你必须处理项目文件,它们肯定是最难破解的。你没有提到你正在使用的语言,这确实很重要

首先,如果这是C、C++或C++/CLI项目(给定请求的可能性很高),那么立即停止。VS2010之前的Visual Studio版本对这些语言使用非标准生成系统,由VCBuild.exe生成工具驱动。.vcproj文件格式非常不同,与后来的.vcxproj文件格式完全不同。只有从头开始重新创建.vcproj文件才是明智的做法

如果它是一个.csproj或.vbproj文件,那么您可以尝试一下。最好的方法是在VS2005中启动一个新项目,以便文件中的核心条目(project、Import和PropertyGroup项)具有合理的值。然后从VS2013项目文件复制/粘贴项目组。通过这种方式,您将获得正确的引用程序集和源文件。

为您完成这项工作。我们成功地将其用于VS2012=>VS2008降级


但是如果您有时间,我建议您检查这个项目的代码,并制作一个自定义脚本来进行转换。这样,您就可以毫无摩擦地将其添加到持续集成环境中。

解决方案文件描述了项目文件的集合。仅仅通过改变解决方案是行不通的。您还必须降级所有项目文件。这可能相当复杂,取决于您拥有的项目类型。项目文件基本上是MSBuild的输入文件。但是,如果您有VC++项目,他们在VS 2013之前没有使用MSBuild。请提供您所拥有的更多详细信息。“同一错误”是什么?针对哪个框架版本?@Kevin-更改现有问题的内容并对其进行悬赏可能不适合问您自己的问题。我知道这两个问题非常相似,但是你把OP的问题改变了很多,从一个项目到另一个解决方案,例如,通过添加你尝试过的内容,OP可能从未尝试过。如果这样做,旧的答案可能会变得有点混乱。