我想更新我的解决方案以使用NuGet包参考样式[1](而不是使用packages.config)。存在一些兼容性问题[2],可能会影响此过渡。
[1] https://docs.microsoft.com/en-gb/nuget/consume-packages/migrate-packages-config-to-package-reference
答案 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.ps1
或uninstall.ps1
。而且,如果您创建一些nuget程序包,请不要使用它们。
因此,在创建nuget程序包时,应注意这些内容并避免这些要点。
2)如果您从nuget gallery安装了一些nuget程序包,则可以在 manage nuget程序包UI 中检查nuget依赖项。请参见:< / p>
基本上,如果这些nuget软件包同时支持.NetStandard
,则意味着您可以使用PackageReference
或Packages.config
格式安装它,而不会出现任何错误。
希望它可以为您提供帮助。