【问题标题】:Run Package Manager commands in TeamCity build step在 TeamCity 构建步骤中运行包管理器命令
【发布时间】:2016-05-17 17:53:32
【问题描述】:

说明

我需要在构建项目之前签署 nuget 包 (MathNet.Numerics),为此,我使用的是 Nivot.StrongNaming 包,并在 包管理器控制台中运行以下命令 em>:

Install-Package Nivot.StrongNaming
$root = join-path (split-path $dte.solution.filename) packages
$solution = (split-path $dte.solution.filename)
$key = Import-StrongNameKeyPair -KeyFile $solution\MuProjectFolder\Key.snk
dir -rec  $root\MathNet.Numerics.3.11.0\*.dll | where { -not (Test-StrongName $_) } | Set-StrongName -KeyPair $key -Verbose

(注意我不能使用签名版本的包,因为这是一个共享项目,它会破坏其他项目......)

问题

有没有办法在 TeamCity 尝试构建解决方案之前将这些步骤添加到它?这将确保我们对其进行签名。

如何在 Team City 项目的构建步骤中运行一些包管理器控制台命令 (Visual Studio)?

我可以将它作为命令行运行吗?

【问题讨论】:

  • 您是在尝试恢复 NuGet 包还是更复杂的东西?
  • @EvolveSoftwareLtd 我在问题中添加了更多详细信息。

标签: teamcity nuget-package teamcity-9.0


【解决方案1】:

我已经假设 Nivot.StrongNaming 不是 packages.config 中引用的包 - 如果是,则忽略安装包的相关步骤。

我还固定了版本号,因此更容易导入 powershell 模块文件 - 最终,您可能需要修改路径以使其在您的环境中工作,但从概念上讲没问题。

  1. 将以下脚本保存到 .ps1 并将其添加到您的版本控制中 - 这样您就知道它会在您需要时出现在构建代理上。 sign-assembly-using-nivot.ps1

  2. 使用命令行步骤创建构建配置以安装 Nivot.StrongNaming(可选,取决于我的假设)和运行脚本的 PowerShell 步骤。我安装 MathNet.Numerics 只是因为我没有解决方案。

需要时安装 Nivot.StrongNaming 的命令行运行程序

PowerShell 运行器到引导脚本

  1. 现在创建这些变量,以便您轻松调整环境所需的路径。

您的构建日志应如下所示

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2013-01-23
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多