描述
我需要在构建项目之前签署nuget包(MathNet.Numerics
),为此,我正在使用Nivot.StrongNaming
包,并在包中运行以下命令经理控制台:
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项目的构建步骤中运行某些Package Manager控制台命令(Visual Studio)?
我可以将其作为命令行运行吗?
答案 0 :(得分:2)
我已经这样做了,假设Nivot.StrongNaming不是packages.config中的引用包 - 如果它只是忽略安装包的相关步骤。
我还固定了版本号,因此导入powershell模块文件更容易 - 最终您可能需要修改路径以使其在您的环境中运行,但从概念上讲它很好。
将以下脚本保存到.ps1并将其添加到版本控制中 - 这样您就知道它将在您需要时在构建代理上。 sign-assembly-using-nivot.ps1
使用命令行步骤创建构建配置以安装Nivot.StrongNaming(可选,具体取决于我的假设)和PowerShell步骤以运行脚本。我正在安装MathNet.Numerics,因为我没有解决方案。