[英]TFS 2013 - Update MSBuild Parameters from pre-build PowerShell script
我最近已从TFS 2012升级到TFS 2013,并尝试使用新模板(TfvcTemplate.12.xaml)。 在此过程中,我需要设置.NET应用程序和WiX安装程序的版本号。 在TFS 2012流程中,我使用TFS社区构建扩展自定义了构建模板,以执行以下操作:
生成版本号。 主要和次要版本号是静态的,发布号是自2014-11-25以来的天数,内部版本号是今天内部定义运行的次数。
使用新版本号更新所有AssemblyInfo.cs文件
更新MsBuildArguments参数以将版本作为参数传递。 这样便可以在WiX安装程序中设置版本号。
在再次求助于自定义构建模板之前,我想尝试使用预构建PowerShell脚本实现以上目标。
在PowerShell中,第1项和第2项很容易,但我坚持第三个要求。 预构建PowerShell脚本是否可以更新MSBuildArguments?
我认为有一种更简单的方法可以做到这一点。 这就是我们所做的。
创建了一个名为Version.wsi的包含文件。 该文件包含以下4行:
<?xml version="1.0" encoding="utf-8"?>
<Include>
<?define CurrVersion="1.0.0.0" ?>
</Include>
在我们的wxs文件中,
<Wix xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns="http://schemas.microsoft.com/wix/2006/wi" >
添加以下内容:
<?include Version.wxi ?>
在wxs文件中,使用变量$(var.CurrVersion)在当前指定版本的位置。
现在,您需要在powershell脚本中包括的只是一些代码,可以使用正确的版本号修改wxi文件。 这是我的方法:
function UpdateVersion($newVersion)
{
$wxiFile = gci "$Somedir\Version.wxi"
#clear the read-only bit just in case
Set-ItemProperty $wxiFile -name IsReadOnly -value $false -Force
$newContent = $content -replace "1.0.0", $prodVersion
Set-Content -Path $wxiFile -Value $newContent
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.