我有几个C#代码库,我最近转换为目标.NET Standard 1.4,用于Xamarin Forms项目以及许多旧版.NET Framework 4.6.1项目。
我最初使用Package Reference in Project Files样式将Nuget包添加到.NET Standard类库中。
在了解this bug where transitive package references from .NET Standard projects are not resolved in legacy .NET Framework projects之后,我尝试了将<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
添加到旧项目的csproj中的解决方法。遗留项目仍然没有解决传递性引用 - 也就是说,解决方法不起作用。
所以,我想恢复我的.NET Standard项目中的packages.config文件中引用Nuget包的旧样式。
Manage Nuget Packages
工具窗口重新安装Nuget包
PackageReference
放在csproj中,而不是放在packages.config文件中。有谁知道如何强制我的.NET Standard 1.4项目中的新Nuget包列在packages.config
而不是包参考中?
答案 0 :(得分:4)
除了从项目文件中删除PackageReferences之外,我还必须从$ProjectDir\obj
目录中删除以下文件:
答案 1 :(得分:1)
关闭迁移的项目。
从备份中复制项目文件和packages.config(通常是 \ MigrationBackup \\)到 项目文件夹。删除obj文件夹(如果存在) 项目根目录。
打开项目。
使用“工具”>“ NuGet软件包”打开软件包管理器控制台。 管理器>程序包管理器控制台菜单命令。
在控制台中运行以下命令:
update-package -reinstall
答案 2 :(得分:1)
答案 3 :(得分:0)
如果您还不需要删除此属性:<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
然后删除项目中的任何PackageReferences。然后,当您添加nuget包引用时,它们应该进入package.config文件。