Project

PSPublishModule

Build, test, version, sign, and publish PowerShell modules with reusable PowerForge pipelines.

Stars 48
Forks 16
PowerShell Gallery downloads 17,213
Release v3.0.169
Language: C# Updated: 2026-10-17
Command

Invoke-DotNetRepositoryRelease

Module PSPublishModule
Inputs
None
Outputs
PowerForge.DotNetRepositoryReleaseResult

Repository-wide .NET package release workflow (discover, version, pack, publish).

Syntax

Invoke-DotNetRepositoryRelease [-AlignPackageVersions] [-CertificateStore <CurrentUser|LocalMachine>] [-CertificateThumbprint <String>] [-Configuration <Release|Debug>] [-ExcludeDirectories <String[]>] [-ExcludeProject <String[]>] [-ExpectedVersion <String>] [-ExpectedVersionMap <IDictionary>] [-ExpectedVersionMapAsInclude] [-ExpectedVersionMapUseWildcards] [-IncludePrerelease] [-IncludeProject <String[]>] [-IncludeSymbols] [-NugetCredentialSecret <String>] [-NugetCredentialSecretEnvName <String>] [-NugetCredentialSecretFilePath <String>] [-NugetCredentialUserName <String>] [-NugetSource <String[]>] [-OutputPath <String>] [-OverwriteSignedAssemblies] [-OverwriteSignedPackages] [-Path <String>] [-Publish] [-PublishApiKey <String>] [-PublishApiKeyEnvName <String>] [-PublishApiKeyFilePath <String>] [-PublishFailFast] [-PublishSource <String>] [-SignDependencyAssemblies] [-SkipAssemblySigning] [-SkipDuplicate] [-SkipPack] [-SkipPackageSigning] [-TimeStampServer <String>] [<CommonParameters>]
#
Parameter set: All Parameter Sets

Description

Discovers packable projects, resolves a repository-wide version (supports X-pattern), updates csproj versions, packs, and optionally publishes packages.

Examples

Authored help example

Release packages using X-pattern versioning

Invoke-DotNetRepositoryRelease -Path . -ExpectedVersion '1.2.X' -Publish -PublishApiKey $env:NUGET_API_KEY

Release packages with exclusions and custom sources

Invoke-DotNetRepositoryRelease -Path . -ExpectedVersion '2.0.X' -ExcludeProject 'OfficeIMO.Visio' -NugetSource 'C:\Packages' -Publish -PublishApiKey $env:NUGET_API_KEY

Parameters

-AlignPackageVersions SwitchParameter optional
Align projects sharing an X-pattern to one next version based on the highest current package version in that group.
-CertificateStore CertificateStoreLocation optional
Certificate store location used when searching for the signing certificate.
Possible values: CurrentUser, LocalMachine
-CertificateThumbprint String optional
Certificate thumbprint used for signing packages.
-Configuration String optional
Build configuration (Release/Debug).
Possible values: Release, Debug
-ExcludeDirectories String[] optional
Directory names to exclude from discovery.
-ExcludeProject String[] optional
Project names to exclude (csproj file name without extension).
-ExpectedVersion String optionalaliases: Version
Expected version (exact or X-pattern, e.g. 1.2.X).
-ExpectedVersionMap IDictionary optional
Per-project expected versions (hashtable: ProjectName = Version).
-ExpectedVersionMapAsInclude SwitchParameter optional
When set, only projects listed in ExpectedVersionMap are processed.
-ExpectedVersionMapUseWildcards SwitchParameter optional
Allow wildcards (*, ?) in ExpectedVersionMap keys.
-IncludePrerelease SwitchParameter optional
Include prerelease versions when resolving versions.
-IncludeProject String[] optional
Project names to include (csproj file name without extension).
-IncludeSymbols SwitchParameter optional
Create portable .snupkg symbol packages alongside primary packages.
-NugetCredentialSecret String optional
Credential secret/token for private NuGet sources.
-NugetCredentialSecretEnvName String optional
Name of environment variable containing the credential secret/token.
-NugetCredentialSecretFilePath String optional
Path to a file containing the credential secret/token.
-NugetCredentialUserName String optional
Credential username for private NuGet sources.
-NugetSource String[] optional
NuGet sources (v3 index or local path) used for version resolution.
-OutputPath String optional
Optional output path for packages.
-OverwriteSignedAssemblies SwitchParameter optional
Explicitly replaces existing Authenticode assembly signatures.
-OverwriteSignedPackages SwitchParameter optional
Explicitly replaces existing NuGet package signatures.
-Path String optional
Root repository path.
-Publish SwitchParameter optional
Publish packages to the feed.
-PublishApiKey String optional
API key used for publishing packages.
-PublishApiKeyEnvName String optional
Name of environment variable containing the publish API key.
-PublishApiKeyFilePath String optional
Path to a file containing the publish API key.
-PublishFailFast SwitchParameter optional
Stop on the first publish/signing failure.
-PublishSource String optional
NuGet feed source for publishing.
-SignDependencyAssemblies SwitchParameter optional
Also sign copied dependency assemblies from build output folders.
-SkipAssemblySigning SwitchParameter optional
Skip Authenticode signing of build outputs before packages are created.
-SkipDuplicate SwitchParameter optional
Skip duplicates when pushing packages.
-SkipPack SwitchParameter optional
Skip dotnet pack step.
-SkipPackageSigning SwitchParameter optional
Skip signing generated NuGet packages.
-TimeStampServer String optional
Timestamp server URL used while signing packages.

Common Parameters

This command supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.

For more information, see about_CommonParameters.