1

我有一个工作角色,其中包含对一些 nuget 包的引用,这些包将一些需要的运行时文件作为构建后步骤拖放到项目 bin 文件夹中。

我面临的问题是这些文件没有被复制到已发布的工作角色,因为它们没有被工作角色 .csproj 跟踪

工人角色.csproj:

...
<Import Project="[path-to-nupkg]\build\package.targets" Condition="Exists('[path-to-nupkg]\build\package.targets')" />

package.targets 复制构建后的资源,因此构建后的工作角色 bin 文件夹包括:

MyWorkerRole.dll
resource.txt
Resources\another_resource.txt

但是,在打包工作人员角色以进行部署时,WorkerRole.cspkg 仅包含MyWorkerRole.dll.

我尝试通过将以下内容添加到我的 .ccproj来遵循向 Windows Azure 应用程序角色动态添加内容:

  <Target Name="BeforeAddRoleContent">
    <ItemGroup>
      <AzureRoleContent Include="Resources\*">
        <RoleName>MyWorkerRole</RoleName>
      </AzureRoleContent>
    </ItemGroup>
  </Target>

但是该文件夹没有被删除,并且在打包过程中我没有收到任何错误。

编辑:有人建议我尝试使用Role Content Folders,但我的问题是资源来自 Nuget 包。所以至少在构建时间之前不可用(实际上作为构建后任务被删除)。

4

1 回答 1

0

我检查了向 Windows Azure 应用程序角色动态添加内容,发现用于存储文件的附加文件夹应位于您的 Azure 云服务项目中,如下所示:

在此处输入图像描述

然后编辑您的云服务.ccproj并覆盖BeforeAddRoleContent目标,如下所示:

在此处输入图像描述

打包您的云服务项目后,您可以查看打包内容如下:

在此处输入图像描述

根据您的要求,您可以使用构建事件并将文件复制到AdditionalContentazure 云服务项目中的文件夹中。

于 2017-08-24T02:20:10.230 回答