Visual studio 2017 Can';t安装本地NuGet包 细节 使用Visual Studio 2017 使用NuGet软件包资源管理器构建NuGet软件包 已将.nupkg文件放置在磁盘上的本地文件夹中 已将文件夹添加到Visual Studio中的包源 我尝试使用VisualStudioGUI(工具>NuGet软件包管理器>管理解决方案的NuGet软件包…)安装该软件包 问题

Visual studio 2017 Can';t安装本地NuGet包 细节 使用Visual Studio 2017 使用NuGet软件包资源管理器构建NuGet软件包 已将.nupkg文件放置在磁盘上的本地文件夹中 已将文件夹添加到Visual Studio中的包源 我尝试使用VisualStudioGUI(工具>NuGet软件包管理器>管理解决方案的NuGet软件包…)安装该软件包 问题,visual-studio-2017,nuget,nuget-package,Visual Studio 2017,Nuget,Nuget Package,我的软件包显示在GUI的列表中,但当我单击“安装”时,会显示一条错误消息,表示在我放置.nupkg文件的文件夹中找不到该软件包: Package 'TDDeviceIntegration 1.0.0' is not found in the following primary source(s): 'C:\Users\j.smith\Documents\Visual Studio 2017\LocalNugetRepository\'. Please verify all your online

我的软件包显示在GUI的列表中,但当我单击“安装”时,会显示一条错误消息,表示在我放置.nupkg文件的文件夹中找不到该软件包:

Package 'TDDeviceIntegration 1.0.0' is not found in the following primary source(s): 'C:\Users\j.smith\Documents\Visual Studio 2017\LocalNugetRepository\'. Please verify all your online package sources are available (OR) package id, version are specified correctly.   
我试过的
  • 将我构建的NuGet包放在几个不同的本地文件夹位置,并将它们添加到包源中,结果都是一样的(它找不到我刚才放在那里的包)
  • 我已多次重新启动Visual Studio
  • 我重新启动了我的电脑
  • 我已从Visual Studio中清除NuGet缓存
问题: 如何诊断?我该如何解决这个问题?我只是想确保NuGet包在本地工作,然后再将其提供给团队的其他成员

提前谢谢

根据,当包的版本不是“标准化”的,即不是由4位数字组成时,您可能会遇到此错误。 你的有3位数,所以

(最后一位数字可能必须是0)

如何诊断?我该如何解决这个问题?我只是想确保NuGet包在本地工作,然后再将其提供给团队的其他成员

正如@orhtej2注释一样,您应该:

您是否将其重命名为TDDeviceIntegration.1.0.0.nupkg?(点代替 包名称和版本之间的空格)

另外,一些关于为什么dot是唯一允许的包名版本分隔符的信息

这是因为nuget包的名称空间遵循与.NET中的名称空间类似的模式,使用点符号而不是连字符。

您可以从以下文档中获取源代码:


希望这有帮助。

很有趣。我也试过了(在我的问题中应该提到这一点,现在我会提到),NuGet Package Explorer不断将其更改回1.0.0。我将手动进行更改,看看这是否有效。您似乎不是唯一遇到此问题并且必须手动进行更改的人。天哪!那真是一件令人沮丧的事。此外,我不确定需要手动执行哪些操作。我将文件更改为zip文件夹,将其解压缩,更改.nuspec文件中的版本号,更改文件夹名称中的版本号,重新压缩文件夹,将扩展名更改回nupkg,现在,当我在Visual Studio中打开“管理解决方案包”时,它只是说,发生了错误。嗯,在使用NuGet Package Explorer时,将版本号更改为1.0.0.1肯定会保持不变,当我重新启动Visual Studio并从同一本地repo中删除另一个NuGet软件包时,它会显示在解决方案GUI的管理软件包中,但当我单击“安装”时,仍然会出现相同的错误(在以下主要来源中找不到)(s) ):(如果将其重命名为
TDDeviceIntegration.1.0.0.nupkg
,是否有效?(程序包名称和版本之间用点代替空格).DING DING@orhtej2!更改.nupkg文件名中的空格使安装看起来成功了!非常感谢!您想写一个我可以接受的答案吗?@orhtej2,请您将您的评论转换为答案,这对阅读此线程和查找answ的其他社区成员有益呃。谢谢。@orhtej2,@Francesco B。目前,我能找到的最接近的文档是,“类似名称空间的名称:遵循类似于.NET中名称空间的模式,使用点符号而不是连字符。”令人遗憾的是,NuGet Package Explorer项目是一个创建带有空格的文件名的项目…:(感谢您的回答!我遇到了一个类似的问题,但不是空间问题,而是破折号问题,因此mypackage-1.0.0.nupkg。从远程NuGet存储库中提取时效果很好,但当尝试下载并在本地安装时,只有将破折号改为点时,它才会起作用,因此mypackage.1.0.0.nupkg