在nuget init.ps1中,如何检测是作为安装还是作为控制台初始化运行

时间:2015-08-20 04:24:05

标签: powershell nuget

所以init.ps1 https://docs.nuget.org/create/creating-and-publishing-a-package#automatically-running-powershell-scripts-during-package-installation-and-removal在两种情况下运行。第一次安装软件包时以及在打开解决方案时打开nuget powershell控制台时。

  

Initisps1第一次在解决方案中安装软件包时运行....每次打开解决方案时脚本也会运行

所以在Init.ps1中如何确定它在哪个上下文中运行?

2 个答案:

答案 0 :(得分:1)

没有内置方式 - 每次初始化程序包管理器控制台时都会调用Init.ps1,因此故意没有上下文参数。正如Yishai Galatzer所说的那样on GitHub

  

这不是init.ps1的意图,我们不会启用它。 NuGet不是Visual Studio的自动化入口点,请不要这样使用它。

我确实觉得这有点不幸,因为2015年对Install.ps1Uninstall.ps1的支持是removed in NuGet 3,这意味着我们在安装后无法再运行自定义代码,即使像显示HTML自述文件。这种推理是有道理的,但如果在Visual Studio中有特定的包装安装,那将会很好。

答案 1 :(得分:0)

这是一个古老的问题但也许对某人有所帮助。要在程序包安装期间运行脚本而不是控制台初始化,请将代码放在 install.ps1 文件中。