From 19f54ebb354df2e06f9cac9cc8866671dc227ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Fri, 18 Jul 2025 10:52:47 +0200 Subject: [PATCH 1/2] Use NormalizePath instead of Path.Combine for PackagedShimOutputDirectory Follow-up to https://github.com/dotnet/sdk/pull/49801 and https://github.com/dotnet/sdk/pull/49288 We were still seeing an error during publish, note the duplicate slashes: ``` error NETSDK1152: Found multiple publish output files with the same relative path: /__w/1/s/artifacts/bin/dotnet-dump/Debug/shims/net8.0/win-x64/dotnet-dump.exe, /__w/1/s/artifacts/bin/dotnet-dump/Debug//shims/net8.0/win-x64/dotnet-dump.exe, /__w/1/s/artifacts/bin/dotnet-dump/Debug/shims/net8.0/win-x86/dotnet-dump.exe, /__w/1/s/artifacts/bin/dotnet-dump/Debug//shims/net8.0/win-x86/dotnet-dump.exe, /__w/1/s/artifacts/bin/dotnet-dump/Debug/shims/net8.0/osx-x64/dotnet-dump ``` Use the [MSBuild]::NormalizePath property function instead of Path.Combine to get a canonicalized path that doesn't contain duplicate slashes. --- .../targets/Microsoft.NET.PackTool.targets | 4 ++-- .../targets/Microsoft.NET.Publish.targets | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.PackTool.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.PackTool.targets index 775cbca2a40f..247f8e20a85c 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.PackTool.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.PackTool.targets @@ -295,7 +295,7 @@ NOTE: This file is imported from the following contexts, so be aware when writin ApphostsForShimRuntimeIdentifiers="@(_ApphostsForShimRuntimeIdentifiers)" IntermediateAssembly="@(IntermediateAssembly->'%(FullPath)')" OutputType="$(OutputType)" - PackagedShimOutputDirectory="$([System.IO.Path]::Combine($(PackagedShimOutputRootDirectory), 'shims', $(_ToolPackShortTargetFrameworkName)))" + PackagedShimOutputDirectory="$([MSBuild]::NormalizePath($(PackagedShimOutputRootDirectory), 'shims', $(_ToolPackShortTargetFrameworkName)))" PackageId="$(PackageId)" PackageVersion="$(PackageVersion)" ShimRuntimeIdentifiers="@(_PackAsToolShimRuntimeIdentifiers)" @@ -324,7 +324,7 @@ NOTE: This file is imported from the following contexts, so be aware when writin diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets index 1b78b5c95653..16c621525f12 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets @@ -1289,7 +1289,7 @@ Copyright (c) .NET Foundation. All rights reserved. From 5d49bd9b603b1fc3c77fd26721dd4e2c2eda47e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Fri, 18 Jul 2025 11:07:06 +0200 Subject: [PATCH 2/2] Use NormalizeDirectory --- .../targets/Microsoft.NET.PackTool.targets | 4 ++-- .../targets/Microsoft.NET.Publish.targets | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.PackTool.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.PackTool.targets index 247f8e20a85c..2f96be51bb60 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.PackTool.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.PackTool.targets @@ -295,7 +295,7 @@ NOTE: This file is imported from the following contexts, so be aware when writin ApphostsForShimRuntimeIdentifiers="@(_ApphostsForShimRuntimeIdentifiers)" IntermediateAssembly="@(IntermediateAssembly->'%(FullPath)')" OutputType="$(OutputType)" - PackagedShimOutputDirectory="$([MSBuild]::NormalizePath($(PackagedShimOutputRootDirectory), 'shims', $(_ToolPackShortTargetFrameworkName)))" + PackagedShimOutputDirectory="$([MSBuild]::NormalizeDirectory($(PackagedShimOutputRootDirectory), 'shims', $(_ToolPackShortTargetFrameworkName)))" PackageId="$(PackageId)" PackageVersion="$(PackageVersion)" ShimRuntimeIdentifiers="@(_PackAsToolShimRuntimeIdentifiers)" @@ -324,7 +324,7 @@ NOTE: This file is imported from the following contexts, so be aware when writin diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets index 16c621525f12..728f17b43132 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets @@ -1289,7 +1289,7 @@ Copyright (c) .NET Foundation. All rights reserved.