2013-11-04 157 views
29

我想用外部登录,所以我的包管理器安装的Oauth:无法加载文件或程序集“System.Web.WebPages.Razor,版本= 3.0.0.0

PM> Install-Package Microsoft.AspNet.WebPages.OAuth 

然后安装后,我得到这个错误然后我安装剃须刀:

PM> Install-Package Microsoft.AspNet.Razor 

但我仍然有这个例外。更多我的应用程序是一个asp.net应用程序,而不是一个MVC应用程序。感谢帮助。

[FileNotFoundException: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.] 
    Microsoft.Web.WebPages.OAuth.PreApplicationStartCode.Start() +0 
+0

当你说一个aspp.net应用程序;你的意思是Webforms?因为MVC仍然是一个asp.net应用程序。当它走了; Razor是一种MVC脚本语言。如果你没有构建一个MVC应用程序;那么你难怪你有问题。老实说;你自己回答了这个问题。 –

+0

您的项目是基于.net4。 Razor 3的许多组件可能基于4.5。检查我的答案。 – Adrian

回答

12

您已升级到Razor 3.请记住,VS 12(直到更新4)不支持它。安装剃刀3从的NuGet或提前为这个LO-高科技建议降级它通过这些步骤

geekswithblogs.net/anirugu/archive/2013/11/04/how-to-downgrade-razor-3-and-fix-the-issue-that.aspx

+0

嗨我安装了剃须刀3但没有添加** System.Web.WebPages.Razor版本3 **,我仍然有例外 –

+1

Razor 3的依赖关系基于.net 4.5。如果你的项目部署在.net 4中,你将无法工作。在MVC 4中(这也可以在.net 4中使用,我们使用Razor 2.如果你有麻烦,那么我只是建议你在.net中部署你的应用程序4(mvc4),它会简单地工作:) – Adrian

+0

如果您的问题仍然存在,请备份并删除所有与mvc 4一起运行。运行这个nuget https://www.nuget.org/packages/UpgradeMvc3ToMvc4,你会得到你的项目运行在MVC 4. – Adrian

14

道歉,但另一种选择,争夺的NuGet几个小时之后,终于为我工作,就是要重新在我的情况下创建一个新的空项目,即Web API,然后将刚刚破解的旧项目的内容复制到新项目中。花了我大约15分钟。

+1

15分钟VS小时的头痛,这很好 – Ruchan

+0

类似地,在TFS项目中,我搁置了我的更改,隐藏了分支,删除了现有文件,重新映射了项目,获得了最新版本,从架子上合并。我认为你的建议是一样的。花了我一个小时的时间重新设置了这一切,因为NuGet软件包在我的本地环境中挣扎了近一天。 – stephenbayer

7

另一种选择是更新Microsoft.AspnNet.Mvc NuGet包。请小心,因为NuGet更新不会更新Web.Config。您应该更新以前的所有版本号码以更新号码。例如,如果您更新了asp.net MVC 4.0.0.0 5.0.0.0到,那么这应该是在Web.config代替:使用NuGet包管理器控制台在Visual Studio

更新

<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
     <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

<pages 
    validateRequest="false" 
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    <controls> 
    <add assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> 
    </controls> 
</pages> 
1

更新-Package -reinstall Microsoft.AspNet.Mvc

相关问题