Azure软件包即使包含复制本地集,也不包括链接的项目DLL

问题描述 投票:17回答:2

我有一个Azure解决方案,其中包含4个项目。 (在Windows 8,Azure Tools 1.8上为VS 2012)

  1. 具有通用代码的核心项目
  2. Web角色前端
  3. 用于服务数据的服务角色(来自SQL Azure DB)
  4. 计划任务的工人角色

所有角色项目都有对核心项目的引用,其中复制local = true ...标准内容。

Web角色和worker角色工作正常,但是我的服务角色一直陷于Initializing-Starting-Recycling循环中。当我浏览该服务时,会显示Could note load file or assembly FileNotFoundException。果然,到服务器的RDP和DLL丢失了。

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

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

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

azure package filenotfoundexception azure-deployment assembly-references
2个回答
18
投票

正如我在评论中写道,我和您的处境相同(Windows 7和8,VS 2012,Azure SDK 1.8)。 复制本地设置为true,但是当我打开* 。cspkg包时,approot文件夹中缺少引用的程序集。我做了什么,创建了一个新的Worker Role项目并从旧的项目中复制了代码。现在包括所有程序集。

更新:就我而言,上述解决方案并不是必需的。我真正的问题是我的Web角色意外引用了我的Worker Role程序集。当我删除了这个不必要的参考时,“工作者角色”将所有程序集打包在一起。我认为这种行为是儿童车。


2
投票

我可以确认安东在他的答案中以“ UPDATE”开头的段落中描述的内容:

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

结果是Utils.dll没有包含在云服务的.cspkg文件中,并且在Visual Studio中没有错误消息。将消息类放入项目Utils中并删除引用WebRole-> WorkerRole之后,一切都很好。

似乎确实是个错误。

© www.soinside.com 2019 - 2024. All rights reserved.