Проверьте, совместим ли пакет NuGet со стилем ссылки на пакет - PullRequest
0 голосов
/ 21 января 2020

Я хочу обновить свое решение, чтобы использовать стиль ссылок пакетов NuGet [1] (в отличие от использования packages.config). Есть некоторые проблемы с совместимостью [2], которые могут повлиять на этот переход.

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

[1] https://docs.microsoft.com/en-gb/nuget/consume-packages/migrate-packages-config-to-package-reference

[2] https://docs.microsoft.com/en-gb/nuget/consume-packages/migrate-packages-config-to-package-reference#package - проблемы совместимости

1 Ответ

0 голосов
/ 22 января 2020

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

Фактически, когда вы переносите все установленные nuget пакеты от packages.config до PackageReference, при этом ошибки не будет. Упомянутая вами проблема совместимости касается только пакетов nuget, которые будут установлены позже в проекте, в новой форме PackageReference .

Так что, если вы просто заботитесь об этих установленных пакетах nuget, Я думаю, вам не нужно беспокоиться об этом. Если вы хотите установить новые пакеты nuget после переноса, я думаю, вам следует обратить внимание на следующее:

1) Если вы хотите установить . Net Framework Пакет nuget, который вы создали сами, вам нужно быть осторожным в Проблемы совместимости пакетов , и это известные проблемы, предоставляемые Microsoft, Они ищут решение этой совместимости, поэтому, пожалуйста, будьте терпеливы. Сейчас вы можете попробовать следующие советы:

Первый . Если вы хотите добавить дополнительные файлы в новый проект с помощью nuget, формат Packages.config будет читать содержимое и скопируйте его файлы в новый проект, а PackageReference скопирует файлы из папки ContentFiles . Поэтому вы должны добавить эти файлы в xxxx.nuspec, чтобы упаковать эти файлы в папку ContentFiles .

<package >
  <metadata>
     .....
 <contentFiles>
  <files include="xxxx\xxxx" buildAction="content" copyToOutput="true" flatten="true" />
  </contentFiles>
</metadata>
<files>
<file src="xxxx\xxxx" target="ContentFiles\any\any" />
<file src="xxxx\xxxx" target="Content" />
</files>
</package>

Second , PackageReferencce не поддерживает install.ps1 или uninstall.ps1. И если вы создаете несколько пакетов nuget, пожалуйста, не используйте их.

Поэтому, когда вы создаете пакеты nuget, вы должны это замечать и избегать этих пунктов.

2) Если вы устанавливаете некоторые пакеты nuget из галереи nuget , вы можете проверить зависимости nuget в пользовательском интерфейсе управления nuget . См.

enter image description here

В основном, если эти пакеты nuget поддерживают .NetStandard одновременно, это означает, что вы можете установить его, используя формат PackageReference или Packages.config с любыми ошибками.

Надеюсь, это поможет вам.

...