Azure WebRole:通过VisualStudio部署时包含静态资产

时间:2016-01-14 23:04:56

标签: asp.net azure azure-web-roles

部署到Azure云服务时,是否可以包含额外的文件(未包含在ASP.NET / WebRole项目中)?

该项目是单页应用程序,我需要包含~500 kb的静态文件(主要是JavaScript和CSS);在这种情况下使用CDN听起来有点像矫枉过正。

将标准ASP.NET部署到远程IIS时,我只是通过使用CustomCollectFiles扩展发布配置文件设置(pubxml)来包含这些文件。

我不知道如何在部署到云服务时包含文件

1 个答案:

答案 0 :(得分:0)

默认情况下,CustomCollectFiles对你不起作用,但对你的.csproj进行了一些改动,你可以支持这个

根据Azure web role deploy does not copy non-project files

<Target Name="CustomCollectFiles">
    <ItemGroup>
      <_DistFiles Include="dist\**\*" />
      <FilesForPackagingFromProject Include="%(_DistFiles.Identity)">
        <DestinationRelativePath>dist\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
      </FilesForPackagingFromProject>
      <_SrcFiles Include="src\**\*" />
      <FilesForPackagingFromProject Include="%(_SrcFiles.Identity)">
        <DestinationRelativePath>src\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
      </FilesForPackagingFromProject>
    </ItemGroup>
  </Target>
  <PropertyGroup>
    <TypeScriptModuleKind>AMD</TypeScriptModuleKind>
    <CopyAllFilesToSingleFolderForPackageDependsOn>
      CustomCollectFiles;
      $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForPackageDependsOn>
    <CopyAllFilesToSingleFolderForMsdeployDependsOn>
      CustomCollectFiles;
      $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForMsdeployDependsOn>
  </PropertyGroup>
.
.
.
  <Target Name="AfterBuild" DependsOnTargets="CustomCollectFiles">
    <Copy SourceFiles="@(_DistFiles)" DestinationFolder="dist" />
  </Target>

另一种选择可能是将这些文件包含在链接的文件/文件夹中(如果它应该有效)。