visual-studio-2017 - Net Standard - Nuget 包将包发布为命令行中的“添加”关键字
问题描述
我创建了一个新的网络标准库,我想将包发布到本地 nuget 存储库。
为了实现它,我有两种方法:使用命令行,或者使用 Visual Studio 提供的发布选项。
使用命令行,我使用命令行中的“add”关键字(由于它是非 http 包源),它工作正常,它使用其 nuget.sha512 文件创建 nuget 包。
使用 Visual Studio 提供的发布选项,我无法复制以前的行为,因为它复制了命令行中的“push”关键字。
在同一个本地存储库中,我不能保存两个不同的包,一个带有 .nupkg.sha512 文件,另一个没有它,因为 nuget 包管理器只会找到这些没有“.nupkg.sha512”扩展名的包。
有什么方法可以告诉 Visual Studio 使用发布选项复制“添加”行为?
提前致谢。
解决方案
有什么方法可以告诉 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 "<PathOfPackage>\xxx.1.0.0.nupkg" -source "<localNuGetRepository>""></Exec>
</Target>
注意:由于这个自定义目标依赖于目标GenerateNuspec
,所以会执行两次,不过不用担心,第一次执行时不会有任何实际操作(该包尚未发布到指定文件夹)。
希望这可以帮助。
推荐阅读
- python - 如何在 django 中添加 css、js、图像?
- xaml - Xamarin - 带有构造函数的 ViewModel,其参数作为 Xaml 中的绑定上下文
- php - 如何替换所有匹配的 $character
- c# - 一些字符替换为问号符号
- flutter - 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“*** -[NSURL initFileURLWithPath:]: nil string parameter”-_-
- java - Spring web应用+hibernate问题:通过字段表达的不满足依赖
- javascript - 拆分登陆页面被移动到左侧
- java - 杰克逊的 InvalidDefinitionException
- swift - 即使我使用 .randomElement() 方法 (Swift) 2019/2020,每日提醒(通知)也不会发送随机消息
- uwp - Line in style 的 TargetType 在 UWP 中不起作用