【问题标题】:Nuget package installed but references not resolved已安装 Nuget 包但未解析引用
【发布时间】:2021-12-29 01:02:45
【问题描述】:

我有一个多项目解决方案,其中多个项目中安装了 Prism Nuget 包。然后,我尝试使用 Nuget 包管理器 UI 将 Prism Mef 扩展包添加到其中一个项目(我已经将它添加到其他项目之一)。

我第一次尝试添加包时,它未能安装其中一个依赖项,没有具体的错误原因,只是“失败”。于是,我再次安装了它,一切似乎都很好,没有报错,但有一些参考没有解决。

所以,我卸载了软件包和所有依赖项,然后重新安装了它。再次看起来一切都很好,但更多的引用没有解决。

我多次尝试卸载和安装软件包,但现在每次都得到相同的结果。

我已经多次遇到这个问题,我知道它不是特定于 Prism 包的,因为我遇到过很多不同的包。

我认为这只是 Nuget 的一个主要错误,但我希望有人知道修复它的简单方法。我认为我通常在使用 Nuget 控制台时会取得更好的成功,但我发现使用起来更加努力。

我在网上做了一些搜索,并没有真正找到问题原因的良好解释或解决方法。

工作中的某个人完全拒绝与 Nuget 有任何关系,因为他有很多这样的问题,但我决心让它发挥作用!

【问题讨论】:

    标签: visual-studio-2013 nuget nuget-package


    【解决方案1】:

    我刚刚关闭 Visual Studio 并重新打开它,引用已解决...!

    【讨论】:

    • Visual Studio 及其缓存问题非常烦人
    • 花了几个小时解决这个问题...现在是 2019 年,但看起来旧而丑陋的微软解决方案指南有效:当某些事情无法按预期工作时,只需重做、启动、安装它就会工作.啊
    • 我在将一个简单的 nuget 包安装到项目时遇到了类似的问题。对我来说,关闭和重新打开似乎没有帮助,所以最后我使用“添加引用”-“浏览”手动找到我项目中“packages”文件夹下的包DLL,并添加引用给它。之后它工作正常!
    【解决方案2】:

    在包管理器控制台中运行以下命令:

    Update-Package -reinstall
    

    这将重新安装该项目中的每个 nuget 包,这将解决所有缺失的引用。

    如果您知道自己缺少特定的参考资料:

    Update-Package -reinstall <Package-Name>
    

    【讨论】:

    【解决方案3】:

    我最近在 Visual Studio 2012 上遇到了这个错误,我的解决方案是从 nuget 缓存中删除 .nupkg 文件。可以从 nuget 设置 > 常规 > 浏览中找到 Nuget 缓存位置。

    注意:我没有清除缓存,我只是从缓存目录中删除了一个特定文件并重新安装了nuget包。

    【讨论】:

      【解决方案4】:

      您可能需要检查包的 .NET 版本与您的项目。

      我有一个实例,我的项目是 .NET 4.6.1,而我尝试安装的包使用的是 4.6.2 版本。将我的项目更新到相同的 .NET 版本后,参考出现了。

      【讨论】:

      • 在这种情况下,您应该会在“输出”窗口中看到错误
      【解决方案5】:

      您需要遵循此程序。

      1.更新包

      2.更新包-重新安装

      3.重启visual studio。

      【讨论】:

      • 重新安装对我来说是关键。升级我的 .net 框架版本后,我忘记更新我的包引用
      • 步骤 1 从字面上更新所有包到最新版本。这在我的项目中造成了大量的参考错误。只需使用Update-package -reinstall 安装相同的版本。 reference
      【解决方案6】:

      从 .config 文件中删除所有 &lt;assemblyBinding&gt; 引用,然后从 Nuget 包管理器运行此命令:

      Get-Project -All | Add-BindingRedirect
      

      【讨论】:

      • 对我来说,关闭 VS,从我的 .config 文件中删除 s,然后重新打开解决了问题(我将按照您的说明进行操作,但已经关闭了 VS,并没有不需要在重新打开时运行 Get-Project...)。奇怪的是,nuget 包管理器没有列出这些包,但它们现在出现在参考文献中!我不确定它是如何工作的 >_> VS 有时是如此神秘......
      【解决方案7】:

      对我来说,重建项目解决了这个问题。 右键单击项目 -> 重建。

      【讨论】:

        【解决方案8】:

        这就是我修复它的方法。

        我正在处理一个遗留的 .NET 框架项目(使用 &lt;Reference Include... 而不是 PackageReference)。 .dlls 被一个未被解析的相对路径引用。

        已通过更改为绝对路径、构建然后更改回原始相对路径来修复。

        例如:

            <Reference Include="My.Package">
              <HintPath>..\..\packages\My.Package.dll</HintPath>
            </Reference>
        

        改为:

            <Reference Include="My.Package">
              <HintPath>C:\Users\will\Documents\MySolution\packages\My.Package.dll</HintPath>
            </Reference>
        

        然后构建并更改回相对路径,构建仍然有效。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-19
          • 2020-12-02
          相关资源
          最近更新 更多