将VS2008中的MVC 2项目转换为VS 2010 ..一个项目失败..项目类型错误?

时间:2011-07-20 15:23:37

标签: visual-studio-2010 visual-studio-2008 asp.net-mvc-2 asp.net-mvc-3

所以我正在尝试将VS2008 MVC1项目带到MVC3。

以下是我要做的步骤。

  1. 使用转换将vs2008 mvc1转换为vs 2008 mvc2(成功)    工具:http://weblogs.asp.net/leftslipper/archive/2010/03/10/migrating-asp-net-mvc-1-0-applications-to-asp-net-mvc-2-rtm.aspx

  2. 在vs2010中打开vs2008 sln进行转换(在我的主应用程序项目中失败)

  3. 从.Net3.5转换为.Net 4.0
  4. 使用工具转换为MVC3
  5. 在第二步,它在我的主项目上失败,然后不会打开带有错误的项目。

     The Project <project path> cannot be opened
    
     The project type is not supported by this installation
    

    我发现一些StackOverflow帖子与RC1和RC2有类似的问题,但是从webplatform安装程序安装了我的MVC2,所以它应该是最新的,而不是RC。

    我认为这条线是我的问题,任何人都知道如何解决它?

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

    我尝试发布我的csproj,但它超出了最大线..如果有一个neede部分诊断这个让我知道。

    谢谢,

    卡尔 -

2 个答案:

答案 0 :(得分:1)

我个人使用以下迁移路径 *

  1. 确保我已安装ASP.NET MVC 3 RTM Tools Update
  2. 在Visual Studio 2010中打开ASP.NET MVC 1.0项目
  3. 迁移向导启动并询问我是否要转换为.NET 4.0并且我说

    enter image description here

  4. 确保我项目中引用的System.Web.Mvc程序集是V2.0.0.0。如果它仍旧,我将其删除并添加正确的版本

  5. 在这个阶段,我确保我有一个有效的ASP.NET MVC 2.0应用程序并关闭Visual Studio。

    还有最后一步。为此,根据我的心情,我会做以下其中一项:

    *为了回答这个问题,我在一个真正的ASP.NET MVC 1.0项目上做了前面的步骤,并且它已成功升级到ASP.NET MVC 3

答案 1 :(得分:0)

好的,我做到了两种方式并得到了相同的结果。

我确实弄清楚了,这是发生了什么。请注意,步骤1和3可能只是修复它所需要的所有内容,但我要包括第二步,既为了清晰我的调试过程,又为了完整性,以防它需要,我的假设都是假的。

  1. 即使安装了MVC#,并且在添加已删除的程序中显示已安装,但MVC 3未显示为参考。我卸载,重新安装并重新启动,它开始显示。

  2. 我必须在CSPROJ文件中修改项目类型指南,首先我一次删除它们,直到主应用程序项目能够加载,然后我重新记录。除了主要项目之外的所有项目都有效,但它没有“转换”。它没有因为一个无法识别的项目Type Guid而出现。

  3. 但是它没有转换我得到了这个错误:

    类型'System.Web.Mvc.ViewMasterPage'不明确:它可能来自程序集'C:\ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System.Web.Mvc \ v4.0_3.0.0 .0__31bf3856ad364e35 \ System.Web.Mvc.dll'或程序集'C:\ Windows \ assembly \ GAC_MSIL \ System.Web.Mvc \ 1.0。

    注意Coverted没有抛出错误,它只是记录了该项目没有得到控制。你必须仔细查看日志才能注意到。 幸运的是,您可以多次在同一个解决方案上运行转换器。这就是我注意到的。

    1. 我不得不再次修改项目类型guid,因为再次无法识别类型guid。我刚刚创建了一个新的MVC3项目并编辑了CSPROJ以获得正确的类型guid。

      {E53F8FEA-EAE0-44A6-8774-FFD645390401}; {349c5851-65df-11DA-9384-00065b846f21}; {fae04ec0-301f-11D3-bf4b-00c04f79efbc}

    2. 注意:这就是guids的样子,但我从现有的好项目中复制它们并将它们粘贴到文件中并开始工作,我最好的猜测是转换过程中有一个看不见的字符

      在此之后我重新转换,它完美地工作,错误消失了。

      谢谢,

      卡尔 -