.net 如何解决Azure Web deploy上System.Web.Helpers不匹配的问题?

.net 如何解决Azure Web deploy上System.Web.Helpers不匹配的问题?,.net,azure,visual-studio-2012,azure-web-app-service,assemblybinding,.net,Azure,Visual Studio 2012,Azure Web App Service,Assemblybinding,我不知道为什么我似乎不明白这一点。我有点像地狱。下面是正在发生的事情: 我正在使用Visual Studio 2012 RC制作一个针对.NET 4.0的MVC4站点 我正在尝试使用Microsoft.Web.Helpers库中的Gravatar Razor帮助程序 它在我的机器上工作,但在通过Git部署到Azure后,我在调用Gravatar helper时遇到以下异常: 无法加载文件或程序集“System.Web.Helpers,Version=2.0.0.0,Culture=neutra

我不知道为什么我似乎不明白这一点。我有点像地狱。下面是正在发生的事情:

  • 我正在使用Visual Studio 2012 RC制作一个针对.NET 4.0的MVC4站点
  • 我正在尝试使用
    Microsoft.Web.Helpers
    库中的Gravatar Razor帮助程序
  • 它在我的机器上工作,但在通过Git部署到Azure后,我在调用Gravatar helper时遇到以下异常:

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

似乎我的Azure站点所在的GAC上安装的
System.Web.Helpers
版本与我的目标版本不匹配

以下是我尝试过的:

  • 复制本地=真
  • 黑客攻击我自己的_bin_deployableAssemblies文件夹,因为菜单选项似乎缺失,如中所述
  • 删除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>

...

任何人???

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

A潜在问题:

•.gitignore有一个.dll过滤器


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

您尝试过下面的答案吗?愿意帮助您解决此问题。+1并接受。FTP的事情(我没有意识到您可以做)导致了这个问题(copy local是复制部署服务器的程序集,它是1.0.xxx而不是2.0.xxx)。我还意识到我的_bin_deployableAssembly文件夹中有
Microsoft.Web.Helpers
,而不是
System.Web.Helpers
;一旦我将正确的程序集添加到该文件夹中,一切正常。