我想将一些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
使用该模块创建并发布了Nuget软件包
我可以通过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(在cmdlet内部被称为Install-Module
)中。
当我Install-Package MyModule
从Visual Studio执行Install.ps1
并被Init.ps1
调用时。但是,来自纯PowerShell的同一命令什么也没做。
经过长时间的反向工程,我找到了根本原因
魔法标签PSModule
必须添加到<Tags>
nuspec文件中。
您根本不应该手动创建nuspec文件并打包nuget软件包。请改用Publish-Module
cmdlet。
我已使用以下命令更新了powershellget-module GitHub:
一探究竟。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句