2015-09-11 68 views
1

我们正在尝试将一个AngularJs网站部署到Azure,它是用gulp构建的。所以我们在一个源代码应用程序中开发,gulp将这些文件复制到dist项目中。 dist项目是Azure云源Web角色。 “编译”文件位于项目文件夹内,但由于某些原因,它们未被复制。Azure Web角色部署不会复制非项目文件

我们打开选项属性 - >封装/ Publich网络 - >在这个项目文件夹中的所有文件

部署我只看到packes.config,web.config文件和bin文件夹后。我们需要做些什么才能部署其余的文件?

回答

1

是的,gulp生成的文件实际上并不是项目的一部分(包含在xx.csproj文件中),这就是为什么“所有文件...”不起作用的原因。我们通过添加一些自定义目标来构建项目文件来实现这一点 - 我们的吞噬文件位于名为“dist”的文件夹中。

卸载项目>>编辑...然后包括像:

<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> 
相关问题