Создание пакета Nuget - библиотека классов, нацеленная на .NET Framework 4.6.1, не может быть нацелена на правильный каркас - PullRequest
0 голосов
/ 08 ноября 2019

Я создал библиотеку классов, предназначенную для .net framework 4.6.1 (почти пустой холст, с единственным методом для возврата строки, только для целей тестирования). Я хочу превратить это в пакет nuget. Я следую этой статье https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio-net-framework, но когда я попадаю в "пакет nuget", я получаю следующее предупреждение:

"WARNING: NU5128: Some target frameworks declared in the dependencies group of the nuspec and the lib/ref folder do not have exact matches in the other location. Consult the list of actions below:
- Add a dependency group for .NETFramework4.6.1 to the nuspec"

Я попытался добавить группу зависимостей в файл .nuspec:

<?xml version="1.0"?> 
<package>
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>Author</authors>
    <owners>$author$</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>H</description>
    <copyright>Copyright 2019</copyright>
    <tags>blah</tags>
    <dependencies>
      <group targetFramework=".NETFramework4.6.1" />
    </dependencies>   
  </metadata> 
</package>

и я также попытался:

<?xml version="1.0"?> 
<package>
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>Author</authors>
    <owners>$author$</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>H</description>
    <copyright>Copyright 2019</copyright>
    <tags>blah</tags>
    <dependencies>
      <group targetFramework="net461" />
    </dependencies>   
  </metadata> 
</package>

Я все еще получаю ту же ошибку.

Я пытался использовать более старые версии nuget, где предупреждающее сообщение не отображается, но та же проблема сохраняется (если я пытаюсь добавить через менеджер пакетов, он говорит, что не имеет никаких зависимостей).

1 Ответ

0 голосов
/ 11 ноября 2019

ВНИМАНИЕ: NU5128: Некоторые целевые платформы, объявленные в группе зависимостей nuspec и в папке lib / ref, не имеют точных совпадений в другом месте. Ознакомьтесь со списком действий ниже.

Это открытый вопрос в Github/Nuget, см. # 8713 . Я могу воспроизвести ту же проблему в моем VS2017 с Nuget V5.3, и эта проблема исчезнет, ​​если я использую Nuget V5.2 или более раннюю версию. Боюсь, что в этой ситуации вам придется использовать более ранние версии Nuget.exe, пока команда не выпустит исправление.

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

1.Если отображается no package dependencies, хотя ваш пакетный проект зависит от некоторых пакетов nuget, проверьте, не используете ли вы packageReference для управления nuget в текущем проекте. На данный момент команда nuget pack не работает для проектов .net Framework с packageReference или проектов нового формата SDK .

Вы можете проверить подробности в ответе Лео , чтобы решить эту проблему.

2. Если no dependencies вы имеете в виду, что когда один проект использует ваш пакет, он нене отображать, на какой фреймворк нацелен ваш проект, например:

enter image description here (мы можем видеть, что ваш пакет зависит от Newtonsoft.Json, но мы не можем найти, на какой фреймворк он нацелен (net461).)

Для этого нам нужно использовать команду типа nuget pack xx.nuspec, чтобы добавить dependencies+group в пакет при упаковке. Тогда мы можем увидеть как целевые рамки, так и зависимые пакеты, например:

enter image description here

Надеюсь, все вышеперечисленное поможет, и если я что-то неправильно пойму, не стесняйтесь исправлять меня:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...