网络标准-Nuget软件包在命令行中将软件包作为“添加”关键字发布

时间:2018-11-29 21:26:56

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

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

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

使用命令行,我在命令行中使用了“ add”关键字(由于它是非HTTP包源),并且运行良好,它使用nuget.sha512文件创建了nuget包。

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

在同一本地存储库中,我无法保存两个不同的程序包,一个程序包具有.nupkg.sha512文件,而另一个程序包没有.nupkg.sha512文件,因为nuget程序包管理器将仅找到这些扩展名为“ .nupkg.sha512”的程序包。

有什么办法可以告诉Visual Studio使用publish选项复制“添加”行为吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

  

有什么办法可以告诉Visual Studio使用publish选项复制“添加”行为吗?

恐怕没有一种直接的方法可以告诉Visual Studio使用publish选项复制“添加”行为,因为 NuGet CLI 仅支持add命令。我们无法将其与publish选项一起直接使用。

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

要完成此操作,请编辑您的项目。然后在项目的最后,在结束标签Print("Location locale" + " " + Locale.getDefault().language) 之前,放在脚本下面:

</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> ,因此它将执行两次,但不必担心,第一次执行时,它将没有任何实际操作(该软件包尚未发布到指定文件夹中。

希望这会有所帮助。