У нас есть внутреннее соглашение, согласно которому, если CI / CD выполняет сборку ветви компонента, пакет NuGet должен быть опубликован как "PackageId-FeatureBranchName". Мы публикуем эти пакеты в специальном фиде, на который мы не ссылаемся в производственных сборках. В нашем сценарии сборки, если мы обнаружим, что мы выполняем сборку ветви функций, мы ищем любые файлы .nuspec, выводимые сборкой, и сборка заменит в файле .nuspec "" на "-FeatureBranchName" во всех файлах .nuspec в решение. Это прекрасно работает, если в решении есть только один пакет без зависимостей от других проектов.
Теперь у меня есть два проекта .NET Standard My.Assmebly.A и My.Assmebly.B, которые должны иметь свои собственные пакеты NuGet. B зависит от A. Я могу использовать тот же сценарий сборки выше, чтобы правильно установить каждый пакет. Тем не менее, я не уверен, что решение также обновить .nuspec для пакета B, чтобы также обновить его зависимость от A, чтобы иметь переименованное My.Assmebly.A-FeatureBranchName.
Есть ли простой способ написать это? Или я чувствую, что с dotnet pack
я делаю это неправильно, но я не вижу способа установить идентификаторы пакетов через командную строку или другие, особенно когда речь идет о таких зависимостях. Я вижу токен $ id $, который вы можете установить и заменить. Но я не уверен, как использовать это сейчас, когда проекты .NET Standard генерируют свои собственные .nuspec во время сборки. Я также не думаю, что это будет работать с моей ситуацией зависимости.
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>My.Assmebly.B</id>
<dependencies>
<group targetFramework=".NETCoreApp2.1">
<dependency id="My.Assmebly.A" version="1.0.0" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
</package>
Должен выглядеть так:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>My.Assmebly.B-FeatureBranchName</id>
<dependencies>
<group targetFramework=".NETCoreApp2.1">
<dependency id="My.Assmebly.A-FeatureBranchName" version="1.0.0" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
</package>