我想要的
我希望将PowerShell脚本的数量作为Nuget包发布到构建系统中。
我想使用PowerShellGet为我做安装工作和版本管理。
我不希望这些脚本成为任何Visual解决方案的一部分,而是作为独立的脚本。
使用情景
在任何系统上,配置的Nuget提供者用户都会执行:
Install-Module MyModule从那时起,该模块的所有导出都将永久用于该用户的。此外,用户还可以再次调用该命令,以更新这些脚本的更新版本。
我所做的
您可以在这里找到包的当前状态:GitHub
Get-PackageProvider -Name NuGet -ForceBootstrap和Set-PSRepository -Name My_Nuget_Repo -SourceLocation http://my-nuget/api -InstallationPolicy TrustedImport-Module在本地导入问题
我可以通过Install-Module cmdlet安装这个包,稍后我可以在Get-InstalledModule列表中看到它。
但是,没有可用的功能。
而且,无论如何,Install-Module都不会从我的包中调用任何脚本:
ScriptsToProcess调用MyModule.psd1Install.ps1文件夹调用toolsInit.ps1文件夹调用toolsImport-Module无法导入模块(从Visual Install-Package MyModule安装相同的包时,脚本被调用,PowerShell模块被导入)。
调查
由于PowerShellGet是基于OneGet的,所以问题似乎出现在Install-Package cmdlet中(在Install-Module cmdlet中称为Install-Package cmdlet)。
当我从Visual执行Install-Package MyModule时,调用Install.ps1和Init.ps1。但是来自纯PowerShell的相同命令什么也不做。
发布于 2015-11-03 02:25:04
经过长时间的逆向工程,我找到了根本原因
技术原因
必须在nuspec文件中将神奇标记PSModule添加到<Tags>中。
真实原因
,您不应该创建nuspec文件并手动打包nuget包在所有上。使用Publish-Module cmdlet代替。
如何把它做好
我用以下内容更新了powershellget模块GitHub:
看看这个。
https://stackoverflow.com/questions/33433824
复制相似问题