为脚本和模块设置基本内部og体育库是惊人的简单。我不知道这是多么容易实现最长的时间。如果您正在寻找向团队中的其他人分发模块的方法,那么您应该考虑这种方法。

指数

预先要求

We need the powershellget. module and a folder on a network share.

-update 2018-03-03- 我有一个跟进帖子,我使用Nuget Docker容器而不是网络共享: 使用NuGet服务器进行PSRepository

powershellget.

“PowerShellGet module contains cmdlets for discovering, installing, updating and publishing the PowerShell artifacts like Modules, DSC Resources, Role Capabilities and Scripts from the //www.PowerShellGallery.com and other private repositories.” -Juanpablo Jofre:PowerShell Gallery

如果您正在运行Windows 10或PowerShell 5.0,那么您已经拥有此模块。如果您需要支持PowerShell 3.0,那么请参阅 自述 for more details.

网络共享

我们应该拥有的另一件事是网络共享的空文件夹。这将是我们的og体育库的位置。如果您将从它加载内容,您的用户需要访问此位置。

$Path = '\\Server\Share\MyRepository'

如果您只想尝试使用这些命令,您可以为og体育库使用本地文件夹。 PowerShellget不在乎文件夹生命的位置。

创建og体育库

The first thing we should do is tell PowerShellGet that our $Path is a script repository.

Import-Module PowerShellGet

$repo = @{
    Name = 'MyRepository'
    SourceLocation = $Path
    PublishLocation = $Path
    InstallationPolicy = 'Trusted'
}
Register-PSRepository @repo

我们完成了。

PS:> Get-PSRepository

Name         InstallationPolicy SourceLocation
----         ------------------ --------------
MyRepository Trusted            \\Server\Share\MyRepository
PSGallery    Untrusted          //www.powershellgallery.com/api/v2/

除创建文件夹外,创建此og体育库没有复杂的设置。只需告诉PowerShellget,该文件夹是og体育库,它将认为它是一个。一个捕获是您需要在每台计算机上运行此命令以注册og体育库。

模块

我最近覆盖了如何 创建一个模块 作为打包功能的方式。我们可以使用此og体育库分发和共享模块。

发布模块

We need to first make sure the module is installed in your $env:PSModulePath and then we can publish it.

Publish-Module -Name MyModule -Repository MyRepository -Verbose

This will package your module up as a NuGet package and deploy it to the MyRepository.

列表模块

You can list all the modules in your repository (or search for a specific one) with Find-Module.

PS:> Find-Module -Repository MyRepository

Version Name      Repository   Description
------- ----      ----------   -----------
0.5.3   MyModule  MyRepository Sample module for blog demos

安装模块

我们需要知道的最后一件事是如何从og体育库安装模块。

Install-Module -Name MyModule -Repository MyRepository

发布更新的模块

如果要更新已发布的模块,请确保更新模块清单中的版本号。我个人尝试使用 语义版本化.

You also need to make sure you place this in the $env:PSModulePath and don’t have any other conflicting installs of your module.

安装更新的模块

You can run Update-Module to update your module. But I find that it leaves the old version on the system. I tend to remove and then install fresh when I need to update.

Uninstall-Module -Name MyModule
Install-Module -Name MyModule -Repository MyRepository -Scope CurrentUser

I also use the CurrentUser scope so that I don’t have to be at an administrator command prompt.

脚本

就个人而言,我现在从未将脚本发布到任何og体育库。据说,它肯定是一个有效的选择。有分开的 cmdlet用于发布脚本.

Find-Script
Install-Script
Publish-Script
Save-Script
Update-Script

在结束时

I mostly wanted to bring more visibility to using Register-PSRepository to create this basic repository. This could be a good stepping stone on your way to setting up a proper NuGet Server.

-update 2018-03-03- 我有一个跟进帖子,我使用Nuget Docker容器而不是网络共享: 使用NuGet服务器进行PSRepository