如何解决错误“必须使用PackageReference”?

Joe*_*Joe 39 c# winforms windows-runtime visual-studio-2017

添加WindowsRuntime到 WinForms 项目后,构建项目失败并显示错误“必须使用 PackageReference”。构建日志更精确:

C:[...]\Visual Studio 2017\Projects\Projectname\packages\Microsoft.Windows.SDK.Contracts.10.0.18362.2005\build\Microsoft.Windows.SDK.Contracts.targets(4,5): 错误:必须使用包参考

这是我所做的:

安装包 Microsoft.Windows.SDK.Contracts

参考:

  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5\System.Runtime.WindowsRuntime.dll,
  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Runtime.dll
  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Threading.Tasks.dll
  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.IO.dll
  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Runtime.InteropServices.WindowsRuntime.dll。

它可能与 .NET 版本有关吗?在项目的 packages.config 中有 4.6,而项目的目标是 4.5。

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Windows.SDK.Contracts" version="10.0.18362.2005" targetFramework="net45"/>
<package id="System.Runtime.WindowsRuntime" version="4.6.0" targetFramework="net45" />
<package id="System.Runtime.WindowsRuntime.UI.Xaml" version="4.6.0" targetFramework="net45" />
</packages>
Run Code Online (Sandbox Code Playgroud)

没有编译错误……只有这个奇怪的“PackageReference”错误。

ast*_*ght 96

VS2017/VS2019-> Solution Explorer->右击 References -> “将packages.config 迁移到PackageReference”

VS2019-> Solution Explorer->右击 packages.config-> “将packages.config 迁移到PackageReference”

  • 我在 VS2019 的“引用”上下文菜单中缺少迁移选项,但也可以在 packages.config 上下文菜单中找到它。 (3认同)
  • 我已经使用 NuGet 安装了新包 Microsoft.Web.WebView2,并且还安装了 Microsoft Edge Chromium。之后,我重建了应用程序,并且收到了“必须使用 PackageReference”错误!我已经完成了帕特里克提案,现在构建工作像以前一样。谢谢 (2认同)

小智 6

对我有用的解决方案是:

  1. 对相关项目运行 Clean
  2. 关闭 Visual Studio
  3. 导航到磁盘上的项目文件夹并删除obj文件夹
  4. 重新打开 Visual Studio 并构建