【问题标题】:Net Standard - Nuget package publish package as "add" keyword in command lineNet Standard - Nuget 包将包发布为命令行中的“添加”关键字
【发布时间】:2019-05-02 00:55:45
【问题描述】:

我创建了一个新的 Net Standard 库,我想将包发布到本地 nuget 存储库。

为了实现它,我有两种方法:使用命令行,或者使用 Visual Studio 提供的发布选项。

使用命令行我使用命令行中的“add”关键字(因为它是一个非 http 包源),它工作正常,它使用它的 nuget.sha512 文件创建 nuget 包。

使用 Visual Studio 提供的发布选项,我无法复制之前的行为,因为它复制了命令行中的“push”关键字。

在同一个本地存储库中,我不能保存两个不同的包,一个带有 .nupkg.sha512 文件,另一个没有它,因为 nuget 包管理器只会找到这些没有“.nupkg.sha512”扩展名的包。

有什么方法可以告诉 Visual Studio 使用发布选项复制“添加”行为?

提前致谢。

【问题讨论】:

  • 不幸的是我还没有解决这个问题。我跑回去使用 nuget CLI 以便将包添加到本地提要。感谢您的支持。

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


【解决方案1】:

有什么方法可以告诉 Visual Studio 使用发布选项复制“添加”行为?

恐怕没有直接的方法可以告诉 Visual Studio 使用发布选项复制“添加”行为,因为添加命令仅受 NuGet CLI 支持。我们不能直接将它与发布选项一起使用。

作为解决方法,您可以在发布项目时添加自定义目标以调用 NuGet CLI。

要完成此操作,请编辑您的项目。然后在项目的最后,就在结束标记 </project> 之前,放置以下脚本:

  <Target Name="AddPackage" AfterTargets="GenerateNuspec">
    <Message Text="Add Package to the local nuget repository!"></Message>
    <Exec Command="<PathOfNuGetCli>\nuget.exe add &quot;<PathOfPackage>\xxx.1.0.0.nupkg&quot; -source &quot;<localNuGetRepository>&quot;"></Exec>
  </Target>

注意:由于这个自定义目标依赖于目标GenerateNuspec,所以会执行两次,不过不用担心,第一次执行时不会有任何实际操作(包尚未发布到指定文件夹)。

希望这会有所帮助。

【讨论】:

  • 这非常好,但我应该记住这种解决方法,适用于我们从事的任何类型的项目,这可能是一个问题。还是谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多