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

Sim*_*mon 6 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 控制台作为打开解决方案的一部分时。

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

那么在 Init.ps1 里面你如何确定它在哪个上下文中运行?

Eri*_*sen 5

每次初始化包管理器控制台时都没有内置方法\xe2\x80\x94Init.ps1被调用,因此故意没有上下文参数。正如 Yishai Galatzer在 GitHub 上明确指出的那样:

\n\n
\n

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

\n
\n\n

我确实觉得这有点不幸,因为对NuGet 3 的支持早在 2015 年就被删除了Install.ps1Uninstall.ps1这意味着我们在安装后无法再运行自定义代码,甚至是像显示 HTML 自述文件这样简单的东西。推理是有道理的,但如果有专门在 Visual Studio 内安装包的替代方案,那就太好了。

\n


cez*_*tek -1

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

  • [`Install.ps1` 在 NuGet v3 中已弃用](http://blog.nuget.org/20151008/NuGet-3-What-and-Why.html#powershell-install-and-uninstall-scripts) 不幸的是,不再是等价物。看我的回答。 (4认同)