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

Bra*_*ton 5 .net azure assemblybinding visual-studio-2012 azure-web-sites

我不知道为什么我似乎无法弄清楚这一点.我有点强大的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'或其依赖项之一.该系统找不到指定的文件.

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

这是我尝试过的:

  • 复制Local = true
  • 黑客攻击我自己的_bin_deployableAssemblies文件夹,因为Phil Haack的博客上似乎缺少菜单选项
  • 删除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>
Run Code Online (Sandbox Code Playgroud)

任何人??

cor*_*ler 3

您说您尝试了 copylocal=true,但是您是否确保程序集已部署到服务器?

\n\n

一个潜在的问题:

\n\n

\xe2\x80\xa2 .gitignore 有一个 .dll 过滤器

\n\n

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

\n