我在Visual Studio 2013中安装了ASP.NET MVC v4项目。
我使用Visual Studio Online在Git中托管项目。我使用Azure部署配置文件创建了一个构建定义,以便我可以运行自动构建,并自动部署该站点。
但是,在显然成功部署之后,我收到以下错误:
无法加载文件或程序集'System.Web.Mvc,Version = 4.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个 依赖。系统找不到指定的文件。
我已经通过FTP检查了网站,并且系统中缺少System.Web.Mvc.dll文件。
但是,MVC作为NuGet包安装,为解决方案启用了NuGet Package Restore,并为参考设置了“Copy Local”。如果我在本地构建解决方案,则DLL将正确复制到输出文件夹。
我已经检查了Visual Studio Online构建日志,可以看到以下内容......
...
安装'Microsoft.AspNet.Mvc 4.0.30506.0'。
...
成功安装'Microsoft.AspNet.Mvc 4.0.30506.0'。
...
所以 - 我不知道为什么没有将DLL部署到Azure。
非常感谢任何帮助!
答案 0 :(得分:0)
最新的MVC 4版本是4.0.0.1。检查您的Project引用是否正确指向NuGet中的版本,而不是GAC中的版本。
此MSDN博文可能有所帮助:http://blogs.msdn.com/b/webdev/archive/2014/10/16/microsoft-asp-net-mvc-security-update-broke-my-build.aspx
您还可以尝试在web.config中添加重定向:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="4.0.0.0-4.0.0.1" newVersion="4.0.0.1"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>