Azure软件包不包括链接的项目DLL,即使带有副本本地集

Azure软件包不包括链接的项目DLL,即使带有副本本地集,azure,package,filenotfoundexception,azure-deployment,assembly-references,Azure,Package,Filenotfoundexception,Azure Deployment,Assembly References,我有一个Azure解决方案,其中包含4个项目。(与Windows 8上的2012年相比,Azure Tools 1.8) 具有通用代码的核心项目 Web角色前端 服务数据的服务角色(来自SQL Azure DB) 计划任务的工作人员角色 所有角色项目都有一个对核心项目的引用,其copy local=true。。。标准的东西 web角色和worker角色工作正常,但我的服务角色一直卡在初始化-启动-回收循环中。 当我浏览到该服务时,我会得到提示加载文件或程序集文件NotFoundException

我有一个Azure解决方案,其中包含4个项目。(与Windows 8上的2012年相比,Azure Tools 1.8)

  • 具有通用代码的核心项目
  • Web角色前端
  • 服务数据的服务角色(来自SQL Azure DB)
  • 计划任务的工作人员角色
  • 所有角色项目都有一个对核心项目的引用,其copy local=true。。。标准的东西

    web角色和worker角色工作正常,但我的服务角色一直卡在初始化-启动-回收循环中。 当我浏览到该服务时,我会得到
    提示加载文件或程序集文件NotFoundException
    。 果然,服务器的RDP和DLL丢失了

    在本地查看包文件时,其他角色包括缺少的DLL,但不包括服务角色

    如果我使用VS将服务角色(不是azure publish)发布到本地文件系统,则会包含核心DLL,以证明VS设置对于本地副本是正确的


    在VS中是否有其他方法可以影响添加到Azure部署包的文件,或者是否有一种简单的方法可以在不使用VS的情况下编写创建包的脚本?

    正如我在评论中所写,我的情况与您相同(Windows 7和8,VS 2012,Azure SDK 1.8)。Copy Local设置为true,但当我打开*.cspkg包时,Approt文件夹中缺少引用的程序集。我所做的是创建了新的工作者角色项目,并从旧项目复制了代码。现在所有的组件都包括在内了

    更新:
    在我的案例中,上面描述的解决方案并不是真正必要的。我真正的问题是我的Web角色意外引用了我的工作者角色程序集。当我删除这个不必要的引用时,Worker角色获得了包中的所有程序集。在我看来,这种行为是错误的。

    我可以证实安东在以“更新”开头的一段中的回答:

    我有一个名为“Utils”的类库项目、一个“WorkerRole”项目和一个“WebRole”项目。 WorkerRole和WebRole都引用了UTIL。此外,WebRole正在引用WorkerRole,因为后者包含一些用作服务总线消息的类

    结果是,云服务的.cspkg文件中没有包含Utils.dll,并且Visual Studio中没有错误消息。 在将消息类放入projectutils并删除引用WebRole->WorkerRole之后,一切又恢复了正常


    似乎确实是个bug。

    可能是GAC的问题。可能会评论这篇文章:谢谢@Jay,但这是一个项目引用(因此private标记不适用,相反,我在设计器中将Copy Local设置为true),并且我引用的项目未签名或未在GAC中。最令人困惑的是,它适用于同一解决方案中的Web和工作者角色,而不是这一个服务角色这一“服务角色”是什么?这是模板中的“WCF服务角色”吗?我的最新解决方案也存在同样的问题,我在几天前创建的解决方案必须自己处理这个问题-这是一种奇怪的行为,但我看不到任何情况下,您希望在web角色中引用您的工作者角色DLL,而不使用共享库。Keith您是对的!但当这种情况发生时,像警告这样的事情会很好accidentally@KeithWilliams-是的,但两个错误并不等于一个正确为我工作,伙计!非常感谢!这对我来说比较简单——Copy Local设置为true,但我必须将其设置为False,然后再次设置为true,以便将其保存在.csproj文件中(作为true)