Создание многоцелевого пакета nuget с .nuspec

Я указал мультитаргетинг в своем .csproj

<TargetFrameworks>netstandard2.0;net472</TargetFrameworks>

Когда я использую приведенный ниже скрипт, мой пакет имеет зависимости, и это ожидаемый результат:

dotnet pack --output nupkgs $ProjectPath -c:Release

Проблема в том, что я также хочу использовать файл .nuspec с некоторой информацией о пакете:

dotnet pack --output nupkgs $ProjectPath -c:Release -p:NuspecFile=$NuspecFile 

С файлом .nuspec у пакета нет зависимостей, и я могу установить его только в netstandard2.0...

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>xyz</id>
    <version>1.2011.4</version>
    <title>xyz</title>
    <authors>xyz</authors>
    <projectUrl>xyz</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>xyz</description>
    <copyright>xyz</copyright>
  </metadata>
</package>

Должен ли я добавить что-то в этот .nuspec, чтобы получить пакет с целевыми зависимостями? Я читал о теге, но, честно говоря, не могу найти пример его настройки.


person Gordonik    schedule 05.11.2020    source источник


Ответы (1)


Учитывая, что вы используете проекты на основе SDK, я настоятельно не рекомендую использовать nuspec, если только ваш сценарий не может быть удовлетворен из-за его сложности.

Автоматическое создание пакета с файлом проекта через dotnet.exe pack делает большую часть работы по обеспечению совместимости за вас.

Если вам действительно нужно использовать nuspec, вы должны добавить группы зависимостей, как определено здесь:

https://docs.microsoft.com/en-us/nuget/reference/nuspec#dependency-groups.

Убедитесь, что вы добавили соответствующий фреймворк.

Пример

    <group targetFramework=".NETFramework4.7.2">
        <dependency id="PackageA" version="1.2.3" />
    </group>
     <group targetFramework=".NETStandard2.0">
        <dependency id="PackageB" version="4.5.6" />
    </group>

Обратите внимание, что вам нужно добавить группу зависимостей для конкретных поддерживаемых вами платформ.

person imps    schedule 05.11.2020