未调用NuGet-install.ps1
我正在尝试创建我的第一个NuGet包。我不知道为什么我的install.ps1脚本没有被调用。这是目录结构未调用NuGet-install.ps1,nuget,nuget-package,Nuget,Nuget Package,我正在尝试创建我的第一个NuGet包。我不知道为什么我的install.ps1脚本没有被调用。这是目录结构 --Package | - MyPackage.nuspec - tools | - Install.ps1 - some_xml_file 我使用这个命令行构建包 nuget.exe pack MyPackage.nuspec 当我从VS Package Manager控制台安装软件包时,不会调用Install.ps1 我想我可能在脚本中有一些错误,这就是原因,所以我把所
--Package
|
- MyPackage.nuspec
- tools
|
- Install.ps1
- some_xml_file
我使用这个命令行构建包
nuget.exe pack MyPackage.nuspec
当我从VS Package Manager控制台安装软件包时,不会调用Install.ps1
我想我可能在脚本中有一些错误,这就是原因,所以我把所有的东西都注释掉了
param($installPath, $toolsPath, $package, $project)
"ECHO"
但我没有看到ECHO出现在PackageManager控制台中。有什么问题吗?
Install.ps
仅在\lib
和/或\content
文件夹中有内容时才会调用,但不适用于“仅限工具”软件包。见:
要运行Install.ps1,软件包的content或lib文件夹中必须有文件。仅仅在tools文件夹中放一些东西并不会让这件事发生
改为使用Init.ps1
(但是,每次打开解决方案时都会执行此操作)。Install.ps1
(和Uninstall.ps1
)不再在v3中调用,但您可以使用Init.ps1
。见:
Powershell脚本支持已修改为不再执行安装
和卸载脚本,但仍会执行初始化脚本。一些
原因是无法确定是哪个软件包
当并非所有包都被直接引用时,需要运行脚本
通过一个项目
安装脚本的替代方案有时可以是包目标文件。此目标文件自动编织到项目文件(csproj,…)中,并通过生成调用 要允许Nuget找到此目标文件并将其编入,必须执行以下两项操作:
- 目标文件的名称必须是
.targets
- 它必须保存在包顶层的文件夹
build
binaries
下的包中,并在目标文件中使用此片段进行复制:
谢谢,我在帮助页面上没有注意到。我将Install.ps1改为Init.ps1,它可以正常工作。但我仍然看不到回声。虽然我看到“已成功安装packageName”,但在安装软件包后,请重新打开您的解决方案。但是,请确保PackageManager控制台已经可见。然后,您应该会看到Init.ps1
脚本的任何输出。是的,我在VS开始时看到了输出。但不在安装包上。这正常吗?是的,我想是的。至少我在尝试类似的东西时也得到了同样的结果。感觉像一个bug,但是…也许你也知道为什么不调用Uninstall.ps1?我在Powershell ISE下验证了它是否有效(删除安装期间创建的文件夹)。安装和卸载脚本的替代方案是什么?