如何在Azure Web部署上解决此System.Web.Helpers不匹配问题?

时间:2012-07-25 02:44:45

标签: .net azure visual-studio-2012 azure-web-sites assemblybinding

我不知道为什么我似乎无法弄清楚这一点。我有点强大的DLL命名地狱。这是正在发生的事情:

  • 我正在使用Visual Studio 2012 RC制作针对.NET 4.0的MVC4网站
  • 我正试图在Microsoft.Web.Helpers图书馆中使用Gravatar Razor助手
  • 它可以在我的机器上运行,但是在通过Git部署到Azure后,我在调用Gravatar助手时遇到以下异常:

    无法加载文件或程序集'System.Web.Helpers,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件。

似乎我在GAC上安装的任何托管我的Azure网站的版本System.Web.Helpers与我的目标之间存在不匹配。

这是我尝试过的:

  • 复制Local = true
  • 黑客攻击我自己的_bin_deployableAssemblies文件夹,因为Phil Haack's blog
  • 上似乎缺少菜单选项
  • 删除System.Web.Helpers的<。csproj文件中的扩展程序集信息

另外,我在web.config中有以下程序集绑定重定向:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      ...
</runtime>

任何??

1 个答案:

答案 0 :(得分:3)

你说你试过copylocal = true,但是你确定程序集已部署到服务器了吗?

潜在问题:

•.gitignore有一个.dll过滤器

我会FTP到服务器并检查以确保程序集实际位于bin目录中