【问题标题】:Runtime error: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0运行时错误:无法加载文件或程序集 'System.Web.WebPages.Razor,版本 = 3.0.0.0
【发布时间】:2013-11-26 09:16:18
【问题描述】:

我通过 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' 无法加载。

=== 预绑定状态信息 === 日志:用户 = CodesWithHammer 日志:DisplayName = System.Web.WebPages.Razor,版本 = 3.0.0.0,文化 = 中性,PublicKeyToken = 31bf3856ad364e35 (完全指定) 日志:Appbase = file:///c:/users/CodesWithHammer/documents/visual studio 2012/Projects/MPP/MPP/ 日志:初始 PrivatePath = c:\users\CodesWithHammer\documents\visual studio 2012\项目\MPP\MPP\bin 调用程序集:Microsoft.Web.WebPages.OAuth,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35。

=== LOG:此绑定在默认加载上下文中开始。 日志:使用应用程序配置文件:c:\users\CodesWithHammer\documents\visual studio 2012\项目\MPP\MPP\web.config LOG:使用主机配置文件: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,文化=中性,PublicKeyToken=31bf3856ad364e35 日志:尝试下载新的 URL 文件:///C:/Users/CodesWithHammer/AppData/Local/Temp/Temporary ASP.NET 文件/root/5bf3ca07/f960d9c5/System.Web.WebPages.Razor.DLL。 日志:尝试下载新的 URL 文件:///C:/Users/CodesWithHammer/AppData/Local/Temp/Temporary ASP.NET 文件/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 文件/root/5bf3ca07/f960d9c5/System.Web.WebPages.Razor.EXE。 日志:尝试下载新的 URL 文件:///C:/Users/CodesWithHammer/AppData/Local/Temp/Temporary ASP.NET 文件/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,版本=3.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。这 系统找不到指定的文件..] System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection1 methods, Func1 setHostingEnvironmentCultures) +550 System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 方法)+132 System.Web.Compilation.BuildManager.CallPreStartInitMethods(字符串 preStartInitListPath) +90 System.Web.Compilation.BuildManager.ExecutePreAppStart() +135 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, 异常 appDomainCreationException) +516

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

Microsoft.Web.WebPages.OAuth.PreApplicationStartCode 抛出一个 带有以下错误消息的异常:无法加载文件或 程序集'System.Web.WebPages.Razor,版本=3.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。这 系统找不到指定的文件..] System.Web.HttpRuntime.FirstRequestInit(HttpContext 上下文) +9874840 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext 上下文)+101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest WR,HttpContext 上下文)+254

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

(对于那些读到这里的人:我没有足够的声誉来制作标签pulling-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.FixedDisplayModes' 兼容 'Microsoft.AspNet.Mvc 3.0.20105.1'。在行:1 字符:16 + 安装包

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

现在我的项目运行了!

感谢大家的帮助!

【问题讨论】:

  • 你试过clean然后rebuild你的解决方案吗?问题是您很可能通过 nuget 从 MVC4 更新到 MVC5。
  • 我反复cleaned 和rebuildt。我没有看到任何 MVC5 包,但我会检查 n 元组。

标签: c# asp.net-mvc-4 razor runtime-error


【解决方案1】:

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

【讨论】:

  • 我将System.Web.WebPages.Razor.dll v2.0.0.0 从PFx86/.../复制到我的bin目录中,没有任何变化。我将删除所有 DLL 和 XML,并复制我同事的内容。当我尝试从 NuGet 更新 MS.AspNet.Mvc 时,我遇到了问题;让我再试一次并复制错误消息。
  • 不要手动复制 DLL,Visual Studio 总是会赢 :)。确保您的包文件夹中有正确版本的 DLL(这就是 nuger 所做的),确保在您的项目中引用了确切的 DLL(我认为 nuget 也可以处理它,但也许您可能会不小心编辑该引用),并且就是这样。
  • 嗯。 MS.AN.Mvc 是 v5。我会试试你的链接。
  • 再次嗯。目前没有需要更新的相关软件包。但上次我检查时,System.Web.Razor 在我的项目引用中只列出了版本 1 和 2。我知道 3 曾经在某个地方。
  • 不要更新你的包,因为它会将 MVC 3 升级到 5。使用包管理器控制台获取确切的版本。或者正如我所说,如果它对您的同事有用,只需复制他的文件夹,然后不要担心 nuget。
【解决方案2】:

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>

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

【讨论】:

  • 您确定 oldVersion 1 到 4 吗?我只是在仔细检查,因为我知道拥有一个字符 tpyo 是什么感觉。
  • 这是一个糟糕的建议。首先,他已经在尝试加载 v3,但找不到,所以没有理由重定向到 v3。通常将程序集重定向到旧版本是一个坏主意。从 v3 重定向到 v4 确实有意义,我认为它甚至得到了官方支持。
  • 我在您发表评论之前对其进行了编辑。原因是我遇到的问题是 System.Web.Mvc,因为我没有使用 Razor,所以我试图创建在上面手动标记你,有趣的是这个答案在这里是不可接受的,但我得到了接受的答案.....从这里
【解决方案3】:

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

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

在早期的应用程序中,我有一个使用 system.web.Razor 版本 2.0.0 的 Web 应用程序 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,因为您自己已经这样做了)
成功!

【讨论】:

    【解决方案4】:

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

    如果您有对 3.0.0.0 之前版本的引用,请删除该引用,在您的包文件夹中添加对正确 .dll 的引用,并确保在属性中将“复制本地”设置为“真” .dll。

    然后在您的 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>
    

    【讨论】:

    • 是的,这适用于错误无法加载文件或程序集'System.Web.WebPages.Razor, Version=3.0.0.0
    • 是的,兄弟。非常感谢您的支持。 :)
    • 非常感谢!
    【解决方案5】:

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

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

    【讨论】:

      【解决方案6】:

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

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

      【讨论】:

      【解决方案7】:

      就我而言,问题不在于绑定重定向或缺少/不匹配的 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 并大家都很开心。

      【讨论】:

        【解决方案8】:

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

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

        【讨论】:

          【解决方案9】:

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

          【讨论】:

            【解决方案10】:

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

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

            【讨论】:

              【解决方案11】:

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

              【讨论】:

                【解决方案12】:

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

                【讨论】:

                  猜你喜欢
                  • 2013-11-14
                  • 2018-03-05
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-02-15
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多