【问题标题】:Visual Studio won't open solution fileVisual Studio 不会打开解决方案文件
【发布时间】:2010-09-21 09:03:36
【问题描述】:

我有一个 VS 项目(由其他人制作),当我尝试在 Visual Studio 2008 上打开它时,我收到以下错误消息:

“所选文件是解决方案文件,但由该应用程序的较新版本创建,无法打开”

我原以为 VS 是向后兼容的。有什么办法可以打开吗?

【问题讨论】:

标签: visual-studio-2008 backwards-compatibility


【解决方案1】:

您可以手动编辑 sln 和 csproj/vbproj 文件并尝试这种方式,我使用过这种方法,没有任何副作用。 在 sln 文件中,VS2010 的第一行会说

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010

对于 VS2008 解决方案:

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008

此外,在 2010 年的项目文件中,您可能会找到类似的部分

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

需要修改为

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />

仅通过这两种类型的更改,我就能够使用 VS 2008 打开解决方案和项目。当然,可能会出现其他差异,但如果您有时间,您始终可以使用尝试/失败方法,直到您管理它。

【讨论】:

  • 确认为 VS2012 --> VS2010 过渡工作。不过&lt;Import Project /&gt; 没有必要修改。
  • 已确认,适用于 VS13 -> 10。与上面的帖子一样,不需要
  • 这样我成功地完成了 2008 年 -> 2005 年的过渡。我还必须修改.vcproj 文件(一个xml),属性从Version="9.00"Version="8.00"
  • 看来,只要您有备份,您就可以将 .sln 和 .*proj 文件替换为这些文件的问题前版本。在 VS 2008 中打开一个 VS 2003 项目,然后尝试在 VS 2003 中再次打开它后,我将 *.sln 文件中的一个部分从“Microsoft Visual Studio 解决方案文件,格式版本 10.00 #Visual Studio 2008”更改为“ Microsoft Visual Studio 解决方案文件,格式版本 7.1 #Visual Studio 2003”但是我还必须用旧备份替换较新的 proj 文件,这些备份“缺少 'VisualStudioProject' 部分。”
  • 确认为 VS2015 --> VS2010 过渡工作。和上面的帖子一样, 不需要
【解决方案2】:

VS 向后兼容,是的 - 例如,您可以在 VS 2008 中打开 VS 2005 解决方案文件。虽然它不是 forward 兼容的 - 大概该解决方案是由使用 VS 2010 的人创建的。编辑:根据 cmets,使用 VS2010 SP1,您可以打开 VS2012 解决方案。我自己还没有验证过。

幸运的是,虽然解决方案文件不兼容,但我相信您应该能够在 VS 2008 中创建一个新的解决方案并添加现有的用 2010 创建的 project 文件,只要它们没有'没有使用任何 VS2010 特定的功能(无论是在项目结构中还是在代码本身中)。如果代码以 .NET 4 为目标,您可能需要调整项目文件以将其也重新定位为 .NET 3.5。

您可能会看到关于此的警告(未知工具版本,或类似的东西) - 但它可能会很好地工作。我有许多项目,它们有单独的 VS2008 和 VS2010 的 solution 文件,但使用相同的 project 文件。

【讨论】:

  • 感谢您的回复。这个项目有大量的项目文件。获得VS 2010会更容易吗?
  • @TaraW,似乎多选一堆 csproj 文件比安装 VS2010 版本要少得多。对于剩下的 2010 年当然不是一个坏主意。
  • @TaraWalsh:如果获得 VS2010 是一种选择,那么无论如何我都会这样做。它比VS2008更好,你会得到C#4/VB10、.NET 4等的新特性。
  • 如果安装了sp1,VS2010可以打开VS2012(Forward Compatible)的开放解决方案。
  • @kroiz:谢谢 - 我已经为此添加了评论。
【解决方案3】:

解决方案:

第 1 步: 转到项目所在的项目位置。 sln 文件被保留,然后右键单击它,选择“属性”。取消选中“只读”,如下所示:

第 2 步: 再次转到项目的 . sln 文件被保留,然后右键单击它,用记事本打开它,并将文件上的“Microsoft Visual Studio 解决方案文件,格式版本 12.00”更改为“Microsoft Visual Studio 解决方案文件,格式版本 11.00”。

【讨论】:

  • 完美答案,
猜你喜欢
  • 2020-01-14
  • 1970-01-01
  • 1970-01-01
  • 2018-01-29
  • 1970-01-01
  • 2015-07-10
  • 2020-03-21
  • 2014-05-08
  • 2018-10-17
相关资源
最近更新 更多