繁体   English   中英

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

[英]Runtime error: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0

我通过 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,版本=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

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

 Assembly Load Trace: The following information can be helpful to determine why the assembly 'System.Web.WebPages.Razor,

版本=3.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35' 无法加载。

=== 预绑定状态信息 === LOG: User = CodesWithHammer LOG: DisplayName = System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 (Fully-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,版本=3.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35。

=== LOG:此绑定在默认加载上下文中启动。 日志:使用应用程序配置文件:c:\\users\\CodesWithHammer\\documents\\visual studio 2012\\Projects\\MPP\\MPP\\web.config 日志:使用主机配置文件:C:\\Users\\CodesWithHammer\\Documents\\IISExpress\\config\\aspnet .config LOG:使用来自 C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\config\\machine.config 的机器配置文件。 日志:后政策参考:System.Web.WebPages.Razor,版本=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,

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

 [InvalidOperationException: The pre-application start initialization method Start on type

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, Func 1 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, HostingEnvironmentParameterLevels policyParameters托管异常 appDomainCreationException) +516

 [HttpException (0x80004005): The pre-application start initialization method Start on type

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

(对于那些读到这里的人:我没有足够的声誉来制作标签pull-out-my-hair 。如果有合适的现存标签,请包括它。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 .InstallPackage 命令

ETA2:我从我的同事那里得到了包目录。 他们有MS.AspNet.Mvc v5,他们运行得很好。 但他们也有MS.AspNet.Mvc.FixedDisplayModes v5。 所以我要把这两个都加进去。是的,我已经备份了我的整个解决方案。 :)

ETA3:所以我重新升级到 AspNet MVC v5,并跳过了已弃用的 Mvc.FixedDisplayNodes。 然后我遇到了 AspNet.WebPages 版本冲突的问题,所以我使用了这个修复程序: Conflicting versions of ASP.NET Web Pages detected: specified version is "1.0.0.0", but the version in bin is "2.0.0.0" in ASP.MET MVC 3

现在我的项目运行了!

感谢大家的帮助!

您可以在 Nuget Package Microsoft ASP.NET Web Pages Version 3.2.0 中找到它

Microsoft ASP.NET 网页

如果您有对 3.0.0.0 之前版本的引用,请删除该引用,在包文件夹中添加对正确 .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>

“更新包 - 重新安装 Microsoft.AspNet.WebPages”

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

同样的事情就发生在我身上 NUGET。

以下标签有帮助

<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>

此外,如果这发生在服务器上,我必须确保我在文件系统的“特权帐户”上运行应用程序池,但我认为这是您的问题

在新的 actionmailer 中,“razorengine”是一个依赖项。 Razorengine 的最新版本安装了对 System.Web.Razor 3.0.0 的依赖。

如果您在应用程序中使用早期版本(我假设您在另一个项目中使用 actionmailer 并且您引用了另一个项目的邮件功能),那么您当然会遇到这个问题。

在早期的应用程序中,我有一个使用 system.web.Razor 2.0.0 版的 webapplication MVC。 当然,我得到了这个问题。 怎么修? => 简单!

  1. 只需在您的 actionmailer 项目中卸载整个 actionmailer。
  2. 安装以前版本的 RazorEngin

    Install-Package RazorEngine -Version 3.3.0(因为 3.3.0 版将引用 system.web.razor 2.0.0)

  3. 再次安装 actionmailer(它不会安装最新版本的 RazorEngin,因为你自己已经这样做了)
成功!

您的 Web 应用程序的 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 将哪些版本放入包文件夹的原因。

我不想安装visual studio和开发环境,所以我在Windows server 2016机器上安装了AspNetMVC4Setup.exe,它解决了问题。 安装程序是从 Microsoft 网站下载的。

安装程序的文件属性

在我的情况下,通过上述任何方法都无法解决问题。 我的包配置中的所有路径都是正确的,并且 dll 的位置如所指,我仍然收到 System.Web.WebPages.Razor 的运行时错误。 I changed the localhost port number and this worked

我不确定为什么我会遇到这个问题以及为什么更改端口号可以解决它。 只是发布这个,因为我觉得这可能对那里的人有用。

就我而言,问题不在于绑定重定向或丢失/不匹配的 Microsoft.AspNet.Razor 包/dll,因此上述解决方案不起作用。

在我的非 Web 项目中,问题是 RazorEngine+Microsoft.AspNet.Razor 安装在与调用程序集/启动项目(项目 B)不同的项目(项目 A)中 因为没有显式引用 Razor,所以System.Web.Razor在 Release 版本中没有被复制到 /bin

解决方案是在应用程序入口点安装 RazorEngine+Microsoft.AspNet.Razor (在我的例子中是项目 B,ConsoleApplication),然后 System.Web.Razor 被复制到 /bin 并且每个人都很高兴。

我遇到了同样的错误,对我有用的是:

  1. 修复引用错误。
  2. 关闭 Visual Studio。
  3. 删除包。
  4. 删除 .vs 文件夹。
  5. 再次运行项目。
  6. 重建项目。

我遇到这个问题是因为我卸载了 VS 2012,我不想重新安装它,所以我从 Microsoft.com 下载了 AspNetMVC4Setup.exe 并解决了我的问题。

https://www.microsoft.com/en-us/download/details.aspx?id=30683

我在升级到 v3.0.0.preview4 时遇到了这个问题,所以降级到稳定版本解决了这个问题。

我收到此错误是因为当我发布 Web 应用程序时,bin 文件夹中缺少此类 DLL(以及许多其他 DLL)。 这似乎是 Visual Studio 发布功能中的一个错误。 再次清理、重新编译和发布它,使此类 DLL 能够正确发布。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM