首页 文章

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

提问于
浏览
149

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

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

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

3 回答

  • 284

    Visual Studio 2012或Visual Studio 2013中打开不受支持的MVC项目实际上很容易通过两个步骤完成 . 事实上,作为bytebender’s comment indicates,这些相同的步骤 should 适用于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>
    

    从列表中删除相应的Project Guid:

    • 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项目;因此特定于项目的功能,如“添加控制器,查看等”将不会出现在菜单中 .

  • 4

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

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

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

  • 0

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

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

    问候

相关问题