Evotec

Project

PSPublishModule

PSPublishModule is an open-source PowerShell and .NET project with packages, release history, and technical documentation.

Stars 43
Forks 13
Open issues 1
PowerShell Gallery downloads 13,876
Release v3.0.3
Language: C# Updated: 2026-04-14

API Reference

Command

Invoke-PowerForgeRelease

Namespace PSPublishModule
Inputs
None
Outputs
PowerForge.PowerForgeReleaseResult

Executes the unified repository release workflow from a JSON configuration.

Remarks

This cmdlet is the PowerShell entry point for the same unified release engine used by powerforge release. It can coordinate repository package publishing and downloadable tool/app artefacts from one configuration file.

Examples

Authored help example

Plan the configured release without running build/publish steps


Invoke-PowerForgeRelease -ConfigPath '.\Build\release.json' -Plan
        

Run tool releases only and publish tool assets to GitHub


Invoke-PowerForgeRelease -ConfigPath '.\Build\release.json' -ToolsOnly -PublishToolGitHub -ExitCode
        

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.

Syntax

Invoke-PowerForgeRelease [-AllowManifestOutsideProjectRoot] [-AllowOutputOutsideProjectRoot] [-ChecksumsPath <String>] [-ConfigPath <String>] [-Configuration <Release|Debug>] [-ExitCode] [-Flavors <SingleContained|SingleFx|Portable|Fx>] [-Frameworks <String[]>] [-InstallerProperty <String[]>] [-KeepSymbols] [-ManifestJsonPath <String>] [-ModuleNoDotnetBuild] [-ModuleNoSign] [-ModuleOnly] [-ModulePreReleaseTag <String>] [-ModuleSignModule] [-ModuleVersion <String>] [-OutputRoot <String>] [-PackageSignStore <CurrentUser|LocalMachine>] [-PackageSignThumbprint <String>] [-PackageSignTimestampUrl <String>] [-PackagesOnly] [-Plan] [-PublishNuget] [-PublishProjectGitHub] [-PublishToolGitHub] [-Runtimes <String[]>] [-Sign] [-SignCsp <String>] [-SignDescription <String>] [-SignKeyContainer <String>] [-SignOnFailure <Nullable`1>] [-SignOnMissingTool <Nullable`1>] [-SignProfile <String>] [-SignSubjectName <String>] [-SignThumbprint <String>] [-SignTimestampUrl <String>] [-SignToolPath <String>] [-SignUrl <String>] [-SkipBuild] [-SkipReleaseChecksums] [-SkipRestore] [-SkipToolOutput <Tool|Portable|Installer|Store>] [-SkipWorkspaceValidation] [-StageRoot <String>] [-Styles <Portable>] [-Target <String[]>] [-ToolOutput <Tool|Portable|Installer|Store>] [-ToolsOnly] [-Validate] [-WorkspaceConfigPath <String>] [-WorkspaceDisableFeature <String[]>] [-WorkspaceEnableFeature <String[]>] [-WorkspaceProfile <String>] [<CommonParameters>]
#
Parameter set: Config

Parameters

AllowManifestOutsideProjectRoot SwitchParameter optionalposition: namedpipeline: False
Allows DotNetPublish-backed manifest/report paths to resolve outside the configured project root.
AllowOutputOutsideProjectRoot SwitchParameter optionalposition: namedpipeline: False
Allows DotNetPublish-backed outputs to resolve outside the configured project root.
ChecksumsPath String optionalposition: namedpipeline: False
Optional release checksums output path override.
ConfigPath String optionalposition: namedpipeline: False
Path to the unified release configuration file. When omitted, the cmdlet searches current and parent directories for standard release config file names.
Configuration String optionalposition: namedpipeline: Falsevalues: 2
Optional configuration override.
Possible values: Release, Debug
ExitCode SwitchParameter optionalposition: namedpipeline: False
Sets host exit code: 0 on success, 1 on failure.
Flavors String[] optionalposition: namedpipeline: Falsealiases: Flavorvalues: 4
Optional legacy tool flavor filter.
Possible values: SingleContained, SingleFx, Portable, Fx
Frameworks String[] optionalposition: namedpipeline: Falsealiases: Framework
Optional framework filter.
InstallerProperty String[] optionalposition: namedpipeline: False
Optional installer MSBuild property overrides in Name=Value form.
KeepSymbols SwitchParameter optionalposition: namedpipeline: False
Keeps symbol files for tool/app artefacts.
ManifestJsonPath String optionalposition: namedpipeline: False
Optional release manifest output path override.
ModuleNoDotnetBuild SwitchParameter optionalposition: namedpipeline: False
Skips the dotnet build step inside the native module-release lane.
ModuleNoSign SwitchParameter optionalposition: namedpipeline: False
Disables signing for the native module-release lane.
ModuleOnly SwitchParameter optionalposition: namedpipeline: False
Executes only the module portion of the release.
ModulePreReleaseTag String optionalposition: namedpipeline: False
Optional prerelease tag override for the native module-release lane.
ModuleSignModule SwitchParameter optionalposition: namedpipeline: False
Enables signing for the native module-release lane.
ModuleVersion String optionalposition: namedpipeline: False
Optional module version override for the native module-release lane.
OutputRoot String optionalposition: namedpipeline: False
Optional output root override for tool/app assets.
PackageSignStore String optionalposition: namedpipeline: Falsevalues: 2
Optional package-signing certificate store override.
Possible values: CurrentUser, LocalMachine
PackageSignThumbprint String optionalposition: namedpipeline: False
Optional package-signing thumbprint override.
PackageSignTimestampUrl String optionalposition: namedpipeline: False
Optional package-signing timestamp URL override.
PackagesOnly SwitchParameter optionalposition: namedpipeline: False
Executes only the package portion of the release.
Plan SwitchParameter optionalposition: namedpipeline: False
Builds the release plan without executing steps.
PublishNuget SwitchParameter optionalposition: namedpipeline: False
Enables NuGet publishing for this run.
PublishProjectGitHub SwitchParameter optionalposition: namedpipeline: False
Enables project/package GitHub release publishing for this run.
PublishToolGitHub SwitchParameter optionalposition: namedpipeline: False
Enables tool/app GitHub release publishing for this run.
Runtimes String[] optionalposition: namedpipeline: Falsealiases: Rid, Runtime
Optional runtime filter.
Sign SwitchParameter optionalposition: namedpipeline: False
Enables signing for tool/app outputs when supported by the release config.
SignCsp String optionalposition: namedpipeline: False
Optional signing CSP override.
SignDescription String optionalposition: namedpipeline: False
Optional signing description override.
SignKeyContainer String optionalposition: namedpipeline: False
Optional signing key container override.
SignOnFailure Nullable`1 optionalposition: namedpipeline: False
Optional policy when signing fails.
SignOnMissingTool Nullable`1 optionalposition: namedpipeline: False
Optional policy when the configured signing tool is missing.
SignProfile String optionalposition: namedpipeline: False
Optional signing profile override.
SignSubjectName String optionalposition: namedpipeline: False
Optional signing certificate subject name override.
SignThumbprint String optionalposition: namedpipeline: False
Optional signing thumbprint override.
SignTimestampUrl String optionalposition: namedpipeline: False
Optional signing timestamp URL override.
SignToolPath String optionalposition: namedpipeline: False
Optional signing tool path override.
SignUrl String optionalposition: namedpipeline: False
Optional signing URL override.
SkipBuild SwitchParameter optionalposition: namedpipeline: False
Disables build operations for the tool/app publish flow.
SkipReleaseChecksums SwitchParameter optionalposition: namedpipeline: False
Skips top-level release checksums generation.
SkipRestore SwitchParameter optionalposition: namedpipeline: False
Disables restore operations for the tool/app publish flow.
SkipToolOutput String[] optionalposition: namedpipeline: Falsevalues: 4
Optional tool/app output exclusion for DotNetPublish-backed release flows.
Possible values: Tool, Portable, Installer, Store
SkipWorkspaceValidation SwitchParameter optionalposition: namedpipeline: False
Skips workspace validation defined by the release config.
StageRoot String optionalposition: namedpipeline: False
Optional staged release root override.
Styles DotNetPublishStyle[] optionalposition: namedpipeline: Falsealiases: Stylevalues: 6
Optional publish style filter.
Possible values: Portable, PortableCompat, PortableSize, FrameworkDependent, AotSpeed, AotSize
Target String[] optionalposition: namedpipeline: Falsealiases: Targets
Optional target-name filter.
ToolOutput String[] optionalposition: namedpipeline: Falsevalues: 4
Optional tool/app output selection for DotNetPublish-backed release flows.
Possible values: Tool, Portable, Installer, Store
ToolsOnly SwitchParameter optionalposition: namedpipeline: False
Executes only the tool/app portion of the release.
Validate SwitchParameter optionalposition: namedpipeline: False
Validates configuration through plan-only execution.
WorkspaceConfigPath String optionalposition: namedpipeline: False
Optional workspace validation config override.
WorkspaceDisableFeature String[] optionalposition: namedpipeline: False
Optional workspace feature disable list override.
WorkspaceEnableFeature String[] optionalposition: namedpipeline: False
Optional workspace feature enable list override.
WorkspaceProfile String optionalposition: namedpipeline: False
Optional workspace validation profile override.

Outputs

PowerForge.PowerForgeReleaseResult

Invoke-PowerForgeRelease [-AllowManifestOutsideProjectRoot] [-AllowOutputOutsideProjectRoot] [-ChecksumsPath <String>] [-Configuration <Release|Debug>] [-ExitCode] [-Flavors <SingleContained|SingleFx|Portable|Fx>] [-Frameworks <String[]>] [-InstallerProperty <String[]>] [-KeepSymbols] [-ManifestJsonPath <String>] [-ModuleNoDotnetBuild] [-ModuleNoSign] [-ModuleOnly] [-ModulePreReleaseTag <String>] [-ModuleSignModule] [-ModuleVersion <String>] [-OutputRoot <String>] [-PackageSignStore <CurrentUser|LocalMachine>] [-PackageSignThumbprint <String>] [-PackageSignTimestampUrl <String>] [-PackagesOnly] [-Plan] -Project <ConfigurationProject> [-PublishNuget] [-PublishProjectGitHub] [-PublishToolGitHub] [-Runtimes <String[]>] [-Sign] [-SignCsp <String>] [-SignDescription <String>] [-SignKeyContainer <String>] [-SignOnFailure <Nullable`1>] [-SignOnMissingTool <Nullable`1>] [-SignProfile <String>] [-SignSubjectName <String>] [-SignThumbprint <String>] [-SignTimestampUrl <String>] [-SignToolPath <String>] [-SignUrl <String>] [-SkipBuild] [-SkipReleaseChecksums] [-SkipRestore] [-SkipToolOutput <Tool|Portable|Installer|Store>] [-SkipWorkspaceValidation] [-StageRoot <String>] [-Styles <Portable>] [-Target <String[]>] [-ToolOutput <Tool|Portable|Installer|Store>] [-ToolsOnly] [-Validate] [-WorkspaceConfigPath <String>] [-WorkspaceDisableFeature <String[]>] [-WorkspaceEnableFeature <String[]>] [-WorkspaceProfile <String>] [<CommonParameters>]
#
Parameter set: Project

Parameters

AllowManifestOutsideProjectRoot SwitchParameter optionalposition: namedpipeline: False
Allows DotNetPublish-backed manifest/report paths to resolve outside the configured project root.
AllowOutputOutsideProjectRoot SwitchParameter optionalposition: namedpipeline: False
Allows DotNetPublish-backed outputs to resolve outside the configured project root.
ChecksumsPath String optionalposition: namedpipeline: False
Optional release checksums output path override.
Configuration String optionalposition: namedpipeline: Falsevalues: 2
Optional configuration override.
Possible values: Release, Debug
ExitCode SwitchParameter optionalposition: namedpipeline: False
Sets host exit code: 0 on success, 1 on failure.
Flavors String[] optionalposition: namedpipeline: Falsealiases: Flavorvalues: 4
Optional legacy tool flavor filter.
Possible values: SingleContained, SingleFx, Portable, Fx
Frameworks String[] optionalposition: namedpipeline: Falsealiases: Framework
Optional framework filter.
InstallerProperty String[] optionalposition: namedpipeline: False
Optional installer MSBuild property overrides in Name=Value form.
KeepSymbols SwitchParameter optionalposition: namedpipeline: False
Keeps symbol files for tool/app artefacts.
ManifestJsonPath String optionalposition: namedpipeline: False
Optional release manifest output path override.
ModuleNoDotnetBuild SwitchParameter optionalposition: namedpipeline: False
Skips the dotnet build step inside the native module-release lane.
ModuleNoSign SwitchParameter optionalposition: namedpipeline: False
Disables signing for the native module-release lane.
ModuleOnly SwitchParameter optionalposition: namedpipeline: False
Executes only the module portion of the release.
ModulePreReleaseTag String optionalposition: namedpipeline: False
Optional prerelease tag override for the native module-release lane.
ModuleSignModule SwitchParameter optionalposition: namedpipeline: False
Enables signing for the native module-release lane.
ModuleVersion String optionalposition: namedpipeline: False
Optional module version override for the native module-release lane.
OutputRoot String optionalposition: namedpipeline: False
Optional output root override for tool/app assets.
PackageSignStore String optionalposition: namedpipeline: Falsevalues: 2
Optional package-signing certificate store override.
Possible values: CurrentUser, LocalMachine
PackageSignThumbprint String optionalposition: namedpipeline: False
Optional package-signing thumbprint override.
PackageSignTimestampUrl String optionalposition: namedpipeline: False
Optional package-signing timestamp URL override.
PackagesOnly SwitchParameter optionalposition: namedpipeline: False
Executes only the package portion of the release.
Plan SwitchParameter optionalposition: namedpipeline: False
Builds the release plan without executing steps.
Project ConfigurationProject requiredposition: namedpipeline: False
PowerShell-authored project/release object that is translated into the unified release engine.
PublishNuget SwitchParameter optionalposition: namedpipeline: False
Enables NuGet publishing for this run.
PublishProjectGitHub SwitchParameter optionalposition: namedpipeline: False
Enables project/package GitHub release publishing for this run.
PublishToolGitHub SwitchParameter optionalposition: namedpipeline: False
Enables tool/app GitHub release publishing for this run.
Runtimes String[] optionalposition: namedpipeline: Falsealiases: Rid, Runtime
Optional runtime filter.
Sign SwitchParameter optionalposition: namedpipeline: False
Enables signing for tool/app outputs when supported by the release config.
SignCsp String optionalposition: namedpipeline: False
Optional signing CSP override.
SignDescription String optionalposition: namedpipeline: False
Optional signing description override.
SignKeyContainer String optionalposition: namedpipeline: False
Optional signing key container override.
SignOnFailure Nullable`1 optionalposition: namedpipeline: False
Optional policy when signing fails.
SignOnMissingTool Nullable`1 optionalposition: namedpipeline: False
Optional policy when the configured signing tool is missing.
SignProfile String optionalposition: namedpipeline: False
Optional signing profile override.
SignSubjectName String optionalposition: namedpipeline: False
Optional signing certificate subject name override.
SignThumbprint String optionalposition: namedpipeline: False
Optional signing thumbprint override.
SignTimestampUrl String optionalposition: namedpipeline: False
Optional signing timestamp URL override.
SignToolPath String optionalposition: namedpipeline: False
Optional signing tool path override.
SignUrl String optionalposition: namedpipeline: False
Optional signing URL override.
SkipBuild SwitchParameter optionalposition: namedpipeline: False
Disables build operations for the tool/app publish flow.
SkipReleaseChecksums SwitchParameter optionalposition: namedpipeline: False
Skips top-level release checksums generation.
SkipRestore SwitchParameter optionalposition: namedpipeline: False
Disables restore operations for the tool/app publish flow.
SkipToolOutput String[] optionalposition: namedpipeline: Falsevalues: 4
Optional tool/app output exclusion for DotNetPublish-backed release flows.
Possible values: Tool, Portable, Installer, Store
SkipWorkspaceValidation SwitchParameter optionalposition: namedpipeline: False
Skips workspace validation defined by the release config.
StageRoot String optionalposition: namedpipeline: False
Optional staged release root override.
Styles DotNetPublishStyle[] optionalposition: namedpipeline: Falsealiases: Stylevalues: 6
Optional publish style filter.
Possible values: Portable, PortableCompat, PortableSize, FrameworkDependent, AotSpeed, AotSize
Target String[] optionalposition: namedpipeline: Falsealiases: Targets
Optional target-name filter.
ToolOutput String[] optionalposition: namedpipeline: Falsevalues: 4
Optional tool/app output selection for DotNetPublish-backed release flows.
Possible values: Tool, Portable, Installer, Store
ToolsOnly SwitchParameter optionalposition: namedpipeline: False
Executes only the tool/app portion of the release.
Validate SwitchParameter optionalposition: namedpipeline: False
Validates configuration through plan-only execution.
WorkspaceConfigPath String optionalposition: namedpipeline: False
Optional workspace validation config override.
WorkspaceDisableFeature String[] optionalposition: namedpipeline: False
Optional workspace feature disable list override.
WorkspaceEnableFeature String[] optionalposition: namedpipeline: False
Optional workspace feature enable list override.
WorkspaceProfile String optionalposition: namedpipeline: False
Optional workspace validation profile override.

Outputs

PowerForge.PowerForgeReleaseResult