如何在NuSpec文件中创建占位符并通过TeamCity参数替换它们

zis*_*ish 5 c# teamcity nuget-package

我正在尝试在Nuspec中创建PlaceHolders并通过TeamCity参数替换它们,但teamcity无法识别它们.这是我的NuSpec文件元数据

<metadata>
    <id>Id.@environment@</id>
    <title>Title.@environment@</title>
    <version>1.0.0</version>
    <authors>Charles Taylor</authors>
    <owners>Charles Taylor</owners>
    <licenseUrl>http://www.ctcplc.com</licenseUrl>
    <projectUrl>http://www.ctcplc.com</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Currency Request</description>
    <releaseNotes></releaseNotes>
</metadata>
Run Code Online (Sandbox Code Playgroud)

我在TeamCity中有一个环境变量.Team City在构建期间崩溃,我无法识别这些值.

我试过将@改为$,但没有运气.

Evo*_*Ltd 18

NuSpec文件中的一些替换标记在打包时从组件中拉出.

为了提供要替换的其他标记值,您可以使用该-Properties开关,但您必须在NuSpec文件中使用$ token $语法,而不是@ token @

例如

nuget pack -Properties "Environment=DEV;Something=Else"
Run Code Online (Sandbox Code Playgroud)

更多细节可以在这里找到 - NuSpec文档

希望这可以帮助

UPDATE

如果添加NuGet Pack构建步骤以及高级选项的方式,则应向您显示输入字段以在TeamCity中输入属性

在此输入图像描述

或者您可以使用命令行参数字段并使用语法在那里输入它们 -Properties "Environment=DEV;Something=Else"