首页 > 解决方案 > Net Standard - Nuget 包将包发布为命令行中的“添加”关键字

问题描述

我创建了一个新的网络标准库,我想将包发布到本地 nuget 存储库。

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

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

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

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

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

提前致谢。

标签: visual-studio-2017nugetnuget-package

解决方案


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

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

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

为此,请编辑您的项目。然后在项目的最后,就在 end-tag 之前</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,所以会执行两次,不过不用担心,第一次执行时不会有任何实际操作(该包尚未发布到指定文件夹)。

希望这可以帮助。


推荐阅读