2016-12-03 9 views
0

я следующие after_build определения в моем appveyor.yml:Как я могу ссылаться на проект как на зависимость пакета с определенной версией в AppVeyor и GitVersion?

after_build: 
- cmd: nuget pack "%project_file%" -properties "Configuration=%configuration%" -version "%GitVersion_NuGetVersion%" -symbols 
- cmd: nuget pack "%extras_project_file%" -properties "Configuration=%configuration%" -version "%GitVersion_NuGetVersion%" -symbols 

Теперь у меня есть эти два .proj -файлы, которые содержат соответствующий .nuspec -файл:

<?xml version="1.0"?> 
<package > 
    <metadata> 
    <id>$id$</id> 
    <version>$version$</version> 
    <authors>$author$</authors> 
    </metadata> 
</package> 

Наконец, у меня есть немного дополнение для extras_project_file:

<?xml version="1.0"?> 
<package > 
    <metadata> 
    <id>$id$</id> 
    <version>$version$</version> 
    <authors>$author$</authors> 
    <dependencies> 
     <dependency id="***project_name***" version="$version$" /> 
    </dependencies> 
    </metadata> 
</package> 

На самом деле, имя_проекта заменено на жестко запрограммированное значение для простоты - без впрыска с -properties. Во-вторых, любые связанные с проектом элементы, такие как description и authors, были опущены для обеспечения нейтрального вопроса, несмотря на то, что они являются обязательными для фактической упаковки.

project_file упаковано успешно:

Попытка построить пакет из 'Caliburn.Micro.Contrib.Controller.csproj'.
Автоматическое обнаружение MSBuild: с помощью msbuild версии '14 .0 'из' C: \ Program Files (x86) \ MSBuild \ 14.0 \ bin '.
Упаковка файлов из 'C: \ projects \ dotnet-caliburn-micro-contrib-controller \ src \ Caliburn.Micro.Contrib.Controller \ bin \ Release'.
Использование «Caliburn.Micro.Contrib.Controller.nuspec» для метаданных.
Найдено пакетов.config. Использование пакетов, перечисленных в качестве зависимостей
Успешно создан пакет 'C: \ projects \ dotnet-caliburn-micro-contrib-controller \ Caliburn.Micro.Contrib.Controller.0.1.0-unstable0068.nupkg'.

В то время как extras_project_file терпит неудачу:

Попытка построить пакет из 'Caliburn.Micro.Contrib.Controller.Extras.csproj'.
Автоматическое обнаружение MSBuild: с помощью msbuild версии '14 .0 'из' C: \ Program Files (x86) \ MSBuild \ 14.0 \ bin '.
Упаковка файлов из 'C: \ projects \ dotnet-caliburn-micro-contrib-controller \ src \ Caliburn.Micro.Contrib.Controller.Extras \ bin \ Release'.
Использование «Caliburn.Micro.Contrib.Controller.Extras.nuspec» для метаданных.
Найдено пакетов.config. Использование пакетов, перечисленных в качестве зависимостей
Версии с использованием SemVer 2.0.0 не поддерживаются: 0.1.0-unstable.68 + Branch.develop.Sha.7f85e35f315f7fe3ecd35762b65802e5467a57c2.

Я даже не уверен, что эта функция (маркер замены в <dependencies>) на самом деле имеется.

Если нет, то как еще я могу упаковать два файла .csproj в два отдельных файла .nupkg, где есть зависимость от другой версии с той или иной версией (той же версией, что и для сборки)?

ответ

0

Я нашел способ для этого сценария - но он пропускает %AssemblyInformationalVersion% быть выбит на заключительный .dll -файла как атрибут (так что нужно проверить GitVersionInformation -класса для фактического значения).

Я добавил assembly-informational-format: '{LegacySemVerPadded}' в GitVersion.yml.

Далее я удалил дополнительный dependencies -элемент в .nuspec, так что оба снова совпадают (= сброс).

Наконец, я приспособил мой after_build:

after_build: 
    cmd: nuget pack "%project_file%" -properties "Configuration=%configuration%" -symbols 
    cmd: nuget pack "%extras_project_file%" -properties "Configuration=%configuration%" -IncludeReferencedProjects -symbols 

 Смежные вопросы

  • Нет связанных вопросов^_^