You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Host 4.1048.200-preview.2 moved to the RID-pointer workload model: the logical Azure.Functions.Cli.Workloads.Host package selects a physical package such as Azure.Functions.Cli.Workloads.Host.win-x64, whose metadata declares runtimeIdentifier: win-x64.
The physical package still places its payload under tools/any, though. Because the CLI uses the declared RID to calculate the installed content root, it looks for the executable at:
Installation and func workload list succeed because the pointer and RID metadata are valid, but every func start flow fails when the CLI tries to launch the missing executable. This affects all language stacks because they share the same Host workload.
What changed
pack each RID-specific Host payload under tools/<rid> so its file layout matches its package ID and runtimeIdentifier metadata
bump the corrective Host workload release to 4.1048.200-preview.3
document that release packages must be built with PackAllRids=true and SelfContained=true
correct the Host release-note versions to match the actual package versions
Release impact
After this merges, publish the logical Host pointer package and all generated RID implementation packages at 4.1048.200-preview.3.
The underlying Functions Host dependency remains 4.1048.200, so no CLI, worker, or stack release is required.
Validation
dotnet restore
dotnet test test\Workloads\Host.Tests\Workloads.Host.Tests.csproj -c Release --no-restore — 50 passed
release-mode dotnet pack with PackAllRids=true produced the logical package plus six RID packages without warnings
verified the win-x64 nupkg contains tools/win-x64/Azure.Functions.Cli.Workloads.Host.exe and no tools/any payload
released CLI 5.0.0-preview.3 installed Host 4.1048.200-preview.3 from disposable BaGet, selected the win-x64 implementation, started the Host, and returned HTTP 200 with state Running
Pack Host payloads under tools/<rid> so the CLI can launch the selected implementation, and bump the corrective preview version.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Clarified release packaging details for RID-specific packages.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
DeployForDebug still copies Host output to stale tools/any path
src/Workloads/Host/Build.Inner.targets:28
This moves the installed implementation payload to tools/<rid>, but DeployForDebug still copies rebuilt Host output to tools/any (eng/build/WorkloadDebug.targets:39,79-82). Because the installed Host entry carries its runtime identifier, func start resolves tools/<rid>, so subsequent local debug builds will continue launching the stale executable. Update the debug deployment path to use the RID-aware content root as part of this change.
Previously missed (1)
In code that hasn't changed since last review
DeployForDebug still copies Host output to stale tools/any path
I traced through DeployForDebug, and it looks like it doesn’t actually copy the Host output to tools/any today. It only runs for FuncCliWorkload; the Host either has no package type during a normal build or is FuncCliWorkloadRidPackage for a RID build. It also has IncludeBuildOutput=false, so there wouldn’t be a payload to copy through this path anyway.
The Host does not use this workflow. Host local iteration uses FUNC_HOST_CONTENT_ROOT, pointing the CLI directly at the freshly built Host output. That is why the review’s DeployForDebug concern does not affect this Host packaging fix.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why this is needed
Host
4.1048.200-preview.2moved to the RID-pointer workload model: the logicalAzure.Functions.Cli.Workloads.Hostpackage selects a physical package such asAzure.Functions.Cli.Workloads.Host.win-x64, whose metadata declaresruntimeIdentifier: win-x64.The physical package still places its payload under
tools/any, though. Because the CLI uses the declared RID to calculate the installed content root, it looks for the executable at:but the package contains it at:
Installation and
func workload listsucceed because the pointer and RID metadata are valid, but everyfunc startflow fails when the CLI tries to launch the missing executable. This affects all language stacks because they share the same Host workload.What changed
tools/<rid>so its file layout matches its package ID andruntimeIdentifiermetadata4.1048.200-preview.3PackAllRids=trueandSelfContained=trueRelease impact
After this merges, publish the logical Host pointer package and all generated RID implementation packages at
4.1048.200-preview.3.The underlying Functions Host dependency remains
4.1048.200, so no CLI, worker, or stack release is required.Validation
dotnet restoredotnet test test\Workloads\Host.Tests\Workloads.Host.Tests.csproj -c Release --no-restore— 50 passeddotnet packwithPackAllRids=trueproduced the logical package plus six RID packages without warningstools/win-x64/Azure.Functions.Cli.Workloads.Host.exeand notools/anypayload5.0.0-preview.3installed Host4.1048.200-preview.3from disposable BaGet, selected the win-x64 implementation, started the Host, and returned HTTP 200 with stateRunning