Sha*_*zyk 2 asp.net msbuild asp.net-mvc tfs pubxml
我们有一个包含多个项目的 ASP.Net 解决方案。每个项目都有build.pubxml唯一的文件夹路径。
例如:
在项目中,Test我们在以下内容中有这一行build.pubxml:
<publishUrl>C:\publish\SolutionName\Test</publishUrl>
在项目中,Exam我们在以下内容中有这一行build.pubxml:
<publishUrl>C:\publish\SolutionName\Exam</publishUrl>
在构建管道(在 TFS 中)中,MSBuild 步骤带有此参数:
/p:PublishProfile=build.pubxml
构建完成后,我们得到了 2 个文件夹-Test以及.ExamC:\publish\SolutionName
到目前为止,一切都很好。
问题是我们的分支很少,并且我们希望将每个分支的发布文件夹分开,因此我们.pubxml为每个分支添加了内容,并在构建管道中指定了正确的分支。但是 make 在创建的每个新分支上都需要大量工作,并且可能会导致错误。
我们尝试在 MSBuild 中传递/p:publishUrl=C:\publish\BranchName,但随后我们得到了一个文件夹,其中包含 和 的所有内容Test,Exam而不是两个文件夹。
这个想法是每个项目只有一个 .pubxml带有参数的文件,并在管道中传递值,例如:
<publishUrl>C:\publish\$(Parameter)\Test</publishUrl>
并且在构建中我们将根据分支传递参数。
有可能做这样的事情吗?
有可能做这样的事情吗?
答案是肯定的。由于 msbuild在命令行中接受全局属性。build.pubxml如果我们在like中定义一个属性<publishUrl>C:\PublishFolders\$(BranchID)\xxx(Test,Exam...)</publishUrl>,那么我们可以简单地在 msbuild 参数中传递该值,如下所示:
然后我们将得到Test和Exam下的文件夹C:\PublishFolders\NewTest。我们还可以选择将管道预定义变量传递给命令,例如:/p:BranchID=$(Build.SourceBranch)...
这适用于本地计算机、tfs 和 Azure Devops 管道中的构建。希望以上内容有所帮助:)
| 归档时间: | 
 | 
| 查看次数: | 1639 次 | 
| 最近记录: |