簡體   English   中英

TFS 2013-從預構建PowerShell腳本更新MSBuild參數

[英]TFS 2013 - Update MSBuild Parameters from pre-build PowerShell script

我最近已從TFS 2012升級到TFS 2013,並嘗試使用新模板(TfvcTemplate.12.xaml)。 在此過程中,我需要設置.NET應用程序和WiX安裝程序的版本號。 在TFS 2012流程中,我使用TFS社區構建擴展自定義了構建模板,以執行以下操作:

  1. 生成版本號。 主要和次要版本號是靜態的,發布號是自2014-11-25以來的天數,內部版本號是今天內部定義運行的次數。

  2. 使用新版本號更新所有AssemblyInfo.cs文件

  3. 更新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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM