0

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

我使用 NuGet 包管理器升级到当前版本 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。

为什么没有部署?

4

1 回答 1

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。

只有这样,它们才会在部署时出现在我的 approot/bin 中。

于 2013-02-02T18:15:18.853 回答