2017-03-01 34 views
0

在构建定义中,我在msbuild参数中包含以下参数: /p:DeployOnBuild = true/p:WebPublishMethod = FileSystem/p:PackageLocation = $(build。 stagingDirectory)\ DeployPackages \/p:PackageAsSingleFile = FALSE/p:SkipInvalidConfigurations = TRUE/p:AutoParameterizationWebConfigConnectionStrings =假/ p:GenerateProjectSpecificOutputFolder =需要真正TFS构建定义使用msbuild参数生成登台目录中的文件

所有文件都发生在DeployPackages文件夹,但文件夹和子文件夹列表去代码是很大的。有没有办法减少文件夹的数量? _work \ 5 \ A \ DeployPackages \存档\内容\ d_C \ tfsbuild_work \ 5 \ S \ MAIN \ AdService \ OBJ \ DEVE \包\ PackageTmp \

,它是一个包含我需要复制该文件的PackageTmp文件夹到我们的服务器。

感谢

+0

的构建过程中,你使用的是哪个XAML或Vnext建? –

回答

0

更新

为了减少文件夹路径和结构,你可以在包的位置使用其他参数,而不是$(build.stagingDirectory)。如

/p:PackageLocation="$(BuildConfiguration)"\DeployPackages\XX.zip 

/p:PackageLocation="$(build.artifactstagingdirectory)\DeployPackages\XX.zip 

此外,如果你有任何长路径的问题,最有效,最简便的方法仍然花了一些时间调整您的文件/文件夹结构。

例如:而不是\xx\Build\Drop\ProjectName,只需使用\xx\Build\Drop(或\xx\Builds),因为该项目名称也是在构建名称。

+0

我正在使用下一个构建服务(vnext)。 我想从去: _work \ 5 \ A \ DeployPackages \存档\内容\ d_C \ tfsbuild_work \ 5 \ S \ MAIN \ AdService \ OBJ \ DEVE \包\ PackageTmp \ 这样: _work \ 5 \ a \ DeployPackages \ AdService [这是项目名称] \如果我更改了msbuild参数PackageAsSingleFile = true,则需要在此放置 。它将生成一个zip文件,而不是将文件放入文件夹结构中,但zip中的文件夹结构与另一个文件夹结构相同。 –

+0

建议您使用'/ p:PackageAsSingleFile = true'。一些博客供您参考[如何从命令行打包部署的Web项目](https://blogs.endjin.com/2016/10/how-to-package-a-web-project-for-deployment-从命令行/)。你的'build.stagingDirectory'可能有问题。仔细检查一下,如果你的'build.stagingDirectory'太长而且太臃肿。文件夹结构的包位置必须相同。 –

+0

@CaptainKirk此外,您也可以尝试将'/ p:PackageLocation'更改为'/ p:PackageLocation =“$(BuildConfiguration)'”,例如此链接中提到的:http://stackoverflow.com/questions/33904574/using-visual-studio-team-services-to-build-a-solution-containing-multiple-web-ap –

0

您可以使用此参数:

/p:outdir="$(build.artifactstagingdirectory)\DeployPackages" 
相关问题