繁体   English   中英

无法添加对已安装 NuGet 包的引用?

[英]Unable to add reference to installed NuGet package?

我创建了一个 NuGet 包,并且能够在另一个 .NET 解决方案中成功安装它。 但我无法从其他 .NET 解决方案中添加对 NuGet 包的引用。

例如,NuGet 包有一个类,其命名空间类似于MyCorp.SecurityApi 我目前无法在其他 .NET 解决方案中为该命名空间添加 using 指令。 例如, using MyCorp.SecurityApi指令返回此编译错误:

找不到类型或命名空间“MyCorp”

知道问题可能是什么或如何调试吗?

确保在解决方案资源管理器中使用“参考”仔细检查“命名空间”名称,无论它是否存在。 如果没有,您应该考虑重新安装。 在 Nuget 包管理器控制台中使用以下命令:

Update-Package -Id <package_name> –reinstall

或者这将重新安装限制为仅特定项目:

Update-Package <package_name> -ProjectName MyProject -reinstall

如果您仍然无法做到这一点,请尝试将相关的 .dll 手动添加到您的项目中,看看它是否可以正常工作。 如果确实如此,则问题很可能出在该 nuget 包的配置上,在这种情况下,我建议您阅读这些文档并缩小问题的范围。

我会首先尝试做一个

Update-Package -Id <package_name> –reinstall

如 Mikaal 的回答中所述。

但在某些情况下,这也可能会失败,因为packages文件夹已损坏。 根据平台的不同,它位于不同的路径中:

  • .NET 中,可以在项目目录中找到此文件夹(通常,在解决方案文件*.sln所在的文件夹中)。

  • .NET Core 中,您可以通过将以下行粘贴到文件资源管理器的路径中来找到它(通过WIN + E打开它,然后将上面的行粘贴到路径文本框中):

    %appdata%\\..\\..\\.nuget\\packages\\

在那里,尝试找到包并删除文件夹及其内容。 如果转到 Visual Studio 中的依赖项,包,右键单击包并从属性窗口复制路径,也可以找到路径。 请注意,您可能需要在删除之前关闭 Visual Studio,因为文件可能已被锁定。

重要提示:验证它在 Visual Studio(依赖项)中不再被引用。 如果是,请删除所有依赖项。

最后,打开包管理器并添加包(即右键单击项目,选择“管理 NUGET 包...”,切换到浏览选项卡,选择包并单击安装)。

问题可能是由于:

  • nuget 包 (MyCorp.SecurityApi) 和尝试使用它的应用程序的目标框架不兼容
  • 不兼容的平台架构(即如果 MyCorp.SecurityApi 仅是 x64,则不能用于构建 x86 应用程序)
  • 某些类的可见性,即如果类是内部类,则它不能仅用于 MyCorp.SecurityApi 程序集,也不能用于其他程序集 - 您的应用程序)。

建议您检查上述原因,希望对您有所帮助

这是我创建的第一个 NuGet 包。 我想出了这个问题,我正在为其他 NuGet 新手发布这个。 在“NuGet 包资源管理器”中:

  1. 内容 > 添加 > Lib 文件夹
  2. 右键单击“lib”文件夹并选择“添加现有文件...”
  3. 在选择文件对话框中,从源解决方案的 bin\\obj 中选择所有文件

安装后,我的 NuGet 包现在显示在项目引用中。 这里有没有其他人有任何其他提示来优化这个过程?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM