如果您使用的是 VS2015 Update 1 或更高版本,您可以转换您的项目以用于project.json
修复此问题。
简而言之:
- 运行
Uninstall-Package <package name> -Force -RemoveDependencies
所有包。packages.config
在执行此操作之前,您可能想在记事本中复制粘贴。
- 从项目中删除
packages.config
,保存项目,卸载
- 编辑项目文件并删除:
.props
顶部与 nuget 相关的任何引用文件
- 任何
<Reference>
引用包的元素
.targets
底部引用 nuget的文件 - 通常以:<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
- 如果您的软件包包含 Roslyn 分析器,请确保也将其删除。
- 保存文件并重新加载项目
添加project.json
:
{
"dependencies": {
},
"frameworks": {
".NETFramework,Version=v4.6.1": {}
},
"runtimes": {
"win": {}
}
}
最后再次添加你的包,在 VS 中手动dependencies
或使用Install-Package
或使用 nuget UI。
我还不得不Microsoft.Bcl.*
从我的项目中删除任何包,因为它们明确地寻找一个packages.config
文件。
编辑:这个(删除Microsoft.Bcl.*
包会给你一个编译时错误,即使项目会很好地构建,因为.targets
文件Microsoft.Bcl.Build
添加仍然会寻找packages.config
.
要抑制这种情况,请编辑您的项目文件并添加:
<SkipValidatePackageReferences>true</SkipValidatePackageReferences>
这需要转到第一个<PropertyGroup>
没有Condition
属性集的地方。如果没有,只需在顶部添加另一个,例如:
<PropertyGroup>
<SkipValidatePackageReferences>true</SkipValidatePackageReferences>
</PropertyGroup>