如何在Visual Studio 2012或Visual Studio 2013中打开旧的MVC项目?

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

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

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


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

假设您尚未完成第一步,请下载并安装MVC 1,MVC 2或MVC 3(在开始安装之前关闭Visual Studio)。

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

Visual Studio 2012和Visual Studio 2013在向后兼容ASP.NET MVC和其他项目类型方面受到限制。 不幸的是,安装旧的MVC位并没有改变这一点。 Visual Studio 2012与ASP.NET MVC 3和4项目风格兼容。 Visual Studio 2013与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项目; 因此项目特有的功能如“添加控制器,查看等” 将不会出现在菜单中。


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

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

    我找不到任何引用的真正原因,但是我可以通过更改<ProjectGuid>成功加载项目VS2012RTM。 (不知道这是怎么发生的 - 它的大部分解决方案和VS08,VS10,VS11 Beta和VS2012RC都随着时间的推移升级了.csproj.sln


    在VS2017中,解决方案就是使它像<ProjectTypeGuids></ProjectTypeGuids>那样。

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

    问候

    链接地址: http://www.djcxy.com/p/38857.html

    上一篇: How do I open an old MVC project in Visual Studio 2012 or Visual Studio 2013?

    下一篇: Restoring Nuget References?