Command
Invoke-DotNetPublish
Executes DotNet publish engine from DSL settings or an existing JSON config.
Syntax
Invoke-DotNetPublish [-ExitCode] [-Frameworks <String[]>] [-JsonOnly] [-JsonPath <String>] [-MsBuildProperty <Hashtable>] [-NoInteractive] [-NoPublishSign] [-OutputPath <String>] [-Plan] [-Profile <String>] [-ProjectRoot <String>] [-Runtimes <String[]>] -Settings <ScriptBlock> [-SkipBuild] [-SkipInstallers] [-SkipRestore] [-Styles <DotNetPublishStyle[]>] [-Target <String[]>] [-Validate] [<CommonParameters>]#Parameter set:
SettingsInvoke-DotNetPublish -ConfigPath <String> [-ExitCode] [-Frameworks <String[]>] [-JsonOnly] [-JsonPath <String>] [-MsBuildProperty <Hashtable>] [-NoInteractive] [-NoPublishSign] [-OutputPath <String>] [-Plan] [-Profile <String>] [-ProjectRoot <String>] [-Runtimes <String[]>] [-SkipBuild] [-SkipInstallers] [-SkipRestore] [-Styles <DotNetPublishStyle[]>] [-Target <String[]>] [-Validate] [<CommonParameters>]#Parameter set:
ConfigDescription
This cmdlet follows the same authoring pattern as module build cmdlets: create a config using New-ConfigurationDotNet* and run it directly, or export config first via -JsonOnly + -JsonPath.
Examples
Generate DotNet publish JSON from DSL without execution
Invoke-DotNetPublish -JsonOnly -JsonPath '.\powerforge.dotnetpublish.json' -Settings {
New-ConfigurationDotNetPublish -IncludeSchema -ProjectRoot '.' -Configuration 'Release'
New-ConfigurationDotNetTarget -Name 'PowerForge.Cli' -ProjectPath 'PowerForge.Cli/PowerForge.Cli.csproj' -Framework 'net10.0' -Runtimes 'win-x64' -Style PortableCompat -Zip
}Run DotNet publish from existing JSON config
Invoke-DotNetPublish -ConfigPath '.\powerforge.dotnetpublish.json' -ExitCodeParameters
- -ExitCode SwitchParameter
- Sets host exit code: 0 on success, 1 on failure.
- -Frameworks String[]
- Optional framework override for selected targets.
- -JsonOnly SwitchParameter
- Exports JSON config and exits without running the engine.
- -JsonPath String
- Output path for JSON config used with JsonOnly.
- -MsBuildProperty Hashtable
- Optional global MSBuild properties passed to restore, build, publish, and installer steps.
- -NoInteractive SwitchParameter
- Disables interactive output mode. Reserved for future UI parity.
- -NoPublishSign SwitchParameter
- Disables signing only for targets selected by this invocation. The configuration remains unchanged. Use for a temporary runtime smoke, not a signed release. Bundles selected by the effective profile are rejected because bundle signing follows the source publish target.
- -OutputPath String
- Optional publish output-path override applied to selected targets.
- -Plan SwitchParameter
- Builds and emits resolved plan without executing steps.
- -Profile String
- Optional profile override.
- -ProjectRoot String
- Optional project root override used to resolve relative publish inputs and outputs.
- -Runtimes String[]
- Optional runtime override for selected targets.
- -Settings ScriptBlock
- DSL settings block that emits DotNet publish objects.
- -SkipBuild SwitchParameter
- Disables build steps for this run.
- -SkipInstallers SwitchParameter
- Skips installer definitions after selected targets are filtered.
- -SkipRestore SwitchParameter
- Disables restore steps for this run.
- -Styles DotNetPublishStyle[]
- Optional style override for selected targets.
- Possible values:
Portable,PortableCompat,PortableSize,SelfContained,FrameworkDependent,AotSpeed,AotSize - -Target String[]
- Optional target-name filter override.
- -Validate SwitchParameter
- Validates configuration by planning only; does not execute run steps.
- -ConfigPath String
- Path to existing DotNet publish JSON config.
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.