如何只将dist文件夹部署到azure网站?

时间:2016-12-01 02:52:22

标签: azure deployment frontend azure-web-sites web-deployment

我的azure网站项目中有src文件和dist /文件夹。

project
 |- src/
 |- dist/

默认行为会上传项目内的所有文件,即src和dist。

website
|- src/
|- dist/

我希望网站保持干净,只有dist文件。

website
|- dist/

如果我可以将dist文件夹映射到网站,那就更好了。

website
|- all the files
|- in dist folder

我该怎么办?

我知道我只能通过右键单击文件夹发布一个特定文件夹,然后发布"。但该网站还包含需要部署的bin /文件夹中的一些dll。

我尝试创建一个单独的azure网站项目,该项目只保存dist文件夹,但我不知道如何在部署中包含src项目中的dll。

1 个答案:

答案 0 :(得分:2)

根据您的要求,我假设您可以在将网站部署到Azure之前修改发布配置文件并添加一些MSBuild任务。这是我的测试,你可以参考它。

项目结构

修改您的发布个人资料

您可以使用RemoveDir定义目标,移动任务并将其放在发布配置文件中的PropertyGroup之后,如下所示:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <Target Name="MoveDistToRoot" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
    <!--1.Deleting Folders except dist-->
    <ItemGroup>
      <_FolderToDelete Include="$(_PackageTempDir)\src" />
      <!--you could add more folder paths as follows:-->
      <!--<_FolderToDelete Include="$(_PackageTempDir)\folderName" />-->
    </ItemGroup>
    <RemoveDir Directories="@(_FolderToDelete)" />

    <!--2.Copying files,folders from dist to root directory-->
    <ItemGroup>
      <_FileToMove Include="$(_PackageTempDir)\dist\**" />
    </ItemGroup>
    <Move SourceFiles="%(_FileToMove.Identity)" DestinationFolder="$(_PackageTempDir)\%(RecursiveDir)" />

    <!--3.Deleting the empty folder dist-->
    <RemoveDir Directories="$(_PackageTempDir)\dist" />
  </Target>

</Project>

根据更改,您可以使用修改后的发布配置文件将您的网站部署到Azure Web App,并尝试通过KUDU检查Azure上的Web应用程序的结构。