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.