Add application icon for Windows builds#5557
Open
ivanduplenskikh wants to merge 1 commit into
Open
Conversation
737c234 to
9fd4077
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Context
The Windows agent executables (
Agent.Listener.exe,Agent.Worker.exe,Agent.PluginHost.exe,AgentService.exe) currently ship without an embedded application icon, so Explorer/Task Manager/UAC prompts show the generic default icon. This PR brands the Windows binaries with the Azure Pipelines agent icon.Description
src/Misc/layoutbin/azure-pipelines-agent.ico(the agent application icon).<ApplicationIcon>in the four Windows-facing project files so the icon is embedded as a Win32 resource at publish time:Agent.Listener.csproj,Agent.Worker.csproj,Agent.PluginHost.csproj— gated byCondition="$(PackageRuntime.StartsWith(''win''))"so non-Windows runtime builds are unaffected.Agent.Service/Windows/AgentService.csproj— unconditional (project is only built forwin-*runtimes).src/dir.projlayout cleanup so the.icofile is removed from the layoutbin/folder for non-Windows packages (linux, osx, musl), avoiding shipping an unused asset.Risk Assessment (Low / Medium / High)
Low. Build-only/asset change. No runtime code paths modified. The
<ApplicationIcon>element is a standard MSBuild property handled by the .NET SDK; cross-compilation from Linux CI to Windows targets is supported. Non-Windows builds are explicitly excluded by thePackageRuntimecondition.Unit Tests Added or Updated (Yes / No)
No. Asset/build-metadata change with no testable behavior.
Additional Testing Performed
win-x64agent layout verified the icon is embedded in the produced.exefiles and present alongside them in_layout/bin/.LayoutRootFilesToDeleteentry.Change Behind Feature Flag (Yes / No)
No. Cosmetic build-time change embedded in the binary; cannot meaningfully be flagged.
Tech Design / Approach
<ApplicationIcon>property — the same mechanism used by every Windows .NET application — so no custom build steps or external tooling are required.PackageRuntimeto keep non-Windows publishes byte-identical to before.Documentation Changes Required (Yes/No)
No.
Logging Added/Updated (Yes/No)
No.
Telemetry Added/Updated (Yes/No)
No.
Rollback Scenario and Process (Yes/No)
Yes. Revert the commit; the next agent package build will produce binaries with no embedded icon, identical to the prior behavior.
Dependency Impact Assessed and Regression Tested (Yes/No)
Yes. No new package or code dependencies introduced. Only MSBuild metadata and a single static asset are added; existing build/publish flows for non-Windows runtimes are unaffected by the
PackageRuntimecondition.