检查NuGet软件包是否与软件包参考样式兼容

时间:2020-01-21 16:01:16

标签: visual-studio nuget nuget-package

我想更新我的解决方案以使用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-compatibility-issues

1 个答案:

答案 0 :(得分:0)

有没有一种方法可以轻松解决我的解决方案中的哪些软件包 出于兼容性问题,还是我必须手动执行此操作?

实际上,当您将所有已安装的nuget软件包从packages.config迁移到PackageReference时,在此过程中不会出现任何错误。您提到的兼容性问题仅适用于将在以后以新形式PackageReference形式安装在项目中的nuget软件包。

因此,如果您只关心这些已安装的nuget程序包,我认为您不必担心。如果要在迁移后安装新的nuget程序包,我想您应该注意以下几点:

1)如果您要安装自己创建的 .Net Framework nuget程序包,则需要注意程序包兼容性问题,这些是 Microsoft 提供的已知问题。他们正在寻找这种兼容性的解决方案,因此请耐心等待。目前,您可以尝试以下技巧:

首先,如果您想通过nuget将一些额外的文件添加到新项目中,Packages.config格式将读取 Content 文件夹并将其文件复制到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>

第二PackageReferencce不支持install.ps1uninstall.ps1。而且,如果您创建一些nuget程序包,请不要使用它们。

因此,在创建nuget程序包时,应注意这些内容并避免这些要点。

2)如果您从nuget gallery安装了一些nuget程序包,则可以在 manage nuget程序包UI 中检查nuget依赖项。请参见:< / p>

enter image description here

基本上,如果这些nuget软件包同时支持.NetStandard,则意味着您可以使用PackageReferencePackages.config格式安装它,而不会出现任何错误。

希望它可以为您提供帮助。