【发布时间】:2016-08-01 19:55:51
【问题描述】:
当使用 Nuget 更新已安装的包时,它调用“uninstall.ps1”,然后调用“install.ps1”。对于我正在处理的自定义项目,我需要在“uninstall.ps1”中知道调用卸载的原因是什么。是因为软件包正在更新或删除吗?基于我想要处理不同逻辑的原因。
似乎有可能知道差异,因为更新的控制台输出显示:
解决了安装包“[Id].[Version]”执行脚本文件'uninstall.ps1'...
的操作
但是对于卸载它说:
解决了卸载包'[Id].[Version]'执行脚本文件'uninstall.ps1'...
请注意,调用的脚本是相同的,但 Nuget 操作不同。 Nuget 操作(安装与卸载)是否可以从某个变量、属性甚至临时文件中检索?无论使用 VS2012、VS2013 还是 VS2015,此行为似乎都是相同的。
【问题讨论】:
-
没有 update.ps1 脚本。因此,为了更新软件包,它确保通过运行uninstall.ps1 来消除old 安装脚本的任何副作用。然后运行 install.ps1。否则,当您通过先删除包然后再添加它进行更新时会发生同样的事情。