[英]Visual Studio insists I add a reference to an old version of an already-installed NuGet package
[英]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 包。 我想出了这个问题,我正在为其他 NuGet 新手发布这个。 在“NuGet 包资源管理器”中:
安装后,我的 NuGet 包现在显示在项目引用中。 这里有没有其他人有任何其他提示来优化这个过程?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.