bit*_*ift 3 msbuild azure-devops azure-pipelines
注意:具有MVC Web应用程序和其他几个项目的Visual Studio 2017解决方案,Web应用程序项目未引用所有这些项目。到目前为止,我一直直接使用VS来发布到测试服务器,但是我已经将其移到VSTS中,并且具有构建和发布定义设置,但尚无法正常工作。
我要实现的目标是让我的(托管)VSTS构建代理生成发布的文件,这些文件可以由我的(本地)发布代理简单地复制到其目标位置。因此,我试图从VS命令行在本地测试MS构建步骤,以获取生成的文件并记下它们所在的路径。也许我让这变得更复杂了吗?
这些选项将创建一个单独的压缩存档及其关联文件,并将其放置在工件临时目录中。有没有一种方法可以简单地发布文件,而无需将其存储在存档中,而是直接将其存储在工件暂存目录中?
Visual Studio构建
MSBuild参数
Run Code Online (Sandbox Code Playgroud)/t:My_MVCWeb_Project_Name /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"
在我使用本地代理发布的版本中,我有一个“复制文件”任务,目标是IIS应用程序所在的unc路径。但是,这只会复制存档。那么,如何像使用发布配置文件一样直接将文件复制到应用程序目录?
[update2-仍在生成zip文件]
MSBuild my_solution_name /t:"my_project_name" /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:SkipInvalidConfigurations=true /p:PackageLocation="D:\temp\local-dev-build-dir"
Run Code Online (Sandbox Code Playgroud)
[update 3]从命令行尝试这些作为测试,但是什么也没有生成
msbuild D:\app_dir>MSBuild my_solution_name.sln /t:"my_web_proj_name" /p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="D:\temp\app_build_dir\\"
/p:DeployDefaultTarget=WebPublish
Run Code Online (Sandbox Code Playgroud)
改用这些 MSBuild 参数:
/p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactstagingdirectory)\\" /p:DeployDefaultTarget=WebPublish
Run Code Online (Sandbox Code Playgroud)
去除
/p:PackageAsSingleFile=true
Run Code Online (Sandbox Code Playgroud)
或将其更改为:
/p:PackageAsSingleFile=false
Run Code Online (Sandbox Code Playgroud)
这导致文件被压缩。
您可能还需要将发布方法切换为包:
/p:OutDir=$(build.artifactstagingdirectory)
/p:WebPublishMethod=Package
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3979 次 |
| 最近记录: |