Nuget 推送(包更新)- 在包管理器中显示为新安装

Nuget Push (update to package) - showing as new install in package manager

我有一个非常简单的 post 构建脚本,它将我项目中的所有 dll 打包到自定义 nuget 服务器。这工作正常,但是,当从任何解决方案打开包管理器时,我将 nuget 包视为新安装,而不是预期的 'update' 选项。

我使用的 nuspec 文件是:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>Objects.ForConsumers</id>
    <version>1.2015.1111.11</version>
    <title>Objects.ForConsumers</title>
    <authors>My Firm</authors>
    <owners>My Firm</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Objects For Consumers</description>
    <releaseNotes></releaseNotes>
    <copyright>Copyright 2015</copyright>
    <tags>Objects For Consumers</tags>
  </metadata>
  <files>
    <file src="*.dll" target="lib" />
  </files>
</package>

版本号随着每次构建而递增。

命令本质上是

nuget 包 Objects.ForConsumers.nuspec

nuget push Objects.ForConsumers.1.2015.1111.12.nupkg -s http://nuget.myserver.com myApiKey

谁能告诉我这是怎么回事?

您已经 select 编辑了左侧 panel/tab 上的 "online" 选项。如果您 select "Updates" 并搜索您的包裹,您应该会看到更新按钮。

我终于偶然发现了解决这个问题的办法。我的 nuspec 文件包含以下内容:

  <files>
    <file src="*.dll" target="lib" />
  </files>

我更新如下:

  <files>
    <file src="*.dll" target="lib" />
    <file src="*.dll" target="lib/net40" />
  </files>

(添加到我的 .net 版本的特定文件夹中)现在一切正常!

希望这对以后的其他人有所帮助。