From e9682c151d78502d63ce60584484e1b5dbed5c96 Mon Sep 17 00:00:00 2001 From: "James Truher [MSFT]" Date: Thu, 1 Feb 2024 09:49:20 -0800 Subject: [PATCH] Fix `using assembly` to use `Path.Combine` when constructing assembly paths (#21169) --- .../engine/parser/Compiler.cs | 2 +- .../engine/parser/Parser.cs | 2 +- .../Language/Parser/UsingAssembly.Tests.ps1 | 68 +++++++++---------- 3 files changed, 33 insertions(+), 39 deletions(-) diff --git a/src/System.Management.Automation/engine/parser/Compiler.cs b/src/System.Management.Automation/engine/parser/Compiler.cs index 3fac9de74f..c9cc5a3f6d 100644 --- a/src/System.Management.Automation/engine/parser/Compiler.cs +++ b/src/System.Management.Automation/engine/parser/Compiler.cs @@ -2801,7 +2801,7 @@ namespace System.Management.Automation.Language { if (!string.IsNullOrEmpty(scriptFileName) && !Path.IsPathRooted(assemblyFileName)) { - assemblyFileName = Path.GetDirectoryName(scriptFileName) + "\\" + assemblyFileName; + assemblyFileName = Path.Combine(Path.GetDirectoryName(scriptFileName), assemblyFileName); } if (File.Exists(assemblyFileName)) diff --git a/src/System.Management.Automation/engine/parser/Parser.cs b/src/System.Management.Automation/engine/parser/Parser.cs index a21fcc1aaf..45529b2de8 100644 --- a/src/System.Management.Automation/engine/parser/Parser.cs +++ b/src/System.Management.Automation/engine/parser/Parser.cs @@ -5133,7 +5133,7 @@ namespace System.Management.Automation.Language workingDirectory = Path.GetDirectoryName(scriptFileName); } - assemblyFileName = workingDirectory + @"\" + assemblyFileName; + assemblyFileName = Path.Combine(workingDirectory, assemblyFileName); } } catch diff --git a/test/powershell/Language/Parser/UsingAssembly.Tests.ps1 b/test/powershell/Language/Parser/UsingAssembly.Tests.ps1 index caf7af1551..6ff7896041 100644 --- a/test/powershell/Language/Parser/UsingAssembly.Tests.ps1 +++ b/test/powershell/Language/Parser/UsingAssembly.Tests.ps1 @@ -44,24 +44,15 @@ public class ABC {} $err[0].ErrorId | Should -Be CannotLoadAssemblyWithUriSchema } - It "parse does not load the assembly" -Pending { + It "parse does not load the assembly '