我创建了一个NuGet包,并且能够在另一个.NET解决方案中成功安装它。但是我无法从其他.NET解决方案中添加对NuGet包的引用。例如,假设NuGet包中有一个类名为MyCorp.SecurityApi的类。我目前无法在我的其他.NET解决方案中为该命名空间添加using指令。例如,以下using指令返回“无法找到类型或名称空间'MyCorp'的编译错误”:
using MyCorp.SecurityApi;
知道问题可能是什么或如何调试?
答案 0 :(得分:2)
问题可能是由于:
我建议您检查上述原因,希望对您有帮助
答案 1 :(得分:1)
确保在解决方案资源管理器中使用“引用”仔细检查“命名空间”名称,无论它是否存在。如果没有,您应该考虑重新安装。在Nuget Package Manager控制台中使用以下命令:
Update-Package -Id <package_name> –reinstall
或者这仅限于重新安装到特定项目:
Update-Package <package_name> -ProjectName MyProject -reinstall
如果您仍然无法做到这一点,请尝试手动将相关的.dll添加到项目中,看看它是否正常工作。如果它确实比最可能的问题在于该nuget包的配置,在这种情况下,我建议你仔细检查这些docs并缩小问题范围。
答案 2 :(得分:1)
我会先尝试做一个
Update-Package -Id <package_name> –reinstall
如Mikaal的回答所述。
但是在某些情况下,这也可能会失败,因为packages
文件夹已损坏。根据平台的不同,它位于不同的路径中:
在 .NET 中,可以在项目目录中找到该文件夹(通常在解决方案文件*.sln
所在的文件夹中)。
在 .NET Core 中,您可以通过将以下行粘贴到文件浏览器的路径中找到它(通过 WIN + E < / kbd>,然后将上面的行粘贴到路径文本框中):
%appdata%\ .. \ .. \。nuget \ packages \
在那里,尝试找到该程序包,并删除文件夹及其内容。如果您转到Visual Studio中的依赖项,也可以找到路径,单击“程序包”,右键单击该程序包并复制属性窗口中的路径。请注意,您可能需要在删除Visual Studio之前将其关闭,因为文件可能已锁定。
删除它之后,请确保在Visual Studio中不再引用它(依赖项)。然后,打开“程序包管理器”并添加程序包(即右键单击项目,选择“管理NUGET程序包...”,然后切换到“浏览”选项卡,选择程序包并单击“安装”。)
答案 3 :(得分:0)
这是我创建的第一个NuGet包。我想出了这个问题,我正在为其他NuGet新手发布这个问题。在“NuGet Package Explorer”中:
我的NuGet包现在在安装后显示在项目参考中。这里有没有其他人有任何额外的技巧来优化这个过程?