Пакет Nuget для нескольких фреймворков - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь создать пакет nuget для нескольких фреймворков.Но это не работает.Файл csproj:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
   <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
   <OutputType>Library</OutputType>
   <TargetFrameworks>net452;netstandard2.0</TargetFrameworks>
   <NuGetPackageImportStamp />
 </PropertyGroup>

запущенная команда:

C:\Repos\Random\TestStuff\.nuget\nuget pack "C:\Repos\Random\TestStuff\TestPackaging\TestPackaging.csproj"

Выдает ошибку:

Ошибка NU5012: Невозможно найти 'bin \Debug \ TestPackaging \ Bin \ Debug \».Убедитесь, что проект построен.

Если я изменю конфигурацию на:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
  <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
   <OutputType>Library</OutputType>
   <TargetFramework>netstandard2.0</TargetFramework>
   <NuGetPackageImportStamp />
 </PropertyGroup>
</Project>

, все работает нормально.Чего мне не хватает?Изменение местоположения, из которого я его запускаю, не имеет значения.

РЕДАКТИРОВАТЬ: выполнение команды

C:\Repos\Random\TestStuff\.nuget\nuget pack "C:\Repos\Random\TestStuff\TestPackaging\TestPackaging.csproj" -build

выдает другую ошибку:

Build succeeded.
0 Warning(s)
0 Error(s)

Time Elapsed 00:00:00.50
Packing files from 
'C:\Repos\Random\TestStuff\TestPackaging\bin\Debug\TestPackaging\bin\Debug'.
Could not find a part of the path 
'C:\Repos\Random\TestStuff\TestPackaging\bin\Debug\TestPackaging\bin\Debug'.

то же самое с файлом nuspec

Ответы [ 2 ]

0 голосов
/ 12 августа 2019

Для нацеливания на несколько платформ с атрибутами nupsec xml в файле стиля csproj SDK.Добавьте этот TargetFrameworks (с 's') обратно в csproj:

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

Отредактируйте манифест , добавьте эти строки в ProjectGroup, которые определили TargetFrameworks:

<files>
  <file src="bin\Release\net462\TestPackaging.dll" target="lib\net452\TestPackaging.dll" />
  <file src="bin\Release\netstandard2.0\TestPackaging.dll" target="lib\netstandard2.0\TestPackaging.dll" />
</files>

Создайте проект, и библиотеки DLL перейдут в свои соответствующие каталоги, Nuget Get будет собран с исходными файлами для обеих целевых структур.

0 голосов
/ 01 марта 2019

nuget.exe не поддерживает упаковку проектов PackageReference, а проекты SDK всегда являются PackageReference.

Вам необходимо упаковать, используя dotnet pack или msbuild -t:pack

...