2

在项目中恢复包时,Nuget 不执行脚本。

这是场景:我有一个安装了自定义 NuGet 包的项目。此项目已为解决方案启用 NuGet 包还原。这一切都完美无缺,我通过将项目从 TFS 放到一个空文件夹中进行了多次测试。

我已将 init.ps1 和 install.ps1 添加到 nuGet 包中,并且仍然可以正确获取和安装该包,但除非手动安装该包,否则脚本不会执行。

确切地说,如果我是第一次从 TFS 获取项目,init.ps1 和 install.ps1 都不会执行。

但是,如果我关闭解决方案并重新打开它,init.ps1 会执行(如预期的那样),但是当然 install.ps1 仍然没有执行,因为包已经恢复/安装。

当手动安装/卸载软件包时,这两个脚本都会正常执行(即,如果软件包“恢复”,它不会运行)。

我的互联网搜索没有发现任何关于这种行为的参考。我是否遗漏了一些明显的东西,或者在恢复包时这是否正常?

4

1 回答 1

1

使用包还原功能,以便并非所有包都签入源代码管理。因此,它唯一要做的就是将 NuGet 包下拉到您的./solution/packages文件夹中,以便可以在构建时正确解析程序集路径和引用。NuGet 不会在还原过程中重新安装,这意味着它不会在还原中执行任何 xml 文件转换或运行 PowerShell 安装/卸载脚本。

于 2014-03-13T20:46:39.553 回答