MVC3部署依赖问题

Phi*_*ler 28 deployment asp.net-mvc webserver asp.net-mvc-3

我刚刚尝试将MVC3应用程序部署到我们的IIS7托管环境中,但是我正在使用以下异常:

无法从程序集"Microsoft.Web.Infrastructure,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"加载类型"Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility".描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.TypeLoadException:无法从程序集"Microsoft.Web.Infrastructure,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"加载类型"Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility".

有什么建议?

该应用程序未被bin部署,因为我已在Web服务器本身上安装了ASP.Net Web页面和MVC3.

Sha*_*ean 50

这是因为Microsoft.Web.Infrastructure不在您的GAC中.您需要将此引用添加到项目中.右键单击引用并转到属性,然后将copy设置为local为true.

复制本地

输出(忽略Ninject和NCU):

替代文字


ria*_*ndl 9

在进行参考清理之后,它被删除了Microsoft.Web.Infrastructure,但是没有从packages.config文件中删除.在尝试使用它再次添加它之后Package Manager Console,Visual Studio说它已经安装了,因为它已被删除,所以它是假的.

然后我删除了packages.config文件中的代码行

<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
Run Code Online (Sandbox Code Playgroud)

并再次运行命令

PM> Install-Package Microsoft.Web.Infrastructure
Run Code Online (Sandbox Code Playgroud)

在此之后,现在它工作正常.

  • 即使安装了软件包,也可以强制重新安装,而不是使用以下命令执行操作:Update-Package Microsoft.Web.Infrastructure -Reinstall (3认同)

Jas*_*son 5

Microsoft.Web.Infrastructure 现在是一个Nuget包,它可以添加到您的项目中以启用bin目录部署 -

http://nuget.org/packages/Microsoft.Web.Infrastructure

  • 我在我的项目中安装了软件包,但项目没有引用DLL.我猜测ReSharper的"删除未使用的引用"过于热心的应用程序可能已删除超过它应该... (2认同)