我想将许多PowerShell脚本发布为构建系统上使用的Nuget包。
我想使用PowerShellGet为我和版本管理安装工作。
我不希望这些脚本成为任何Visual Studio解决方案的一部分,而是作为独立脚本。
在任何系统上,配置的Nuget提供程序用户执行:
Install-Module MyModule
从那一刻起,该用户的该模块的所有导出永久可用。 用户也可以再次调用该命令,以更新这些脚本的版本。
您可以在此处找到目前的套餐状态:GitHub
我已将Nuget提供程序添加并配置到我们的本地Nuget服务器
要执行此操作,请致电Get-PackageProvider -Name NuGet -ForceBootstrap
和Set-PSRepository -Name My_Nuget_Repo -SourceLocation http://my-nuget/api -InstallationPolicy Trusted
Import-Module
我可以通过Install-Module
cmdlet安装该软件包,稍后我会在Get-InstalledModule
列表中看到它。
但是,没有可用的功能。
此外,无论如何,Install-Module
都没有调用我的包中的任何脚本:
ScriptsToProcess
MyModule.psd1
Install.ps1
文件夹tools
Init.ps1
文件夹tools
Import-Module
(从Visual Studios Install-Package MyModule
安装时,相同的包正常工作,调用脚本,导入PowerShell模块。)
由于PowerShellGet
基于OneGet
,因此问题似乎位于Install-Package
cmdlet(在Install-Module
cmdlet中调用)。
当我从Visual Studio Install-Package MyModule
执行Install.ps1
并调用Init.ps1
时。但纯PowerShell的相同命令什么都不做。
答案 0 :(得分:19)
经过长时间的逆向工程后,我找到了根本原因
必须将神奇标记PSModule
添加到nuspec文件中的<Tags>
。
您不应该手动创建nuspec文件并手动打包nuget包。请改用Publish-Module
cmdlet。
我已将powershellget-module GitHub更新为:
检查出来。