为PowerShellGet创建纯Powershell Nuget模块

安东

我想要的是

我想将一些PowerShell脚本作为Nuget包发布,以在构建系统上使用。

我想使用PowerShellGet为我做安装工作和版本管理。

我不希望这些脚本成为任何Visual Studio解决方案的一部分,而应作为独立脚本。

使用场景

在配置了Nuget提供程序的任何系统上,用户都可以执行:

Install-Module MyModule

从那时起,该用户对该模块的所有导出将永久可用用户也可以再次调用该命令以更新那些脚本的版本

我做了什么

您可以在此处找到软件包的当前状态:GitHub

  1. 我已将Nuget提供程序添加并配置到我们的本地Nuget服务器

    要进行此通话Get-PackageProvider -Name NuGet -ForceBootstrapSet-PSRepository -Name My_Nuget_Repo -SourceLocation http://my-nuget/api -InstallationPolicy Trusted

  2. 创建了适当的模块,可以通过以下方式在本地导入 Import-Module

  3. 使用该模块创建并发布了Nuget软件包

问题

我可以通过Install-Modulecmdlet安装该软件包,以后可以在Get-InstalledModule列表中看到它

但是,没有可用的功能。

另外,无论如何,但Install-Module不会从我的程序包中调用任何脚本:

  • 不调用ScriptsToProcessMyModule.psd1
  • Install.ps1从资料tools呼叫
  • Init.ps1从资料tools呼叫
  • 模块导出的Cmdlet不可用,模块无法导入 Import-Module

(从Visual Studios安装时,相同的程序包可以正常工作Install-Package MyModule,调用脚本,导入PowerShell模块)。

调查

由于PowerShellGet基于OneGet,问题似乎出在Install-Packagecmdlet(cmdlet内部被称为Install-Module)中。

当我Install-Package MyModule从Visual Studio执行Install.ps1并被Init.ps1调用时。但是,来自纯PowerShell的同一命令什么也没做。

安东

经过长时间的反向工程,我找到了根本原因

技术原因

魔法标签PSModule必须添加到<Tags>nuspec文件中。

真正原因

您根本不应该手动创建nuspec文件并打包nuget软件包请改用Publish-Modulecmdlet。

如何正确做

我已使用以下命令更新了powershellget-module GitHub

  • 可以发布的最小模块的示例
  • 如何将本地文件夹用作Nuget提要
  • 发布,安装和使用该模块
  • 没有依赖关系的参考脚本在本地完成所有操作,因此您可以对其进行研究

一探究竟。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用PowerShellGet安装PowerShell模块后写入配置文件

来自分类Dev

为Dacpac和Powershell脚本创建Nuget程序包

来自分类Dev

PowerShell模块创建

来自分类Dev

PowerShell模块创建

来自分类Dev

NuGet模块中的MVC视图

来自分类Dev

如何创建纯解决方案级别的NuGet包

来自分类Dev

Pyinstaller 为自己创建的模块导入模块

来自分类Dev

为静态资产创建nuget包

来自分类Dev

为框架项目创建nuget包

来自分类Dev

如何从NuGet包引用VB中的模块

来自分类Dev

在PowerShell中的模块中动态创建函数

来自分类Dev

为maven多模块项目中的模块创建jar

来自分类Dev

尝试为NodeJS模块创建Typescript定义

来自分类Dev

为AngularJS模块创建全局服务

来自分类Dev

(python)将对象创建为模块

来自分类Dev

为python模块创建golang绑定

来自分类Dev

创建我的nuget包

来自分类Dev

创建条件NuGet包

来自分类Dev

以编程方式为本地存储库创建NuGet包

来自分类Dev

以编程方式为本地存储库创建NuGet包

来自分类Dev

伪造的Nuget包装将文件创建为ReadOnly

来自分类Dev

在 TFS 中为我的 Nuget 包创建描述

来自分类Dev

为所有用户永久安装PowerShell模块

来自分类Dev

在每次测试中为所需的模式模块创建新对象

来自分类Dev

使用Gulp为每个模块/目录创建角度$ templateCache

来自分类Dev

如何使用模块为Fortran程序创建Makefile

来自分类Dev

IntelliJ 13不提示为新项目创建模块

来自分类Dev

为多模块gradle项目创建单个源jar

来自分类Dev

在每次测试中为所需的模式模块创建新对象