运行时错误:无法加载文件或程序集'System.Web.WebPages.Razor,Version = 3.0.0.0

Cod*_*mer 25 c# runtime-error razor asp.net-mvc-4

我通过NuGet修改了我的ASP.NET MVC4包,现在System.Web.WebPages.Razor v3无法加载.有时其他包也不会加载.

我的同事运行解决方案没有任何麻烦,所以问题肯定是我的开发系统上的配置(而不是任何已经检查过的).

我已经尝试了各种SOF和其他论坛的建议,包括:

以及从那里链接的建议.我还检查了控制面板,发现没有安装程序引用MVC.(如果重要的话,我正在运行MS Win 7 SP 1.)

我愿意接受任何建议.

这是我的核心转储信息:

'/'应用程序中的服务器错误.

无法加载文件或程序集'System.Web.WebPages.Razor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.该系统找不到指定的文件.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.IO.FileNotFoundException:无法加载文件或程序集'System.Web.WebPages.Razor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.该系统找不到指定的文件.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of
Run Code Online (Sandbox Code Playgroud)

可以使用下面的异常堆栈跟踪来识别异常.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'System.Web.WebPages.Razor,
Run Code Online (Sandbox Code Playgroud)

无法加载版本= 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'.

===预绑定状态信息=== LOG:User = CodesWithHammer LOG:DisplayName = System.Web.WebPages.Razor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35(Full-specified)LOG:Appbase = file:/// c:/ users/CodesWithHammer/documents/visual studio 2012/Projects/MPP/MPP/LOG:Initial PrivatePath = c:\ users\CodesWithHammer\documents\visual studio 2012\Projects\MPP\MPP\bin Calling程序集:Microsoft.Web.WebPages.OAuth,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35.

===日志:此绑定在默认加载上下文中启动.日志:使用应用程序配置文件:c:\ users\CodesWithHammer\documents\visual studio 2012\Projects\MPP\MPP\web.config日志:使用主机配置文件:C:\ Users\CodesWithHammer\Documents\IISExpress\config\aspnet .config日志:使用C:\ Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config中的计算机配置文件.日志:后策略引用:System.Web.WebPages.Razor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35日志:尝试下载新的URL文件:/// C:/ Users/CodesWithHammer/AppData/Local/Temp/Temporary ASP.NET Files/root/5bf3ca07/f960d9c5/System.Web.WebPages.Razor.DLL.日志:尝试下载新的URL文件:/// C:/ Users/CodesWithHammer/AppData/Local/Temp/Temporary ASP.NET Files/root/5bf3ca07/f960d9c5/System.Web.WebPages.Razor/System.Web.WebPages .Razor.DLL.日志:尝试下载新的URL文件:/// c:/ users/CodesWithHammer/documents/visual studio 2012/Projects/MPP/MPP/bin/System.Web.WebPages.Razor.DLL.日志:尝试下载新的URL文件:/// c:/ users/CodesWithHammer/documents/visual studio 2012/Projects/MPP/MPP/bin/System.Web.WebPages.Razor/System.Web.WebPages.Razor.DLL .日志:尝试下载新的URL文件:/// C:/ Users/CodesWithHammer/AppData/Local/Temp/Temporary ASP.NET Files/root/5bf3ca07/f960d9c5/System.Web.WebPages.Razor.EXE.日志:尝试下载新的URL文件:/// C:/ Users/CodesWithHammer/AppData/Local/Temp/Temporary ASP.NET Files/root/5bf3ca07/f960d9c5/System.Web.WebPages.Razor/System.Web.WebPages .Razor.EXE.日志:尝试下载新的URL文件:/// c:/ users/CodesWithHammer/documents/visual studio 2012/Projects/MPP/MPP/bin/System.Web.WebPages.Razor.EXE.日志:尝试下载新的URL文件:/// c:/ users/CodesWithHammer/documents/visual studio 2012/Projects/MPP/MPP/bin/System.Web.WebPages.Razor/System.Web.WebPages.Razor.EXE .

堆栈跟踪:

[FileNotFoundException: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,
Run Code Online (Sandbox Code Playgroud)

PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.系统找不到指定的文件.] Microsoft.Web.WebPages.OAuth.PreApplicationStartCode.Start()+ 0

[InvalidOperationException: The pre-application start initialization method Start on type
Run Code Online (Sandbox Code Playgroud)

Microsoft.Web.WebPages.OAuth.PreApplicationStartCode抛出异常,并显示以下错误消息:无法加载文件或程序集'System.Web.WebPages.Razor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个它的依赖关系.系统找不到指定的文件..] System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection 1 methods, Func1 setHostingEnvironmentCultures)+550 System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods)+132 System.Web.Compilation.BuildManager .CallPreStartInitMethods(String preStartInitListPath)+90 System.Web.Compilation.BuildManager.ExecutePreAppStart()+135 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters,PolicyLevel policyLevel,Exception appDomainCreationException)+ 516

[HttpException (0x80004005): The pre-application start initialization method Start on type
Run Code Online (Sandbox Code Playgroud)

Microsoft.Web.WebPages.OAuth.PreApplicationStartCode抛出异常,并显示以下错误消息:无法加载文件或程序集'System.Web.WebPages.Razor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个它的依赖关系.系统找不到指定的文件..] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+9874840 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context) +254

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.18055

(对于那些读到这里的人:我没有足够的声誉来制作标签拉出我的头发.如果有适当的现存标签,请包括.KTHX.)

ETA:当我尝试手动更新Microsoft.AspNet.Mvc到版本3时,这是我在软件包管理器控制台上遇到的错误:

安装失败.回滚...安装包:将"Microsoft.AspNet.Mvc 5.0.0"更新为"Microsoft.AspNet.Mvc 3.0.20105.1"失败.无法找到与"Microsoft.AspNet.Mvc 3.0.20105.1"兼容的"Microsoft.AspNet.Mvc.FixedDisplayModes"版本.在行:1 char:16 + Install-Package <<<< Microsoft.AspNet.Mvc -Version 3.0.20105.1 + CategoryInfo:NotSpecified:(:) [Install-Package],InvalidOperationException + FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands .InstallPackageCommand

ETA2:我从同事那里得到了包目录.他们有MS.AspNet.Mvcv5,他们运行得很好.但他们也有MS.AspNet.Mvc.FixedDisplayModesv5.因此,我将添加其中的两个.是的,我已经备份了我的整个解决方案.:)

ETA3:所以我重新升级到AspNet MVC v5,并跳过了已弃用的Mvc.FixedDisplayNodes.然后我遇到了与AspNet.WebPages版本冲突的问题,所以我使用了这个修复: 检测到的ASP.NET网页的冲突版本:指定的版本是"1.0.0.0",但是bin中的版本是"2.0.0.0" ASP.MET MVC 3

现在我的项目运行了!

谢谢大家的帮助!

小智 32

您可以在Nuget Package Microsoft ASP.NET网页版本3.2.0中找到它

Microsoft ASP.NET网页

如果您引用了早于3.0.0.0的版本,请删除引用,在package文件夹中添加对正确.dll的引用,并确保.dll属性中的"Copy Local"设置为"True". .

然后在你的web.config中(如@MichaelEvanchik所述)

  <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages.Razor" PublicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
  </dependentAssembly>
</assemblyBinding>
Run Code Online (Sandbox Code Playgroud)


小智 19

"Update-Package -reinstall Microsoft.AspNet.WebPages"

在程序包管理器控制台中使用此命令重新安装Microsoft.AspNet.WebPages nuget软件包.100%工作!!


fej*_*oco 1

您的网络应用程序的 bin 文件夹中是否有 System.Web.WebPages.Razor.dll?它的版本是什么?(资源管理器右键单击,属性)我猜它不是 3.0.0.0。只需获取 v3.0.0.0 的 nuget 包,也许可以通过从同事那里复制包文件夹来获取。或者手动安装:http ://www.nuget.org/packages/Microsoft.AspNet.Mvc/3.0.20105.1

编辑:如果您从同事那里复制内容,请将相关版本号复制到packages.config中。这就是告诉 nuget 将哪些版本放入包文件夹中的内容。