【问题标题】:Nuget packages not found in VS2017 with configuration in file name在 VS2017 中找不到带有文件名配置的 Nuget 包
【发布时间】:2017-08-12 00:16:23
【问题描述】:

我的团队有一个同步到 NAS 的本地文件夹形式的内部 Nuget 包源。这些文件的文件名中包含配置(发布/调试)和平台(始终为“AnyCPU”),例如:

MyPackage.1.0.6017.25342.Release.AnyCPU.nupkg

这在 VS 2015 中运行良好,但在 VS 2017 中,包管理器找不到这些包,除非我们删除“Release.AnyCPU”部分。

有人知道为什么吗?可以解决吗?

【问题讨论】:

  • 你在哪里找到包管理器的包?它是直接来自本地文件夹还是来自 NAS?我已经在 Visual Studio 2017 的本地文件夹中测试了这个包,效果很好。如果此限制仅存在于 NAS 上而不存在于本地文件夹上,则此问题可能与 NAS 相关。
  • 它在本地文件夹中,例如D:\Cloudstation\NuGet。所有文件都在 VS 2015 中同步并正常工作。如果我们从文件名中删除“Release.AnyCPU”,它们会在 VS 2017 中弹出。
  • 您的 Visual Studio 2017 版本是什么?这个包在我的 Visual Studio 2017 Enterprise 15.0.0+26228.9 上运行良好,请先更新你的 Visual Studio。将包设置为普通本地文件夹不同步,检查是否正常。
  • 感谢您对此进行调查!我的 VS 2107 版本是 15.0.0+26228.9,专业版。我刚刚做了这个测试: 1. 创建了一个新文件夹 D:\NugetTest\ 并将其添加为包源。 2. 将同一软件包 Easyfy.Commerce.Model.1.0.x.x.Release.AnyCPU.nupkg 的几个版本复制到文件夹中。 3. 更新包管理器中的包列表,该包的版本不可见。 4. 从三个包文件中删除“Released.AnyCPU”,使它们看起来像这样 => Easyfy.Commerce.Model.1.0.x.x.nupkg。 5.更新了包列表,这三个版本现已可用。

标签: visual-studio nuget visual-studio-2017


【解决方案1】:

nuget包的名称由包ID和我们打包包时的版本组成。例如,Easyfy.Commerce.Model.1.0.x.x.nupkg。如果在名称中指定配置信息,则包名称更改为 Easyfy.Commerce.Model.1.0.x.x.Release.AnyCPU.nupkg,但包 ID 没有更改,直到 Easyfy.Commerce.Model。在这种情况下,包名称与包 ID 和版本不匹配,则包的版本无法在包管理器中列出。

作为测试,你可以用NuGet Package Explorer打开一个包,然后修改包ID,你会得到如下提示:

要解决此问题,您只需通过 NuGet 包资源管理器将包 ID 更改为“Easyfy.Commerce.Model.Release.AnyCPU”,并将包名称更改为“Easyfy.Commerce.Model.Release.AnyCPU.1.0.6017.25342”即可。

此外,此问题出现在 Visual Studio 2015 上但在 Visual Studio 2017 中未出现的原因是 nuget 3.5 及更高版本中的更多限制。

希望对你有帮助。

【讨论】:

  • 感谢您的澄清!
猜你喜欢
  • 2016-12-04
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
  • 2015-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多