【问题标题】:How do I open an old MVC project in Visual Studio 2012 or Visual Studio 2013?如何在 Visual Studio 2012 或 Visual Studio 2013 中打开旧的 MVC 项目?
【发布时间】:2012-11-05 14:53:31
【问题描述】:

我有一个旧的 ASP.NET MVC 2 项目,我不想升级到 MVC 3 或 MVC 4。我正在一台运行 Windows 8、Visual Studio 2012 和 Visual Studio 2013 的新机器上工作。当我尝试在 VS 2012 或 VS 2013 中打开 MVC 2 项目我收到错误:

此项目与当前版本的 Visual Studio 不兼容

然后该项目在解决方案资源管理器中被卸载并显示为灰色。我不想安装另一个 Visual Studio 副本。如何在新版本的 Visual Studio 中打开旧的 MVC 项目?

【问题讨论】:

  • 如果你知道,为什么要问这个问题?
  • @BrianWhite 今天早上我遇到这个问题时,我做了一个快速的谷歌搜索,但没有找到任何结果。由于我熟悉 VS 项目文件的工作方式,因此我猜测了原因和潜在的解决方案。一旦我确认该解决方案有效,我想分享这些知识。基于 Jeff 的指导方针it’s ok to ask and answer your own questions
  • 谢谢,我不知道。有很多东西我没有发布,因为我没有看到有人在这里寻找它。
  • ahsteele,感谢您发布解决方案。在找到解决方案后回答自己的问题,可以为社区增加知识。

标签: asp.net-mvc visual-studio visual-studio-2012 project visual-studio-2013


【解决方案1】:

Visual Studio 2012 或 Visual Studio 2013 中打开不受支持的 MVC 项目实际上很容易通过两个步骤完成。事实上,正如 bytebender’s comment indicates 一样,这些相同的步骤应该适用于 MVC 1 项目并适用于 MVC 1 项目。但是,我没有对它们进行测试,因此不能保证它们确实有效。

假设您还没有这样做,第一步是下载并安装MVC 1MVC 2MVC 3(在开始安装之前关闭 Visual Studio)。

一旦您安装了适当的 MVC 风格,该项目仍不会在 VS 2012 中加载。这是因为 ASP.NET MVC 项目是 Web 应用程序项目类型的 project subtype。这意味着该项目在 Visual Studio 中使用时具有其他可用的插件和功能。

Visual Studio 2012 和 Visual Studio 2013 在向后兼容 ASP.NET MVC 和其他项目类型方面受到限制。不幸的是,安装旧的 MVC 位并没有改变这一点。 Visual Studio 2012 is compatible 带有 ASP.NET MVC 3 和 4 项目风格。 Visual Studio 2013 is compatible 使用 MVC 4 和 MVC 5。

要加载项目,您必须修改项目文件。为此,请右键单击已卸载的项目并选择编辑。这会将项目文件作为 XML 文本文件打开。找到应该如下所示的 ProjectTypeGuids 节点:

<ProjectTypeGuids>
    {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

从列表中删除相应的项目指南:

  • ASP.NET MVC 1:{603c0e0b-db56-11dc-be95-000d561079b0}
  • ASP.NET MVC 2:{F85E285D-A4E0-4152-9332-AB1D724D3325} (如上例所示)
  • ASP.NET MVC 3:{E53F8FEA-EAE0-44A6-8774-FFD645390401}
  • ASP.NET MVC 4:{E3E379DF-F4C6-4180-9B81-6769533ABE47}

删除适当的 GUID 后,ProjectTypeGuids 应该类似于以下内容:

<ProjectTypeGuids>
    {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

保存文件并关闭 Visual Studio 项目文件编辑器。右键单击项目并选择重新加载。如果项目未重新加载,请关闭并重新打开 Visual Studio。您现在应该可以在新版本的 Visual Studio 中使用旧的 ASP.NET MVC 项目了。

需要注意的重要一点是,在这些修改之后,Visual Studio 不知道这是一个 ASP.NET MVC 项目;因此,特定于项目的功能,如“添加控制器、视图等”。不会出现在菜单中。

【讨论】:

  • 这也适用于 MVC 1。编辑项目文件后我无法重新加载。我不得不关闭并重新打开 Visual Studio,然后它才能加载 MVC 1 项目。谢谢! +1
  • 太棒了!对我来说只需添加一点点...需要删除。
  • @JookyDFW 迁移实用程序的问题在于它是一个迁移实用程序。由于这个特定项目的问题中没有列举的原因,我无法从 MVC 2 升级。即使项目无法升级,我仍然需要处理它。按照概述修改项目文件是在 VS 2012 中使用 MVC 2 项目的最佳(唯一?)方法。
  • @RyanShripat 这根本不是我的经验。旧版本的 ASP.NET MVC 必须安装,但 VS 2010 对以上没有影响。
  • @Nanu 谢谢你的评论,要清楚这就是我的意思:“需要注意的重要一点是,在这些修改之后,Visual Studio 不知道这是一个 ASP .NET MVC 项目;因此“添加控制器、视图等”等项目特定功能不会出现在菜单中。
【解决方案2】:

我使用了@ahsteele 的方法(感谢 2x+1s!),但又出现了一个错误:-

.csproj:错误:操作无法完成。无效的类字符串

我找不到任何关于真正原因的引用,但我能够通过更改&lt;ProjectGuid&gt; 让 VS2012RTM 成功加载项目。 (不知道这是怎么发生的——它是大型解决方案的一部分,VS08、VS10、VS11 Beta 和 VS2012RC 都随着时间的推移升级了.csproj.sln

【讨论】:

    【解决方案3】:

    在 VS2017 中,解决方案是让它像 &lt;ProjectTypeGuids&gt;&lt;/ProjectTypeGuids&gt; 这样。

    女士们和先生们之间不要有空格,否则会浪费您 48 小时的时间。

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 2015-08-13
      • 2018-01-10
      • 2017-05-20
      • 1970-01-01
      • 2013-12-13
      相关资源
      最近更新 更多