Visual studio 2013 如何扩展Visual Studio web发布管道?

Visual studio 2013 如何扩展Visual Studio web发布管道?,visual-studio-2013,gruntjs,publishing,webdeploy,Visual Studio 2013,Gruntjs,Publishing,Webdeploy,我想调整visual studio如何将网站发布为包,通常该包是通过拾取根目录中的整个文件列表来创建的,编译、执行优化等等 在我的例子中,问题是我正在开发一个SPA,使用angular.js和Grunt来构建应用程序(优化),任务配置为将站点的“优化”版本放入根文件夹下方的“dist”中,这是使用grunt的工作流的典型场景 这些是场景的细节, 文件夹结构如下所示: /根 鲍尔元件 lib1我只是做了自己的研究,我找到了一种方法 您需要在根目录中创建一个wpp.targets文件,名称应为

我想调整visual studio如何将网站发布为,通常该包是通过拾取根目录中的整个文件列表来创建的,编译、执行优化等等

在我的例子中,问题是我正在开发一个SPA,使用angular.jsGrunt构建应用程序(优化),任务配置为将站点的“优化”版本放入根文件夹下方的“dist”中,这是使用grunt的工作流的典型场景

这些是场景的细节, 文件夹结构如下所示:

  • /根
    • 鲍尔元件

      • lib1我只是做了自己的研究,我找到了一种方法

        您需要在根目录中创建一个wpp.targets文件,名称应为[projectName]。例如wpp.targets

        然后在该文件中,您需要按照以下说明安装msdeploy:

        <?xml version="1.0" encoding="utf-8" ?>
            <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
                <PropertyGroup>
                  <BuildDependsOn Condition="'$(Configuration)' == 'Release'">
                    gruntBuild
                  </BuildDependsOn>
                  <ExcludeFoldersFromDeployment>
                   foldername1, foldername2
                  </ExcludeFoldersFromDeployment>
                  <ExcludeFilesFromDeployment>
                   filename.extension, filename2, filename3, etc
                  </ExcludeFilesFromDeployment>
                  <CopyAllFilesToSingleFolderForPackageDependsOn>
                    CustomCollectFiles;
                    $(CopyAllFilesToSingleFolderForPackageDependsOn);
                  </CopyAllFilesToSingleFolderForPackageDependsOn>
                  <CopyAllFilesToSingleFolderForMsdeployDependsOn>
                    CustomCollectFiles;
                    $(CopyAllFilesToSingleFolderForMsdeployDependsOn);
                  </CopyAllFilesToSingleFolderForMsdeployDependsOn>
                </PropertyGroup>
        
              <!--
                you can try to run the grunt build for me it takes too long and the visual studio just gets freeze so I run the grunt task before doing the deploy, but it's up to you 
                <Target Name="gruntBuild">
                <Message Text="=== buil on publish ===" Importance="high" />
                <ItemGroup>
                  <Binaries Include="*.dll;*.exe"/>
                </ItemGroup>
                <Exec Command="bower install" />
                <Exec Command="grunt build" />
              </Target>-->
        
              <Target Name="CustomCollectFiles">
                <Message Text="=== CustomCollectFiles ===" Importance="high" />
                <ItemGroup>
                  <CustomFiles Include="dist\**\*.*" />
                  <FilesForPackagingFromProject   Include="%(CustomFiles.Identity)">
                    <DestinationRelativePath>%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
                  </FilesForPackagingFromProject>
                </ItemGroup>
              </Target>
            </Project>
        
        
        粗制滥造
        foldername1,foldername2
        filename.extension、filename2、filename3等
        自定义文件;
        $(将所有文件复制到SingleFolderForpPackageDependson);
        自定义文件;
        $(将所有文件复制到SingleFoldPerformesDeploydependson);
        %(RecursiveDir)%(文件名)%(扩展名)