无法加载程序集 - 部署到Azure - Microsoft.Activities.Extensions

时间:2013-02-02 17:49:54

标签: azure workflow-foundation-4 assembly-resolution

我的解决方案中有一个引用Microsoft.Activies.Extensions.dll 2.0.2.16的工作流项目

我使用NuGet Package Manager升级到当前版本2.0.6.9

将引用工作流项目.dll的Web角色部署到云端,我得到:

 Could not load file or assembly 'Microsoft.Activities.Extensions, PublicKeyToken=23b0c89d0d5ad43f' or one of its dependencies. The system cannot find the file specified.

我远程桌面到VM并检查F:/approot/bin以查看部署版本的版本

由于这是一个NuGet包,我可以在我的<Solution root>/Packages folder中找到它。我看到NuGet创建的新文件夹,但也看到了旧版本文件夹,虽然程序集不在里面。我删除了该文件夹,并在我的web.config中添加了一个程序集重定向:

<dependentAssembly>
    <assemblyIdentity name="Microsoft.Activities.Extensions" publicKeyToken="23b0c89d0d5ad43f" />
    <bindingRedirect oldVersion="2.0.2.12" newVersion="2.0.6.9" />
  </dependentAssembly>

通过Publish清除,构建和重新部署。

错误仍然存​​在,再次深入了解approot / bin会显示程序集仍未部署。

我当然将Copy Local设置为true。

为什么没有部署?

1 个答案:

答案 0 :(得分:0)

好的,找到这篇文章后解决了:

http://weblogs.asp.net/albertpascual/archive/2008/12/16/the-cloud-for-a-fast-deployment-of-proof-of-concepts.aspx

当web角色引用程序集而不是引用其他程序集时,即使Copy Local = true,也不会部署这些程序集。

解决方案是直接在Web-role项目中引用这些子依赖项,并将Copy Local设置为true。

只有这样,他们才会在部署后出现在我的apps / bin中。