Передайте переменную в nuspec с пакетом dotnet - PullRequest
0 голосов
/ 26 ноября 2018

Как использовать пакет dotnet, как передать переменную в файл nuspec?

Я пытаюсь передать версию.Вот nuspec:

<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <!-- Required elements-->
        <id>1</id>
        <version>$PackageVersion$</version>
        <description>1</description>
        <authors>1</authors>
    </metadata>
</package>

А вот моя команда:

dotnet.exe pack /p:NuspecFile=./App.Nuspec /p:PackageVersion=9.7.28170

Я получаю сообщение об ошибке: Значение не может быть нулевым или пустой строкой.

Интересно, если я изменю переменную на описание:

<version>1.1.0</version>
<description>$PackageVersion$</description>

Я получаю сообщение об ошибке: Требуется описание.

Когда тег является описанием, имя тега появляется в сообщении об ошибке.Однако, когда тег является версией, в сообщении об ошибке нет имени тега - только значение термина.Оба поля являются обязательными.

Я делаю это с помощью командной строки на моем локальном компьютере, но сборка TFS выдает ту же ошибку.Вот подсказка TFS для дополнительных свойств сборки для этого шага. Указывает список пар токен = значение, разделенных точками с запятой, где каждое вхождение $ token $ в файле .nuspec будет заменено на указанное значение.Значения могут быть строками в кавычках.

Звучит так, будто я следую этим правилам.И вот что генерирует TFS:

Пакет "C: \ Program Files \ dotnet \ dotnet.exe" D: \ Agent_work \ 5 \ s \ MyProject \ MyProject.csproj --output D: \Agent_work \ 5 \ a /p:NuspecFile=App.nuspec /p:PackageVersion=9.7.28170 --verbosity Normal

То же, что и моя команда.

Что я делаю неправильно

1 Ответ

0 голосов
/ 26 ноября 2018

Файлы csproj действуют как сквозные.Переменные нужно настроить следующим образом:

<NuspecFile>App.nuspec</NuspecFile>
<NuspecProperties>version=$(PackageVersion)</NuspecProperties>

Команда:

dotnet.exe pack /p:PackageVersion=9.7.28170

При этом используется файл Nuspec из файла proj и передается переменная PackageVersion в тег версии файла .nuspec.

...