msbuild
msbuild copied to clipboard
[Feature Request]: Expand $(~) to $(HOME) or $(USERPROFILE) depending on OS
Summary
Currently, you need to do something like the following to consistently get the ~ home directory in a cross-platform way:
<PropertyGroup>
<UserProfileHome Condition="'$([MSBuild]::IsOSUnixLike())' == 'true'">$(HOME)</UserProfileHome>
<UserProfileHome Condition="'$([MSBuild]::IsOSUnixLike())' != 'true'">$(USERPROFILE)</UserProfileHome>
</PropertyGroup>
It would be awesome if the well-known shorthand ~ (even PowerShell Core knows it) could be used directly in MSBuild as a built-in envvar alias for either $(HOME) or $(USERPROFILE) depending on the current OS, just like pwsh does it.
Background and Motivation
No particular problem, just a desire for more consistency across developer tooling in the ecosystem (following the lead from pwsh).
Proposed Feature
Summary contains the proposal, which would be to consider ~ as an alias to either Home or UserProfile envvar names in Unix-like vs Windows.
Alternative Designs
No response