22

我在我的项目中使用 umbraco 4.11.3。我的项目在 Windows 7 上运行良好并从 Visual Studio 2012 运行它。但是当它从 Visual Studio 2012 运行时它在 Win 8 中不起作用!

错误是:

无法加载文件或程序集“System.Web.Mvc,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

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

异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“System.Web.Mvc,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

程序集加载跟踪:以下信息有助于确定为什么无法加载程序集“System.Web.Mvc,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”。

=== 预绑定状态信息 === LOG: User = Jahan-PC\jahan LOG: DisplayName = System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 (完全指定) LOG: Appbase = file:///G:/20130204/SourceCode/Defraz.Movafaqiyat.WebApp/Defraz.Movafaqiyat.WebApp/ LOG: Initial PrivatePath = G:\20130204\SourceCode\Defraz.Movafaqiyat.WebApp\Defraz.Movafaqiyat.WebApp\ bin 调用程序集:ClientDependency.Core.Mvc,Version=1.5.1.0,Culture=neutral,PublicKeyToken=null。=== LOG:此绑定在默认加载上下文中开始。LOG:使用应用程序配置文件:G:\20130204\SourceCode\Defraz.Movafaqiyat.WebApp\Defraz.Movafaqiyat.WebApp\web.config LOG:使用主机配置文件:C:\Users\jahan\Documents\IISExpress\config\aspnet .config LOG:使用 C:\Windows\Microsoft 中的机器配置文件。NET\Framework\v4.0.30319\config\machine.config。日志:策略后参考:System.Web.Mvc,版本=2.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35 日志:尝试下载新 URL 文件:///C:/Users/jahan/AppData/Local/Temp /临时 ASP.NET 文件/root/bc5b37d0/42db0b24/System.Web.Mvc.DLL。日志:尝试下载新的 URL 文件:///C:/Users/jahan/AppData/Local/Temp/Temporary ASP.NET Files/root/bc5b37d0/42db0b24/System.Web.Mvc/System.Web.Mvc.DLL . 日志:正在尝试下载新的 URL 文件:///G:/20130204/SourceCode/Defraz.Movafaqiyat.WebApp/Defraz.Movafaqiyat.WebApp/bin/System.Web.Mvc.DLL。警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集设置(hr = 0x80131040)。探测终止。Web.Mvc,版本=2.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35 日志:尝试下载新 URL 文件:///C:/Users/jahan/AppData/Local/Temp/Temporary ASP.NET Files/root/ bc5b37d0/42db0b24/System.Web.Mvc.DLL。日志:尝试下载新的 URL 文件:///C:/Users/jahan/AppData/Local/Temp/Temporary ASP.NET Files/root/bc5b37d0/42db0b24/System.Web.Mvc/System.Web.Mvc.DLL . 日志:正在尝试下载新的 URL 文件:///G:/20130204/SourceCode/Defraz.Movafaqiyat.WebApp/Defraz.Movafaqiyat.WebApp/bin/System.Web.Mvc.DLL。警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集设置(hr = 0x80131040)。探测终止。Web.Mvc,版本=2.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35 日志:尝试下载新 URL 文件:///C:/Users/jahan/AppData/Local/Temp/Temporary ASP.NET Files/root/ bc5b37d0/42db0b24/System.Web.Mvc.DLL。日志:尝试下载新的 URL 文件:///C:/Users/jahan/AppData/Local/Temp/Temporary ASP.NET Files/root/bc5b37d0/42db0b24/System.Web.Mvc/System.Web.Mvc.DLL . 日志:正在尝试下载新的 URL 文件:///G:/20130204/SourceCode/Defraz.Movafaqiyat.WebApp/Defraz.Movafaqiyat.WebApp/bin/System.Web.Mvc.DLL。警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集设置(hr = 0x80131040)。探测终止。/Users/jahan/AppData/Local/Temp/Temporary ASP.NET Files/root/bc5b37d0/42db0b24/System.Web.Mvc.DLL。日志:尝试下载新的 URL 文件:///C:/Users/jahan/AppData/Local/Temp/Temporary ASP.NET Files/root/bc5b37d0/42db0b24/System.Web.Mvc/System.Web.Mvc.DLL . 日志:正在尝试下载新的 URL 文件:///G:/20130204/SourceCode/Defraz.Movafaqiyat.WebApp/Defraz.Movafaqiyat.WebApp/bin/System.Web.Mvc.DLL。警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集设置(hr = 0x80131040)。探测终止。/Users/jahan/AppData/Local/Temp/Temporary ASP.NET Files/root/bc5b37d0/42db0b24/System.Web.Mvc.DLL。日志:尝试下载新的 URL 文件:///C:/Users/jahan/AppData/Local/Temp/Temporary ASP.NET Files/root/bc5b37d0/42db0b24/System.Web.Mvc/System.Web.Mvc.DLL . 日志:正在尝试下载新的 URL 文件:///G:/20130204/SourceCode/Defraz.Movafaqiyat.WebApp/Defraz.Movafaqiyat.WebApp/bin/System.Web.Mvc.DLL。警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集设置(hr = 0x80131040)。探测终止。/20130204/SourceCode/Defraz.Movafaqiyat.WebApp/Defraz.Movafaqiyat.WebApp/bin/System.Web.Mvc.DLL。警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集设置(hr = 0x80131040)。探测终止。/20130204/SourceCode/Defraz.Movafaqiyat.WebApp/Defraz.Movafaqiyat.WebApp/bin/System.Web.Mvc.DLL。警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集设置(hr = 0x80131040)。探测终止。

堆栈跟踪:

[FileLoadException: 无法加载文件或程序集 'System.Web.Mvc,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)]
ClientDependency.Core.Mvc.MvcFilter.ValidateCurrentHandler() +0
ClientDependency.Core.Module.ClientDependencyModule.b__0(IFilter f) +31 System.Linq.Enumerable.Any(IEnumerable 1 source, Func2 谓词) +146
ClientDependency.Core.Module.ClientDependencyModule.ValidateCurrentHandler(IEnumerable`1 过滤器) +127
ClientDependency.Core.Module.ClientDependencyModule.HandleRequest(Object sender, EventArgs e) +179
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69

注意:在 IIS 上发布的项目在 win7 和 win8 下运行良好。我的项目不是基于 ASP.NET MVC。请帮我。

4

4 回答 4

13

我们正在使用 Azure 云来运行部署,但我遇到了同样的错误。由于您不能真正将包安装到服务器实例上,解决此问题的方法是进入项目的引用,找到它抱怨的库的引用丢失,进入属性,然后将 Copy Local 设置为 True。重新部署,一切就绪。

于 2013-03-27T22:06:49.257 回答
7

此问题的正确解决方法是:

  1. 右键单击并References选择Solution ExplorerManage NuGet Packages
  2. 在左侧选择Updates
  3. 在中间部分选择Microsoft ASP.NET MVC
  4. 您应该会看到一个Update按钮出现在您的选择中,单击它

就是这样...接受任何可能弹出的条款和条件,然后在本地发布或运行您的项目。如果您仍然在本地运行项目时遇到问题,请尝试关闭 Visual Studio,删除项目的 .SUO 文件,然后尝试再次打开解决方案...再次尝试运行。

于 2015-01-26T09:17:08.140 回答
6

我假设这是一台新机器,因为您拥有新的操作系统和不同版本的 Visual Studio。我认为您需要安装 MVC Framework 版本 2,因为这是您的 Umbraco 安装所期望的。您可以安装框架,然后将 DLL 放入您的 GAC,或者将 DLL 从您的良好系统复制到 Web 应用程序的 bin 文件夹中。

请注意,您是在说您的项目“不使用”MVC,但我认为您会发现 Umbraco 确实如此。无论如何,该错误告诉您系统希望找到它。

于 2013-02-04T22:57:41.547 回答
3

Umbraco 4.11.3 不使用 MVC2,它使用 MVC3,所以我猜你的 web.config 中有对 MVC2 库的引用,可能在该compilation > assemblies部分中。它应该看起来像这样:

<compilation defaultLanguage="c#" batch="false" targetFramework="4.0" debug="true">
  <assemblies>
    <!-- ASP.NET 4.0 Assemblies -->
    <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
    <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
  <!-- Added in Umbraco 4.6.2 -->
  <buildProviders>
    <add extension=".cshtml" type="umbraco.MacroEngines.RazorBuildProvider, umbraco.MacroEngines" />
    <add extension=".vbhtml" type="umbraco.MacroEngines.RazorBuildProvider, umbraco.MacroEngines" />
    <add extension=".razor" type="umbraco.MacroEngines.RazorBuildProvider, umbraco.MacroEngines" />
  </buildProviders>
  <!-- End of added in Umbraco 4.6.2 -->
</compilation>
于 2013-02-05T08:31:01.890 回答