【问题标题】:Modify the .exe's AssemblyInfo using PowerShell in TFS 2018 build在 TFS 2018 版本中使用 PowerShell 修改 .exe 的 AssemblyInfo
【发布时间】:2019-10-31 20:09:01
【问题描述】:

我想使用 PowerShell 来更新我的应用程序的程序集信息,例如 TFS vNext 构建中的产品名称、文件描述。我想在构建定义中使用构建变量并将其传递给脚本。

在这个(https://writeabout.net/2015/11/01/set-assembly-and-app-version-to-a-matching-build-name-in-tfs-2015-or-vso-build-vnext/) 的帮助下,我也做了同样的事情来更新版本号。

我需要脚本方面的帮助,以将“产品名称”或“描述”值替换为新值。

【问题讨论】:

    标签: powershell tfs build assemblyinfo


    【解决方案1】:

    您可以用一个小脚本替换名称和描述:

    Param(
        [string]$filePath,
        [string]$newProductName,
        [string]$newProductDesc
    )
    
    $patternProductName = '\[assembly: AssemblyProduct\("(.*)"\)\]'
    $patternProductDesc = '\[assembly: AssemblyDescription\("(.*)"\)\]'
    (Get-Content $filePath) | ForEach-Object{
         if($_ -match $patternProductName){
               '[assembly: AssemblyProduct("{0}")]' -f $newProductName
         }
         elseif($_ -match $patternProductDesc){
               '[assembly: AssemblyDescription("{0}")]' -f $newProductDesc 
         }
         else{
            $_
         }
    } | Set-Content $filePath
    

    现在在构建期间调用此脚本并在参数中发送 3 个参数:AssmeblyInfo 文件路径、新产品名称和新产品描述。

    【讨论】:

    • 小修正变量名错误 - $patternProductName = '[assembly: AssemblyDescription("(.*)")]' 应该是 $patternProductDesc = '[assembly: AssemblyDescription("(.*)") ]'
    • 为了后代,我不得不在 Param 部分的每个参数后面加上逗号。
    • @b.pell 你说得对!我修好了它。谢谢!
    • @ShaykiAbramczyk 也感谢您的分享,这个 PowerShell 可以节省时间。
    猜你喜欢
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2017-10-10
    • 2019-09-26
    • 1970-01-01
    • 2011-09-14
    相关资源
    最近更新 更多