Pau*_*aul 16 msbuild visual-studio azure-devops azure-pipelines visual-studio-2017
我有一个解决方案,包含两个基本的(不是MVC或.Net Core)ASP.Net Web应用程序,以及它们所依赖的一些库.
我在VSTS中有一个构建定义,其中包含一个Visual Studio Build步骤,该步骤使用MSBuild构建解决方案.
默认的MSBuild参数集将每个Web应用程序打包到一个文件中,通过批处理文件进行部署:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"
我不能使用此方法,并要求将网站发布到文件系统,以便现有脚本可以进行部署.
因此我将这些论点改为:
/p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:publishUrl=$(build.artifactstagingdirectory)\website
这确实将两个网站发布到文件系统,但问题是它将它们放在同一个文件夹中.
有没有办法传递某种类型的paramaterised URL,publishUrl以便这两个网站最终可以在不同的文件夹中?或者我必须为每个项目单独制作一个MSBuild步骤吗?
Mar*_*ich 13
您需要在项目中添加额外的构建逻辑,只在一次调用中执行此操作.
您可以Directory.Build.props在解决方案的根目录中创建一个文件(以便所有Web项目在目录层次结构中位于其下方),并具有以下内容:
<Project>
<PropertyGroup>
<PublishUrl Condition="'$(PublishBaseUrl)' != '' and '$(PublishUrl)' == ''">$(PublishBaseUrl)\$(MSBuildProjectName)\</PublishUrl>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
这允许您设置/p:PublishBaseUrl="$(build.artifactstagingdirectory)\\"为参数而不是PublishUrl项目名称将附加到路径.
| 归档时间: |
|
| 查看次数: |
8192 次 |
| 最近记录: |