From a10f1ab366296ceec95491161c7d5b02bb6c7206 Mon Sep 17 00:00:00 2001 From: Ruben Guerrero Date: Mon, 23 Oct 2023 18:28:01 -0700 Subject: [PATCH] Microsoft.WinGet.Client Any CPU (#3622) Move to Any CPU projects Moves Microsoft.WinGet.Client.Cmdlet and Microsoft.WinGet.Client.Engine to be Any CPU platform binaries. This is in preparation of PSResourceGet (aka PowerShellGet v3) release and addresses #3501 as $env:PROCESSOR_ARCHITECTURE is not an allowed variable in a psd1. Handle server disconnection Before, we had a static PackageManager object for OOP calls. In the scenario where winget is upgraded, this object will be disconnected, and one would have to close its PowerShell 7 session and open a new one to keep using the cmdlets. This PR creates a wrapper that handles disconnections. Windows PowerShell support Correctly throw NotSupported exception for cmdlets that use winget's COM APIs. For this I had to track down all the types being loaded per command and make sure they get loaded after the constructor of each one. This resulted in some weird cases that I need to pass a string instead of an enum in the virtual methods of some base classes. Fix issue where Microsoft.Win32.Registry.dll was missing. Add Pester tests specifically for Windows PowerShell Expected Layout Microsoft.WinGet.Client\ Format.ps1xml Microsoft.WinGet.Client.psd1 net48\ Microsoft.Win32.Registry.dll Microsoft.WinGet.Client.Cmdlets.dll Microsoft.WinGet.Client.Engine.dll Microsoft.WinGet.SharedLib.dll Newtonsoft.Json.dll Octokit.dll net6.0-windows10.0.22000.0\ Microsoft.WinGet.Client.Cmdlets.dll DirectDependencies\ Microsoft.WinGet.Client.Engine.dll SharedDependencies\ Microsoft.Windows.SDK.NET.dll Microsoft.WinGet.SharedLib.dll Newtonsoft.Json.dll Octokit.dll WinRT.Runtime.dll x64\ Microsoft.Management.Deployment.dll Microsoft.Management.Deployment.winmd WindowsPackageManager.dll winrtact.dll x86\ Microsoft.Management.Deployment.dll Microsoft.Management.Deployment.winmd WindowsPackageManager.dll winrtact.dll I didn't add the native binaries in the Windows PowerShell because they will never be loaded. Additional changes: Remove unnecessary AnyCpu build in AppInstallerCLI.sln Fully remove Microsoft.WinGet.Client tests from AppInstallerCLIE2ETests in favor of Pester tests. Improve Initialize-LocalWinGetModules.ps1 for local development. You can now specify which module to initialize. --- .github/actions/spelling/expect.txt | 2 + azure-pipelines.yml | 49 ++- src/AppInstallerCLI.sln | 368 +++--------------- .../Helpers/TestCommon.cs | 18 +- .../Helpers/TestSetup.cs | 6 - .../PowerShell/PowerShellHost.cs | 11 +- .../PowerShell/WinGetClientModule.cs | 102 ----- ...osoft.Management.Deployment.InProc.vcxproj | 4 + .../Acl/WinGetAssemblyLoadContext.cs | 20 +- .../Cmdlets/FindPackageCmdlet.cs | 29 +- .../Cmdlets/GetPackageCmdlet.cs | 27 +- .../Cmdlets/InstallPackageCmdlet.cs | 41 +- .../Cmdlets/UninstallPackageCmdlet.cs | 27 +- .../Cmdlets/UpdatePackageCmdlet.cs | 35 +- .../Microsoft.WinGet.Client.Cmdlets.csproj | 76 +--- .../Commands/Common/FinderCommand.cs | 49 +-- .../Commands/Common/FinderExtendedCommand.cs | 5 +- .../Commands/Common/InstallCommand.cs | 15 +- ...mand.cs => ManagementDeploymentCommand.cs} | 32 +- .../Commands/Common/PackageCommand.cs | 24 +- .../Commands/FinderPackageCommand.cs | 20 +- .../Commands/InstallerPackageCommand.cs | 72 ++-- .../Commands/SourceCommand.cs | 9 +- .../Commands/UninstallPackageCommand.cs | 32 +- .../Common/ErrorCode.cs | 12 +- .../WindowsPowerShellNotSupported.cs | 27 ++ ...tory.cs => ManagementDeploymentFactory.cs} | 49 ++- .../Helpers/PackageManagerWrapper.cs | 140 +++++++ .../Microsoft.WinGet.Client.Engine.csproj | 73 +--- .../ModuleFiles/Microsoft.WinGet.Client.psd1 | 20 +- .../Acl/CustomAssemblyLoadContext.cs | 19 +- ...rosoft.WinGet.Configuration.Cmdlets.csproj | 36 -- .../scripts/Initialize-LocalWinGetModules.ps1 | 188 +++++++-- .../tests/Microsoft.WinGet.Client.Tests.ps1 | 138 ++++++- src/PowerShell/tests/RunTests.ps1 | 7 +- 35 files changed, 863 insertions(+), 919 deletions(-) delete mode 100644 src/AppInstallerCLIE2ETests/PowerShell/WinGetClientModule.cs rename src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/{ClientCommand.cs => ManagementDeploymentCommand.cs} (63%) create mode 100644 src/PowerShell/Microsoft.WinGet.Client.Engine/Exceptions/WindowsPowerShellNotSupported.cs rename src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/{ComObjectFactory.cs => ManagementDeploymentFactory.cs} (83%) create mode 100644 src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/PackageManagerWrapper.cs diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt index 02702b9cfd..21a2a92f26 100644 --- a/.github/actions/spelling/expect.txt +++ b/.github/actions/spelling/expect.txt @@ -333,6 +333,7 @@ objbase objidl ofile ools +oop OPTOUT osfhandle Outptr @@ -476,6 +477,7 @@ TOptions TProgress transitioning TResult +TReturn trimstart TState TStatus diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5b92e4a54f..38908034b7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -344,11 +344,34 @@ jobs: condition: succeededOrFailed() - task: CopyFiles@2 - displayName: 'Copy PowerShell Module Files' + displayName: 'Copy native binaries for Microsoft.WinGet.Client' inputs: - SourceFolder: '$(buildOutDir)\PowerShell' - TargetFolder: '$(artifactsDir)\PowerShell' - condition: succeededOrFailed() + SourceFolder: $(buildOutDir) + Contents: | + Microsoft.Management.Deployment.InProc\Microsoft.Management.Deployment.dll + Microsoft.Management.Deployment\Microsoft.Management.Deployment.winmd + WindowsPackageManager\WindowsPackageManager.dll + UndockedRegFreeWinRT\winrtact.dll + TargetFolder: $(buildOutDirAnyCpu)\PowerShell\Microsoft.WinGet.Client\net6.0-windows10.0.22000.0\SharedDependencies\$(BuildPlatform) + flattenFolders: true + + - task: CopyFiles@2 + displayName: 'Copy native binaries for Microsoft.WinGet.Configuration' + inputs: + SourceFolder: $(buildOutDir) + Contents: | + Microsoft.Management.Configuration\Microsoft.Management.Configuration.dll + TargetFolder: $(buildOutDirAnyCpu)\PowerShell\Microsoft.WinGet.Configuration\SharedDependencies\$(BuildPlatform) + flattenFolders: true + + - task: CopyFiles@2 + displayName: 'Copy managed binaries for Microsoft.WinGet.Configuration in arch specific' + inputs: + SourceFolder: $(buildOutDirAnyCpu) + Contents: | + Microsoft.Management.Configuration.Projection\net6.0-windows10.0.19041.0\Microsoft.Management.Configuration.Projection.dll + TargetFolder: $(buildOutDirAnyCpu)\PowerShell\Microsoft.WinGet.Configuration\SharedDependencies\$(BuildPlatform) + flattenFolders: true - task: CopyFiles@2 displayName: 'Copy PowerShell AnyCPU Module Files' @@ -444,14 +467,28 @@ jobs: - pwsh: .\RunTests.ps1 -testModulesPath $(Build.ArtifactStagingDirectory) -outputPath $(Pipeline.Workspace)\PesterTest -packageLayoutPath $(Pipeline.Workspace)\Build.x64release\DevPackage workingDirectory: $(Build.SourcesDirectory)\src\PowerShell\tests\ - displayName: Run Tests + displayName: Run PowerShell 7 Tests + + - powershell: .\RunTests.ps1 -testModulesPath $(Build.ArtifactStagingDirectory) -outputPath $(Pipeline.Workspace)\WPPesterTest + workingDirectory: $(Build.SourcesDirectory)\src\PowerShell\tests\ + displayName: Run Windows PowerShell Tests + condition: succeededOrFailed() - task: PublishTestResults@2 - displayName: Publish Pester Test Results + displayName: Publish Pester Test Results PowerShell 7 inputs: testResultsFormat: 'NUnit' testResultsFiles: '$(Pipeline.Workspace)\PesterTest\Test*.xml' failTaskOnFailedTests: true + condition: succeededOrFailed() + + - task: PublishTestResults@2 + displayName: Publish Pester Test Results Windows PowerShell + inputs: + testResultsFormat: 'NUnit' + testResultsFiles: '$(Pipeline.Workspace)\WPPesterTest\Test*.xml' + failTaskOnFailedTests: true + condition: succeededOrFailed() - task: PublishPipelineArtifact@1 displayName: Publish PowerShell Module Artifacts diff --git a/src/AppInstallerCLI.sln b/src/AppInstallerCLI.sln index 924fc183e5..138174f68e 100644 --- a/src/AppInstallerCLI.sln +++ b/src/AppInstallerCLI.sln @@ -204,8 +204,6 @@ Global EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|Any CPU.Deploy.0 = Debug|Any CPU {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|ARM64.ActiveCfg = Debug|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|ARM64.Build.0 = Debug|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|ARM64.Deploy.0 = Debug|ARM64 @@ -216,20 +214,14 @@ Global {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|x86.Build.0 = Debug|x86 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|x86.Deploy.0 = Debug|x86 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Fuzzing|Any CPU.ActiveCfg = Release|Any CPU - {6AA3791A-0713-4548-A357-87A323E7AC3A}.Fuzzing|Any CPU.Build.0 = Release|Any CPU - {6AA3791A-0713-4548-A357-87A323E7AC3A}.Fuzzing|Any CPU.Deploy.0 = Release|Any CPU {6AA3791A-0713-4548-A357-87A323E7AC3A}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Fuzzing|x64.ActiveCfg = Release|x64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Fuzzing|x86.ActiveCfg = Release|x86 {6AA3791A-0713-4548-A357-87A323E7AC3A}.PowerShell|Any CPU.ActiveCfg = Release|Any CPU - {6AA3791A-0713-4548-A357-87A323E7AC3A}.PowerShell|Any CPU.Build.0 = Release|Any CPU - {6AA3791A-0713-4548-A357-87A323E7AC3A}.PowerShell|Any CPU.Deploy.0 = Release|Any CPU {6AA3791A-0713-4548-A357-87A323E7AC3A}.PowerShell|ARM64.ActiveCfg = Release|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.PowerShell|x64.ActiveCfg = Release|x64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.PowerShell|x86.ActiveCfg = Release|x86 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|Any CPU.Build.0 = Release|Any CPU - {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|Any CPU.Deploy.0 = Release|Any CPU {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|ARM64.ActiveCfg = Release|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|ARM64.Build.0 = Release|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|ARM64.Deploy.0 = Release|ARM64 @@ -240,13 +232,10 @@ Global {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|x86.Build.0 = Release|x86 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|x86.Deploy.0 = Release|x86 {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|Any CPU.ActiveCfg = Release|Any CPU - {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|Any CPU.Build.0 = Release|Any CPU - {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|Any CPU.Deploy.0 = Release|Any CPU {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|x64.ActiveCfg = Release|x64 {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|x86.ActiveCfg = Release|x86 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|Any CPU.ActiveCfg = Debug|x64 - {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|Any CPU.Build.0 = Debug|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|ARM64.ActiveCfg = Debug|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|ARM64.Build.0 = Debug|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|x64.ActiveCfg = Debug|x64 @@ -254,17 +243,14 @@ Global {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|x86.ActiveCfg = Debug|Win32 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|x86.Build.0 = Debug|Win32 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Fuzzing|Any CPU.Build.0 = Release|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Fuzzing|x64.ActiveCfg = Release|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Fuzzing|x86.ActiveCfg = Release|Win32 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.PowerShell|Any CPU.Build.0 = Release|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.PowerShell|ARM64.ActiveCfg = Release|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.PowerShell|x64.ActiveCfg = Release|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.PowerShell|x86.ActiveCfg = Release|Win32 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|Any CPU.ActiveCfg = Release|x64 - {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|Any CPU.Build.0 = Release|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|ARM64.ActiveCfg = Release|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|ARM64.Build.0 = Release|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|x64.ActiveCfg = Release|x64 @@ -272,12 +258,10 @@ Global {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|x86.ActiveCfg = Release|Win32 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|x86.Build.0 = Release|Win32 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|Any CPU.Build.0 = Release|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|x64.ActiveCfg = Release|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|x86.ActiveCfg = Release|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|Any CPU.ActiveCfg = Debug|x64 - {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|Any CPU.Build.0 = Debug|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|ARM64.ActiveCfg = Debug|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|ARM64.Build.0 = Debug|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|x64.ActiveCfg = Debug|x64 @@ -285,12 +269,10 @@ Global {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|x86.ActiveCfg = Debug|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|x86.Build.0 = Debug|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Fuzzing|Any CPU.ActiveCfg = ReleaseStatic|x64 - {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Fuzzing|Any CPU.Build.0 = ReleaseStatic|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Fuzzing|x64.ActiveCfg = Release|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Fuzzing|x86.ActiveCfg = Release|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.PowerShell|Any CPU.ActiveCfg = ReleaseStatic|x64 - {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.PowerShell|Any CPU.Build.0 = ReleaseStatic|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -298,7 +280,6 @@ Global {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|Any CPU.ActiveCfg = Release|x64 - {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|Any CPU.Build.0 = Release|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|ARM64.ActiveCfg = Release|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|ARM64.Build.0 = Release|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|x64.ActiveCfg = Release|x64 @@ -306,7 +287,6 @@ Global {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|x86.ActiveCfg = Release|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|x86.Build.0 = Release|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|Any CPU.Build.0 = Release|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|ARM64.Build.0 = Release|ARM64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|x64.ActiveCfg = Release|x64 @@ -314,36 +294,30 @@ Global {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|x86.ActiveCfg = Release|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|x86.Build.0 = Release|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|Any CPU.ActiveCfg = Debug|x64 - {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|Any CPU.Build.0 = Debug|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|ARM64.ActiveCfg = Debug|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|x64.ActiveCfg = Debug|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|x64.Build.0 = Debug|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|x86.ActiveCfg = Debug|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|x86.Build.0 = Debug|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Fuzzing|Any CPU.Build.0 = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Fuzzing|ARM64.ActiveCfg = Release|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Fuzzing|x64.ActiveCfg = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Fuzzing|x86.ActiveCfg = Release|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.PowerShell|Any CPU.Build.0 = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.PowerShell|ARM64.ActiveCfg = Release|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.PowerShell|x64.ActiveCfg = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.PowerShell|x86.ActiveCfg = Release|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|Any CPU.ActiveCfg = Release|x64 - {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|Any CPU.Build.0 = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|ARM64.ActiveCfg = Release|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x64.ActiveCfg = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x64.Build.0 = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x86.ActiveCfg = Release|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x86.Build.0 = Release|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|Any CPU.Build.0 = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|ARM64.ActiveCfg = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|x64.ActiveCfg = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|x86.ActiveCfg = Release|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|Any CPU.ActiveCfg = Debug|x64 - {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|Any CPU.Build.0 = Debug|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|ARM64.ActiveCfg = Debug|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|ARM64.Build.0 = Debug|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|x64.ActiveCfg = Debug|x64 @@ -351,12 +325,10 @@ Global {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|x86.ActiveCfg = Debug|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|x86.Build.0 = Debug|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Fuzzing|Any CPU.ActiveCfg = ReleaseStatic|x64 - {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Fuzzing|Any CPU.Build.0 = ReleaseStatic|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Fuzzing|x64.ActiveCfg = Release|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Fuzzing|x86.ActiveCfg = Release|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.PowerShell|Any CPU.ActiveCfg = ReleaseStatic|x64 - {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.PowerShell|Any CPU.Build.0 = ReleaseStatic|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -364,7 +336,6 @@ Global {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|Any CPU.ActiveCfg = Release|x64 - {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|Any CPU.Build.0 = Release|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|ARM64.ActiveCfg = Release|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|ARM64.Build.0 = Release|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|x64.ActiveCfg = Release|x64 @@ -372,7 +343,6 @@ Global {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|x86.ActiveCfg = Release|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|x86.Build.0 = Release|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|Any CPU.Build.0 = Release|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|ARM64.Build.0 = Release|ARM64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|x64.ActiveCfg = Release|x64 @@ -380,7 +350,6 @@ Global {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|x86.ActiveCfg = Release|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|x86.Build.0 = Release|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|Any CPU.ActiveCfg = Debug|x64 - {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|Any CPU.Build.0 = Debug|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM64.ActiveCfg = Debug|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM64.Build.0 = Debug|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|x64.ActiveCfg = Debug|x64 @@ -388,13 +357,11 @@ Global {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|x86.ActiveCfg = Debug|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|x86.Build.0 = Debug|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|x64 - {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|Any CPU.Build.0 = Fuzzing|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|x64.ActiveCfg = Fuzzing|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|x64.Build.0 = Fuzzing|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Fuzzing|x86.ActiveCfg = Release|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.PowerShell|Any CPU.Build.0 = Release|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -402,7 +369,6 @@ Global {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|Any CPU.ActiveCfg = Release|x64 - {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|Any CPU.Build.0 = Release|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|ARM64.ActiveCfg = Release|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|ARM64.Build.0 = Release|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x64.ActiveCfg = Release|x64 @@ -410,7 +376,6 @@ Global {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x86.ActiveCfg = Release|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x86.Build.0 = Release|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|Any CPU.Build.0 = Release|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|ARM64.Build.0 = Release|ARM64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|x64.ActiveCfg = Release|x64 @@ -418,7 +383,6 @@ Global {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|x86.ActiveCfg = Release|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|x86.Build.0 = Release|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|Any CPU.ActiveCfg = Debug|x64 - {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|Any CPU.Build.0 = Debug|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|ARM64.ActiveCfg = Debug|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|ARM64.Build.0 = Debug|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|x64.ActiveCfg = Debug|x64 @@ -426,13 +390,11 @@ Global {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|x86.ActiveCfg = Debug|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|x86.Build.0 = Debug|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|x64 - {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|Any CPU.Build.0 = Fuzzing|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|x64.ActiveCfg = Fuzzing|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|x64.Build.0 = Fuzzing|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Fuzzing|x86.ActiveCfg = Release|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.PowerShell|Any CPU.Build.0 = Release|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -440,7 +402,6 @@ Global {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|Any CPU.ActiveCfg = Release|x64 - {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|Any CPU.Build.0 = Release|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|ARM64.ActiveCfg = Release|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|ARM64.Build.0 = Release|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|x64.ActiveCfg = Release|x64 @@ -448,7 +409,6 @@ Global {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|x86.ActiveCfg = Release|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|x86.Build.0 = Release|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|Any CPU.Build.0 = Release|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|ARM64.Build.0 = Release|ARM64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|x64.ActiveCfg = Release|x64 @@ -456,7 +416,6 @@ Global {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|x86.ActiveCfg = Release|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|x86.Build.0 = Release|Win32 {FB313532-38B0-4676-9303-AB200AA13576}.Debug|Any CPU.ActiveCfg = Debug|x64 - {FB313532-38B0-4676-9303-AB200AA13576}.Debug|Any CPU.Build.0 = Debug|x64 {FB313532-38B0-4676-9303-AB200AA13576}.Debug|ARM64.ActiveCfg = Debug|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.Debug|ARM64.Build.0 = Debug|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.Debug|x64.ActiveCfg = Debug|x64 @@ -464,17 +423,14 @@ Global {FB313532-38B0-4676-9303-AB200AA13576}.Debug|x86.ActiveCfg = Debug|Win32 {FB313532-38B0-4676-9303-AB200AA13576}.Debug|x86.Build.0 = Debug|Win32 {FB313532-38B0-4676-9303-AB200AA13576}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {FB313532-38B0-4676-9303-AB200AA13576}.Fuzzing|Any CPU.Build.0 = Release|x64 {FB313532-38B0-4676-9303-AB200AA13576}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.Fuzzing|x64.ActiveCfg = Release|x64 {FB313532-38B0-4676-9303-AB200AA13576}.Fuzzing|x86.ActiveCfg = Release|Win32 {FB313532-38B0-4676-9303-AB200AA13576}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {FB313532-38B0-4676-9303-AB200AA13576}.PowerShell|Any CPU.Build.0 = Release|x64 {FB313532-38B0-4676-9303-AB200AA13576}.PowerShell|ARM64.ActiveCfg = Release|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.PowerShell|x64.ActiveCfg = Release|x64 {FB313532-38B0-4676-9303-AB200AA13576}.PowerShell|x86.ActiveCfg = Release|Win32 {FB313532-38B0-4676-9303-AB200AA13576}.Release|Any CPU.ActiveCfg = Release|x64 - {FB313532-38B0-4676-9303-AB200AA13576}.Release|Any CPU.Build.0 = Release|x64 {FB313532-38B0-4676-9303-AB200AA13576}.Release|ARM64.ActiveCfg = Release|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.Release|ARM64.Build.0 = Release|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.Release|x64.ActiveCfg = Release|x64 @@ -482,12 +438,10 @@ Global {FB313532-38B0-4676-9303-AB200AA13576}.Release|x86.ActiveCfg = Release|Win32 {FB313532-38B0-4676-9303-AB200AA13576}.Release|x86.Build.0 = Release|Win32 {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|Any CPU.Build.0 = Release|x64 {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|x64.ActiveCfg = Release|x64 {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|x86.ActiveCfg = Release|Win32 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|Any CPU.ActiveCfg = Debug|x64 - {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|Any CPU.Build.0 = Debug|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|ARM64.ActiveCfg = Debug|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|ARM64.Build.0 = Debug|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|x64.ActiveCfg = Debug|x64 @@ -495,17 +449,14 @@ Global {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|x86.ActiveCfg = Debug|Win32 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|x86.Build.0 = Debug|Win32 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {6CB84692-5994-407D-B9BD-9216AF77FE83}.Fuzzing|Any CPU.Build.0 = Release|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Fuzzing|x64.ActiveCfg = Release|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Fuzzing|x86.ActiveCfg = Release|Win32 {6CB84692-5994-407D-B9BD-9216AF77FE83}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {6CB84692-5994-407D-B9BD-9216AF77FE83}.PowerShell|Any CPU.Build.0 = Release|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.PowerShell|ARM64.ActiveCfg = Release|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.PowerShell|x64.ActiveCfg = Release|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.PowerShell|x86.ActiveCfg = Release|Win32 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|Any CPU.ActiveCfg = Release|x64 - {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|Any CPU.Build.0 = Release|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|ARM64.ActiveCfg = Release|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|ARM64.Build.0 = Release|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|x64.ActiveCfg = Release|x64 @@ -513,42 +464,34 @@ Global {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|x86.ActiveCfg = Release|Win32 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|x86.Build.0 = Release|Win32 {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|Any CPU.Build.0 = Release|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|x64.ActiveCfg = Release|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|x86.ActiveCfg = Release|Win32 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|Any CPU.ActiveCfg = Debug|x64 - {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|Any CPU.Build.0 = Debug|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|ARM64.ActiveCfg = Debug|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|x64.ActiveCfg = Debug|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|x64.Build.0 = Debug|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|x86.ActiveCfg = Debug|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|x86.Build.0 = Debug|x86 - {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Fuzzing|Any CPU.ActiveCfg = TestOnly|x64 - {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Fuzzing|Any CPU.Build.0 = TestOnly|x64 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Fuzzing|Any CPU.ActiveCfg = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Fuzzing|ARM64.ActiveCfg = Release|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Fuzzing|x64.ActiveCfg = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Fuzzing|x86.ActiveCfg = Release|x86 - {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.PowerShell|Any CPU.ActiveCfg = TestOnly|x64 - {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.PowerShell|Any CPU.Build.0 = TestOnly|x64 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.PowerShell|Any CPU.ActiveCfg = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.PowerShell|ARM64.ActiveCfg = Release|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.PowerShell|x64.ActiveCfg = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.PowerShell|x86.ActiveCfg = Release|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|Any CPU.ActiveCfg = Release|x64 - {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|Any CPU.Build.0 = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|ARM64.ActiveCfg = Release|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|x64.ActiveCfg = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|x64.Build.0 = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|x86.ActiveCfg = Release|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|x86.Build.0 = Release|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|Any CPU.ActiveCfg = TestOnly|x64 - {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|Any CPU.Build.0 = TestOnly|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|ARM64.ActiveCfg = TestOnly|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|x64.ActiveCfg = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|x86.ActiveCfg = Release|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|Any CPU.Deploy.0 = Debug|Any CPU {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|ARM64.ActiveCfg = Debug|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|ARM64.Build.0 = Debug|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|ARM64.Deploy.0 = Debug|ARM64 @@ -559,20 +502,14 @@ Global {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|x86.Build.0 = Debug|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|x86.Deploy.0 = Debug|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Fuzzing|Any CPU.ActiveCfg = Release|Any CPU - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Fuzzing|Any CPU.Build.0 = Release|Any CPU - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Fuzzing|Any CPU.Deploy.0 = Release|Any CPU {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Fuzzing|x64.ActiveCfg = Release|x64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Fuzzing|x86.ActiveCfg = Release|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.PowerShell|Any CPU.ActiveCfg = Release|Any CPU - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.PowerShell|Any CPU.Build.0 = Release|Any CPU - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.PowerShell|Any CPU.Deploy.0 = Release|Any CPU {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.PowerShell|ARM64.ActiveCfg = Release|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.PowerShell|x64.ActiveCfg = Release|x64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.PowerShell|x86.ActiveCfg = Release|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|Any CPU.Build.0 = Release|Any CPU - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|Any CPU.Deploy.0 = Release|Any CPU {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|ARM64.ActiveCfg = Release|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|ARM64.Build.0 = Release|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|ARM64.Deploy.0 = Release|ARM64 @@ -583,8 +520,6 @@ Global {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|x86.Build.0 = Release|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|x86.Deploy.0 = Release|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|Any CPU.ActiveCfg = Release|Any CPU - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|Any CPU.Build.0 = Release|Any CPU - {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|Any CPU.Deploy.0 = Release|Any CPU {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|x64.ActiveCfg = Release|x64 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|x86.ActiveCfg = Release|x86 @@ -609,36 +544,30 @@ Global {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.TestRelease|x64.ActiveCfg = Release {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.TestRelease|x86.ActiveCfg = Release {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|Any CPU.ActiveCfg = Debug|x64 - {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|Any CPU.Build.0 = Debug|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|ARM64.ActiveCfg = Debug|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|x64.ActiveCfg = Debug|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|x64.Build.0 = Debug|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|x86.ActiveCfg = Debug|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|x86.Build.0 = Debug|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Fuzzing|Any CPU.Build.0 = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Fuzzing|ARM64.ActiveCfg = Release|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Fuzzing|x64.ActiveCfg = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Fuzzing|x86.ActiveCfg = Release|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.PowerShell|Any CPU.Build.0 = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.PowerShell|ARM64.ActiveCfg = Release|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.PowerShell|x64.ActiveCfg = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.PowerShell|x86.ActiveCfg = Release|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|Any CPU.ActiveCfg = Release|x64 - {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|Any CPU.Build.0 = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|ARM64.ActiveCfg = Release|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|x64.ActiveCfg = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|x64.Build.0 = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|x86.ActiveCfg = Release|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|x86.Build.0 = Release|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|Any CPU.Build.0 = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|ARM64.ActiveCfg = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|x64.ActiveCfg = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|x86.ActiveCfg = Release|x86 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|Any CPU.ActiveCfg = Debug|x64 - {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|Any CPU.Build.0 = Debug|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|ARM64.ActiveCfg = Debug|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|ARM64.Build.0 = Debug|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|x64.ActiveCfg = Debug|x64 @@ -646,13 +575,11 @@ Global {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|x86.ActiveCfg = Debug|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|x86.Build.0 = Debug|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|x64 - {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|Any CPU.Build.0 = Fuzzing|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|x64.ActiveCfg = Fuzzing|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|x64.Build.0 = Fuzzing|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Fuzzing|x86.ActiveCfg = Release|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {82B39FDA-E86B-4713-A873-9D56DE00247A}.PowerShell|Any CPU.Build.0 = Release|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -660,7 +587,6 @@ Global {82B39FDA-E86B-4713-A873-9D56DE00247A}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|Any CPU.ActiveCfg = Release|x64 - {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|Any CPU.Build.0 = Release|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|ARM64.ActiveCfg = Release|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|ARM64.Build.0 = Release|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|x64.ActiveCfg = Release|x64 @@ -668,7 +594,6 @@ Global {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|x86.ActiveCfg = Release|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|x86.Build.0 = Release|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|Any CPU.Build.0 = Release|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|ARM64.Build.0 = Release|ARM64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|x64.ActiveCfg = Release|x64 @@ -676,75 +601,62 @@ Global {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|x86.ActiveCfg = Release|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|x86.Build.0 = Release|Win32 {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|Any CPU.ActiveCfg = Debug|x64 - {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|Any CPU.Build.0 = Debug|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|ARM64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|x64.ActiveCfg = Debug|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|x86.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|x64 - {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|Any CPU.Build.0 = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|ARM64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|x64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|x64.Build.0 = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Fuzzing|x86.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.PowerShell|Any CPU.ActiveCfg = Debug|x64 - {1622DA16-914F-4F57-A259-D5169003CC8C}.PowerShell|Any CPU.Build.0 = Debug|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.PowerShell|ARM64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.PowerShell|x64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.PowerShell|x86.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|Any CPU.ActiveCfg = Debug|x64 - {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|Any CPU.Build.0 = Debug|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|ARM64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|x64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|x86.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|Any CPU.ActiveCfg = Debug|x64 - {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|Any CPU.Build.0 = Debug|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|ARM64.ActiveCfg = Debug|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|x64.ActiveCfg = Debug|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|x86.ActiveCfg = Debug|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|Any CPU.ActiveCfg = Debug|x64 - {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|Any CPU.Build.0 = Debug|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|ARM64.ActiveCfg = Debug|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|x64.ActiveCfg = Debug|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|x64.Build.0 = Debug|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|x86.ActiveCfg = Debug|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|x86.Build.0 = Debug|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Fuzzing|Any CPU.Build.0 = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Fuzzing|ARM64.ActiveCfg = Release|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Fuzzing|x64.ActiveCfg = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Fuzzing|x86.ActiveCfg = Release|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.PowerShell|Any CPU.Build.0 = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.PowerShell|ARM64.ActiveCfg = Release|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.PowerShell|x64.ActiveCfg = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.PowerShell|x86.ActiveCfg = Release|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|Any CPU.ActiveCfg = Release|x64 - {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|Any CPU.Build.0 = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|ARM64.ActiveCfg = Release|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|x64.ActiveCfg = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|x64.Build.0 = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|x86.ActiveCfg = Release|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|x86.Build.0 = Release|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|Any CPU.Build.0 = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|ARM64.ActiveCfg = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|x64.ActiveCfg = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|x86.ActiveCfg = Release|x86 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|Any CPU.ActiveCfg = Debug|x64 - {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|Any CPU.Build.0 = Debug|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|ARM64.ActiveCfg = Debug|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|ARM64.Build.0 = Debug|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|x64.ActiveCfg = Debug|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|x64.Build.0 = Debug|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|x86.ActiveCfg = Debug|Win32 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|x86.Build.0 = Debug|Win32 - {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Fuzzing|Any CPU.ActiveCfg = ReleaseStatic|x64 - {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Fuzzing|Any CPU.Build.0 = ReleaseStatic|x64 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Fuzzing|Any CPU.ActiveCfg = Release|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Fuzzing|ARM64.ActiveCfg = Release|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Fuzzing|x64.ActiveCfg = Release|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Fuzzing|x86.ActiveCfg = Release|Win32 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.PowerShell|Any CPU.ActiveCfg = ReleaseStatic|x64 - {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.PowerShell|Any CPU.Build.0 = ReleaseStatic|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -752,7 +664,6 @@ Global {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|Any CPU.ActiveCfg = Release|x64 - {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|Any CPU.Build.0 = Release|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|ARM64.ActiveCfg = Release|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|ARM64.Build.0 = Release|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|x64.ActiveCfg = Release|x64 @@ -760,7 +671,6 @@ Global {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|x86.ActiveCfg = Release|Win32 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|x86.Build.0 = Release|Win32 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|Any CPU.Build.0 = Release|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|ARM64.Build.0 = Release|ARM64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|x64.ActiveCfg = Release|x64 @@ -768,7 +678,6 @@ Global {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|x86.ActiveCfg = Release|Win32 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|x86.Build.0 = Release|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|Any CPU.ActiveCfg = Debug|x64 - {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|Any CPU.Build.0 = Debug|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|ARM64.ActiveCfg = Debug|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|ARM64.Build.0 = Debug|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|x64.ActiveCfg = Debug|x64 @@ -776,12 +685,10 @@ Global {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|x86.ActiveCfg = Debug|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|x86.Build.0 = Debug|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Fuzzing|Any CPU.Build.0 = Release|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Fuzzing|x64.ActiveCfg = Debug|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Fuzzing|x86.ActiveCfg = Debug|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.PowerShell|Any CPU.Build.0 = Release|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -789,7 +696,6 @@ Global {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|Any CPU.ActiveCfg = Release|x64 - {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|Any CPU.Build.0 = Release|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|ARM64.ActiveCfg = Release|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|ARM64.Build.0 = Release|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|x64.ActiveCfg = Release|x64 @@ -797,7 +703,6 @@ Global {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|x86.ActiveCfg = Release|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|x86.Build.0 = Release|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|Any CPU.Build.0 = Release|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|ARM64.Build.0 = Release|ARM64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|x64.ActiveCfg = Release|x64 @@ -805,7 +710,6 @@ Global {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|x86.ActiveCfg = Release|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|x86.Build.0 = Release|Win32 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|Any CPU.ActiveCfg = Debug|x64 - {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|Any CPU.Build.0 = Debug|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|ARM64.ActiveCfg = Debug|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|ARM64.Build.0 = Debug|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|x64.ActiveCfg = Debug|x64 @@ -813,12 +717,10 @@ Global {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|x86.ActiveCfg = Debug|Win32 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|x86.Build.0 = Debug|Win32 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Fuzzing|Any CPU.Build.0 = Release|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Fuzzing|x64.ActiveCfg = Debug|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Fuzzing|x86.ActiveCfg = Debug|Win32 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.PowerShell|Any CPU.Build.0 = Release|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.PowerShell|ARM64.ActiveCfg = Release|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.PowerShell|ARM64.Build.0 = Release|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.PowerShell|x64.ActiveCfg = Release|x64 @@ -826,7 +728,6 @@ Global {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.PowerShell|x86.ActiveCfg = Release|Win32 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.PowerShell|x86.Build.0 = Release|Win32 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|Any CPU.ActiveCfg = Release|x64 - {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|Any CPU.Build.0 = Release|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|ARM64.ActiveCfg = Release|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|ARM64.Build.0 = Release|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|x64.ActiveCfg = Release|x64 @@ -834,12 +735,10 @@ Global {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|x86.ActiveCfg = Release|Win32 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|x86.Build.0 = Release|Win32 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|Any CPU.Build.0 = Release|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|x64.ActiveCfg = Release|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|x86.ActiveCfg = Release|Win32 {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|Any CPU.Build.0 = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|ARM64.ActiveCfg = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|ARM64.Build.0 = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -847,7 +746,6 @@ Global {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|x86.ActiveCfg = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Debug|x86.Build.0 = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Fuzzing|Any CPU.ActiveCfg = Release|Any CPU - {846FB88B-BF1B-4F33-9883-E589CEC99739}.Fuzzing|Any CPU.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Fuzzing|ARM64.ActiveCfg = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Fuzzing|ARM64.Build.0 = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Fuzzing|x64.ActiveCfg = Debug|Any CPU @@ -855,12 +753,10 @@ Global {846FB88B-BF1B-4F33-9883-E589CEC99739}.Fuzzing|x86.ActiveCfg = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Fuzzing|x86.Build.0 = Debug|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.PowerShell|Any CPU.ActiveCfg = Release|Any CPU - {846FB88B-BF1B-4F33-9883-E589CEC99739}.PowerShell|Any CPU.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.PowerShell|ARM64.ActiveCfg = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.PowerShell|x64.ActiveCfg = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.PowerShell|x86.ActiveCfg = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|Any CPU.ActiveCfg = Release|Any CPU - {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|Any CPU.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|ARM64.ActiveCfg = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|ARM64.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|x64.ActiveCfg = Release|Any CPU @@ -868,15 +764,10 @@ Global {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|x86.ActiveCfg = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.Release|x86.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|Any CPU.ActiveCfg = Release|Any CPU - {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|Any CPU.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|ARM64.ActiveCfg = Release|Any CPU - {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|ARM64.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|x64.ActiveCfg = Release|Any CPU - {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|x64.Build.0 = Release|Any CPU {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|x86.ActiveCfg = Release|Any CPU - {846FB88B-BF1B-4F33-9883-E589CEC99739}.TestRelease|x86.Build.0 = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|Any CPU.Build.0 = Debug|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|ARM64.ActiveCfg = Debug|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|ARM64.Build.0 = Debug|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -884,7 +775,6 @@ Global {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|x86.ActiveCfg = Debug|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Debug|x86.Build.0 = Debug|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Fuzzing|Any CPU.ActiveCfg = Release|Any CPU - {68808357-902B-406C-8C19-E8E26A69DE8A}.Fuzzing|Any CPU.Build.0 = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Fuzzing|ARM64.ActiveCfg = Debug|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Fuzzing|ARM64.Build.0 = Debug|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Fuzzing|x64.ActiveCfg = Debug|Any CPU @@ -892,12 +782,10 @@ Global {68808357-902B-406C-8C19-E8E26A69DE8A}.Fuzzing|x86.ActiveCfg = Debug|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Fuzzing|x86.Build.0 = Debug|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.PowerShell|Any CPU.ActiveCfg = Release|Any CPU - {68808357-902B-406C-8C19-E8E26A69DE8A}.PowerShell|Any CPU.Build.0 = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.PowerShell|ARM64.ActiveCfg = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.PowerShell|x64.ActiveCfg = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.PowerShell|x86.ActiveCfg = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|Any CPU.Build.0 = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|ARM64.ActiveCfg = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|ARM64.Build.0 = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|x64.ActiveCfg = Release|Any CPU @@ -905,15 +793,10 @@ Global {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|x86.ActiveCfg = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.Release|x86.Build.0 = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|Any CPU.ActiveCfg = Release|Any CPU - {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|Any CPU.Build.0 = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|ARM64.ActiveCfg = Release|Any CPU - {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|ARM64.Build.0 = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|x64.ActiveCfg = Release|Any CPU - {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|x64.Build.0 = Release|Any CPU {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|x86.ActiveCfg = Release|Any CPU - {68808357-902B-406C-8C19-E8E26A69DE8A}.TestRelease|x86.Build.0 = Release|Any CPU {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|Any CPU.ActiveCfg = Debug|x64 - {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|Any CPU.Build.0 = Debug|x64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|ARM64.ActiveCfg = Debug|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|ARM64.Build.0 = Debug|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|x64.ActiveCfg = Debug|x64 @@ -921,7 +804,6 @@ Global {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|x86.ActiveCfg = Debug|Win32 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Debug|x86.Build.0 = Debug|Win32 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Fuzzing|Any CPU.Build.0 = Release|x64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Fuzzing|ARM64.Build.0 = Debug|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Fuzzing|x64.ActiveCfg = Debug|x64 @@ -929,7 +811,6 @@ Global {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Fuzzing|x86.ActiveCfg = Debug|Win32 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Fuzzing|x86.Build.0 = Debug|Win32 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.PowerShell|Any CPU.Build.0 = Release|x64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -937,7 +818,6 @@ Global {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|Any CPU.ActiveCfg = Release|x64 - {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|Any CPU.Build.0 = Release|x64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|ARM64.ActiveCfg = Release|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|ARM64.Build.0 = Release|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|x64.ActiveCfg = Release|x64 @@ -945,7 +825,6 @@ Global {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|x86.ActiveCfg = Release|Win32 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.Release|x86.Build.0 = Release|Win32 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|Any CPU.Build.0 = Release|x64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|ARM64.Build.0 = Release|ARM64 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|x64.ActiveCfg = Release|x64 @@ -953,14 +832,12 @@ Global {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|x86.ActiveCfg = Release|Win32 {2046B5AF-666D-4CE8-8D3E-C32C57908A56}.TestRelease|x86.Build.0 = Release|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|Any CPU.ActiveCfg = Debug|x64 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|Any CPU.Build.0 = Debug|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|ARM64.ActiveCfg = Debug|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|x64.ActiveCfg = Debug|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|x64.Build.0 = Debug|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|x86.ActiveCfg = Debug|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Debug|x86.Build.0 = Debug|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Fuzzing|Any CPU.Build.0 = Release|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Fuzzing|ARM64.ActiveCfg = Debug|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Fuzzing|ARM64.Build.0 = Debug|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Fuzzing|x64.ActiveCfg = Debug|x64 @@ -968,7 +845,6 @@ Global {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Fuzzing|x86.ActiveCfg = Debug|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Fuzzing|x86.Build.0 = Debug|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.PowerShell|Any CPU.Build.0 = Release|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -976,72 +852,56 @@ Global {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|Any CPU.ActiveCfg = Release|x64 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|Any CPU.Build.0 = Release|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|ARM64.ActiveCfg = Release|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|x64.ActiveCfg = Release|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|x64.Build.0 = Release|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|x86.ActiveCfg = Release|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.Release|x86.Build.0 = Release|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|Any CPU.Build.0 = Release|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|ARM64.ActiveCfg = Debug|Win32 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|ARM64.Build.0 = Debug|Win32 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|x64.ActiveCfg = Release|x64 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|x64.Build.0 = Release|x64 {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|x86.ActiveCfg = Release|Win32 - {9AC3C6A4-1875-4D3E-BF9C-C31E81EFF6B4}.TestRelease|x86.Build.0 = Release|Win32 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|Any CPU.ActiveCfg = Debug|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|Any CPU.Build.0 = Debug|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|ARM64.Build.0 = Debug|ARM64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|x64.ActiveCfg = Debug|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|x64.Build.0 = Debug|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|x86.ActiveCfg = Debug|x86 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|x86.Build.0 = Debug|x86 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|Any CPU.Build.0 = Release|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|ARM64.Build.0 = Debug|ARM64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|x64.ActiveCfg = Debug|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|x86.ActiveCfg = Debug|x86 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|x86.Build.0 = Debug|x86 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|Any CPU.Build.0 = Release|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|ARM64.ActiveCfg = Release|ARM64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|x64.Build.0 = ReleaseStatic|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|x86.ActiveCfg = ReleaseStatic|x86 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|x86.Build.0 = ReleaseStatic|x86 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|Any CPU.ActiveCfg = Release|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|Any CPU.Build.0 = Release|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|ARM64.ActiveCfg = Release|ARM64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|ARM64.Build.0 = Release|ARM64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|x64.ActiveCfg = Release|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|x64.Build.0 = Release|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|x86.ActiveCfg = Release|x86 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|x86.Build.0 = Release|x86 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|Any CPU.Build.0 = Release|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|ARM64.ActiveCfg = Release|ARM64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|ARM64.Build.0 = Release|ARM64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|x64.ActiveCfg = Release|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|x64.Build.0 = Release|x64 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|x86.ActiveCfg = Release|x86 - {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|x86.Build.0 = Release|x86 + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|ARM64.Build.0 = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|x64.ActiveCfg = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|x64.Build.0 = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|x86.ActiveCfg = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Debug|x86.Build.0 = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|Any CPU.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|ARM64.ActiveCfg = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|ARM64.Build.0 = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|x64.ActiveCfg = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|x86.ActiveCfg = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Fuzzing|x86.Build.0 = Debug|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|Any CPU.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|ARM64.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|x64.ActiveCfg = ReleaseStatic|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|x64.Build.0 = ReleaseStatic|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|x86.ActiveCfg = ReleaseStatic|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.PowerShell|x86.Build.0 = ReleaseStatic|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|ARM64.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|ARM64.Build.0 = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|x64.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|x64.Build.0 = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|x86.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.Release|x86.Build.0 = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|Any CPU.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|ARM64.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|x64.ActiveCfg = Release|Any CPU + {463C0EF3-DF38-4C3D-8E7E-D4901E0CDC6C}.TestRelease|x86.ActiveCfg = Release|Any CPU {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|Any CPU.ActiveCfg = Debug|x64 - {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|Any CPU.Build.0 = Debug|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|ARM64.ActiveCfg = Debug|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|x64.ActiveCfg = Debug|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|x64.Build.0 = Debug|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|x86.ActiveCfg = Debug|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Debug|x86.Build.0 = Debug|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Fuzzing|Any CPU.ActiveCfg = TestOnly|x64 - {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Fuzzing|Any CPU.Build.0 = TestOnly|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Fuzzing|ARM64.ActiveCfg = Release|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Fuzzing|x64.ActiveCfg = Release|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Fuzzing|x86.ActiveCfg = Release|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.PowerShell|Any CPU.ActiveCfg = TestOnly|x64 - {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.PowerShell|Any CPU.Build.0 = TestOnly|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.PowerShell|ARM64.ActiveCfg = Release|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.PowerShell|ARM64.Build.0 = Release|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -1049,19 +909,16 @@ Global {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.PowerShell|x86.ActiveCfg = ReleaseStatic|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.PowerShell|x86.Build.0 = ReleaseStatic|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|Any CPU.ActiveCfg = Release|x64 - {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|Any CPU.Build.0 = Release|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|ARM64.ActiveCfg = Release|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|x64.ActiveCfg = Release|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|x64.Build.0 = Release|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|x86.ActiveCfg = Release|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.Release|x86.Build.0 = Release|x86 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.TestRelease|Any CPU.ActiveCfg = TestOnly|x64 - {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.TestRelease|Any CPU.Build.0 = TestOnly|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.TestRelease|ARM64.ActiveCfg = TestOnly|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.TestRelease|x64.ActiveCfg = Release|x64 {0B104762-5CD8-47EE-A904-71C1C3F84DCD}.TestRelease|x86.ActiveCfg = Release|x86 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|Any CPU.ActiveCfg = Debug|x64 - {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|Any CPU.Build.0 = Debug|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|ARM64.ActiveCfg = Debug|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|ARM64.Build.0 = Debug|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|x64.ActiveCfg = Debug|x64 @@ -1069,12 +926,10 @@ Global {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|x86.ActiveCfg = Debug|Win32 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Debug|x86.Build.0 = Debug|Win32 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Fuzzing|Any CPU.Build.0 = Release|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Fuzzing|x64.ActiveCfg = Debug|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Fuzzing|x86.ActiveCfg = Debug|Win32 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {31ED69A8-5310-45A9-953F-56C351D2C3E1}.PowerShell|Any CPU.Build.0 = Release|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -1082,7 +937,6 @@ Global {31ED69A8-5310-45A9-953F-56C351D2C3E1}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|Any CPU.ActiveCfg = Release|x64 - {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|Any CPU.Build.0 = Release|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|ARM64.ActiveCfg = Release|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|ARM64.Build.0 = Release|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|x64.ActiveCfg = Release|x64 @@ -1090,14 +944,12 @@ Global {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|x86.ActiveCfg = Release|Win32 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.Release|x86.Build.0 = Release|Win32 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|Any CPU.Build.0 = Release|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|x64.ActiveCfg = Release|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|x64.Build.0 = Release|x64 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|x86.ActiveCfg = Release|Win32 {31ED69A8-5310-45A9-953F-56C351D2C3E1}.TestRelease|x86.Build.0 = Release|Win32 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|Any CPU.ActiveCfg = Debug|x64 - {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|Any CPU.Build.0 = Debug|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|ARM64.ActiveCfg = Debug|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|ARM64.Build.0 = Debug|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|x64.ActiveCfg = Debug|x64 @@ -1105,12 +957,10 @@ Global {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|x86.ActiveCfg = Debug|Win32 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Debug|x86.Build.0 = Debug|Win32 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Fuzzing|Any CPU.Build.0 = Release|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Fuzzing|x64.ActiveCfg = Debug|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Fuzzing|x86.ActiveCfg = Debug|Win32 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.PowerShell|Any CPU.Build.0 = Release|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -1118,7 +968,6 @@ Global {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|Any CPU.ActiveCfg = Release|x64 - {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|Any CPU.Build.0 = Release|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|ARM64.ActiveCfg = Release|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|ARM64.Build.0 = Release|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|x64.ActiveCfg = Release|x64 @@ -1126,14 +975,12 @@ Global {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|x86.ActiveCfg = Release|Win32 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.Release|x86.Build.0 = Release|Win32 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|Any CPU.Build.0 = Release|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|x64.ActiveCfg = Release|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|x64.Build.0 = Release|x64 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|x86.ActiveCfg = Release|Win32 {787EC629-C0FB-4BA9-9746-4A82CD06B73E}.TestRelease|x86.Build.0 = Release|Win32 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|Any CPU.ActiveCfg = Debug|x64 - {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|Any CPU.Build.0 = Debug|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|ARM64.ActiveCfg = Debug|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|ARM64.Build.0 = Debug|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|x64.ActiveCfg = Debug|x64 @@ -1141,12 +988,10 @@ Global {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|x86.ActiveCfg = Debug|Win32 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Debug|x86.Build.0 = Debug|Win32 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Fuzzing|Any CPU.Build.0 = Release|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Fuzzing|x64.ActiveCfg = Debug|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Fuzzing|x86.ActiveCfg = Debug|Win32 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {BB14D603-F44E-4415-8770-BF3E13F4C17F}.PowerShell|Any CPU.Build.0 = Release|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -1154,7 +999,6 @@ Global {BB14D603-F44E-4415-8770-BF3E13F4C17F}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|Any CPU.ActiveCfg = Release|x64 - {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|Any CPU.Build.0 = Release|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|ARM64.ActiveCfg = Release|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|ARM64.Build.0 = Release|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|x64.ActiveCfg = Release|x64 @@ -1162,7 +1006,6 @@ Global {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|x86.ActiveCfg = Release|Win32 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.Release|x86.Build.0 = Release|Win32 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|Any CPU.Build.0 = Release|x64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|ARM64.Build.0 = Release|ARM64 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|x64.ActiveCfg = Release|x64 @@ -1170,7 +1013,6 @@ Global {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|x86.ActiveCfg = Release|Win32 {BB14D603-F44E-4415-8770-BF3E13F4C17F}.TestRelease|x86.Build.0 = Release|Win32 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|Any CPU.ActiveCfg = Debug|x64 - {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|Any CPU.Build.0 = Debug|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|ARM64.ActiveCfg = Debug|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|ARM64.Build.0 = Debug|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|x64.ActiveCfg = Debug|x64 @@ -1178,7 +1020,6 @@ Global {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|x86.ActiveCfg = Debug|Win32 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Debug|x86.Build.0 = Debug|Win32 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|x64 - {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|Any CPU.Build.0 = Fuzzing|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|ARM64.ActiveCfg = Fuzzing|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|ARM64.Build.0 = Fuzzing|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|x64.ActiveCfg = Fuzzing|x64 @@ -1186,7 +1027,6 @@ Global {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|x86.ActiveCfg = Fuzzing|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Fuzzing|x86.Build.0 = Fuzzing|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.PowerShell|Any CPU.Build.0 = Release|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -1194,7 +1034,6 @@ Global {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|Any CPU.ActiveCfg = Release|x64 - {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|Any CPU.Build.0 = Release|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|ARM64.ActiveCfg = Release|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|ARM64.Build.0 = Release|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|x64.ActiveCfg = Release|x64 @@ -1202,7 +1041,6 @@ Global {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|x86.ActiveCfg = Release|Win32 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.Release|x86.Build.0 = Release|Win32 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|Any CPU.Build.0 = Release|x64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|ARM64.Build.0 = Release|ARM64 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|x64.ActiveCfg = Release|x64 @@ -1210,7 +1048,6 @@ Global {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|x86.ActiveCfg = Release|Win32 {F3F6E699-BC5D-4950-8A05-E49DD9EB0D51}.TestRelease|x86.Build.0 = Release|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|Any CPU.ActiveCfg = Debug|x64 - {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|Any CPU.Build.0 = Debug|x64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|ARM64.ActiveCfg = Debug|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|ARM64.Build.0 = Debug|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|x64.ActiveCfg = Debug|x64 @@ -1218,7 +1055,6 @@ Global {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|x86.ActiveCfg = Debug|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Debug|x86.Build.0 = Debug|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {CA460806-5E41-4E97-9A3D-1D74B433B663}.Fuzzing|Any CPU.Build.0 = Release|x64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Fuzzing|ARM64.Build.0 = Debug|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Fuzzing|x64.ActiveCfg = Debug|x64 @@ -1226,7 +1062,6 @@ Global {CA460806-5E41-4E97-9A3D-1D74B433B663}.Fuzzing|x86.ActiveCfg = Debug|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Fuzzing|x86.Build.0 = Debug|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {CA460806-5E41-4E97-9A3D-1D74B433B663}.PowerShell|Any CPU.Build.0 = Release|x64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -1234,7 +1069,6 @@ Global {CA460806-5E41-4E97-9A3D-1D74B433B663}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|Any CPU.ActiveCfg = Release|x64 - {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|Any CPU.Build.0 = Release|x64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|ARM64.ActiveCfg = Release|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|ARM64.Build.0 = Release|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|x64.ActiveCfg = Release|x64 @@ -1242,7 +1076,6 @@ Global {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|x86.ActiveCfg = Release|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.Release|x86.Build.0 = Release|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|Any CPU.Build.0 = Release|x64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|ARM64.Build.0 = Release|ARM64 {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|x64.ActiveCfg = Release|x64 @@ -1250,7 +1083,6 @@ Global {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|x86.ActiveCfg = Release|Win32 {CA460806-5E41-4E97-9A3D-1D74B433B663}.TestRelease|x86.Build.0 = Release|Win32 {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|Any CPU.Build.0 = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|ARM64.ActiveCfg = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|ARM64.Build.0 = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -1258,7 +1090,6 @@ Global {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|x86.ActiveCfg = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Debug|x86.Build.0 = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Fuzzing|Any CPU.ActiveCfg = Release|Any CPU - {E8454BF1-2068-4513-A525-ABF55CC8742C}.Fuzzing|Any CPU.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Fuzzing|ARM64.ActiveCfg = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Fuzzing|ARM64.Build.0 = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Fuzzing|x64.ActiveCfg = Debug|Any CPU @@ -1266,7 +1097,6 @@ Global {E8454BF1-2068-4513-A525-ABF55CC8742C}.Fuzzing|x86.ActiveCfg = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Fuzzing|x86.Build.0 = Debug|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.PowerShell|Any CPU.ActiveCfg = Release|Any CPU - {E8454BF1-2068-4513-A525-ABF55CC8742C}.PowerShell|Any CPU.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.PowerShell|ARM64.Build.0 = ReleaseStatic|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.PowerShell|x64.ActiveCfg = ReleaseStatic|Any CPU @@ -1274,7 +1104,6 @@ Global {E8454BF1-2068-4513-A525-ABF55CC8742C}.PowerShell|x86.ActiveCfg = ReleaseStatic|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.PowerShell|x86.Build.0 = ReleaseStatic|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|Any CPU.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|ARM64.ActiveCfg = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|ARM64.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|x64.ActiveCfg = Release|Any CPU @@ -1282,7 +1111,6 @@ Global {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|x86.ActiveCfg = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.Release|x86.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|Any CPU.ActiveCfg = Release|Any CPU - {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|Any CPU.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|ARM64.ActiveCfg = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|ARM64.Build.0 = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|x64.ActiveCfg = Release|Any CPU @@ -1290,7 +1118,6 @@ Global {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|x86.ActiveCfg = Release|Any CPU {E8454BF1-2068-4513-A525-ABF55CC8742C}.TestRelease|x86.Build.0 = Release|Any CPU {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|Any CPU.ActiveCfg = Debug|x64 - {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|Any CPU.Build.0 = Debug|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|ARM64.ActiveCfg = Debug|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|ARM64.Build.0 = Debug|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|x64.ActiveCfg = Debug|x64 @@ -1298,7 +1125,6 @@ Global {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|x86.ActiveCfg = Debug|x86 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Debug|x86.Build.0 = Debug|x86 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Fuzzing|Any CPU.Build.0 = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Fuzzing|ARM64.ActiveCfg = Debug|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Fuzzing|ARM64.Build.0 = Debug|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Fuzzing|x64.ActiveCfg = Debug|x64 @@ -1306,12 +1132,10 @@ Global {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Fuzzing|x86.ActiveCfg = Debug|x86 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Fuzzing|x86.Build.0 = Debug|x86 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {EE43C990-7789-4A60-B077-BF0ED3D093A1}.PowerShell|Any CPU.Build.0 = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.PowerShell|ARM64.ActiveCfg = Release|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.PowerShell|x64.ActiveCfg = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.PowerShell|x86.ActiveCfg = Release|x86 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|Any CPU.ActiveCfg = Release|x64 - {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|Any CPU.Build.0 = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|ARM64.ActiveCfg = Release|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|ARM64.Build.0 = Release|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|x64.ActiveCfg = Release|x64 @@ -1319,15 +1143,10 @@ Global {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|x86.ActiveCfg = Release|x86 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.Release|x86.Build.0 = Release|x86 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|Any CPU.Build.0 = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|ARM64.ActiveCfg = Release|arm64 - {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|ARM64.Build.0 = Release|arm64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|x64.ActiveCfg = Release|x64 - {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|x64.Build.0 = Release|x64 {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|x86.ActiveCfg = Release|x86 - {EE43C990-7789-4A60-B077-BF0ED3D093A1}.TestRelease|x86.Build.0 = Release|x86 {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|Any CPU.Build.0 = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|ARM64.ActiveCfg = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|ARM64.Build.0 = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -1335,7 +1154,6 @@ Global {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|x86.ActiveCfg = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Debug|x86.Build.0 = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Fuzzing|Any CPU.ActiveCfg = Release|Any CPU - {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Fuzzing|Any CPU.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Fuzzing|ARM64.ActiveCfg = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Fuzzing|ARM64.Build.0 = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Fuzzing|x64.ActiveCfg = Debug|Any CPU @@ -1343,7 +1161,6 @@ Global {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Fuzzing|x86.ActiveCfg = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Fuzzing|x86.Build.0 = Debug|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.PowerShell|Any CPU.ActiveCfg = Release|Any CPU - {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.PowerShell|Any CPU.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.PowerShell|ARM64.Build.0 = ReleaseStatic|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.PowerShell|x64.ActiveCfg = ReleaseStatic|Any CPU @@ -1351,7 +1168,6 @@ Global {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.PowerShell|x86.ActiveCfg = ReleaseStatic|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.PowerShell|x86.Build.0 = ReleaseStatic|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|Any CPU.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|ARM64.ActiveCfg = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|ARM64.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|x64.ActiveCfg = Release|Any CPU @@ -1359,7 +1175,6 @@ Global {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|x86.ActiveCfg = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.Release|x86.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|Any CPU.ActiveCfg = Release|Any CPU - {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|Any CPU.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|ARM64.ActiveCfg = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|ARM64.Build.0 = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|x64.ActiveCfg = Release|Any CPU @@ -1367,7 +1182,6 @@ Global {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|x86.ActiveCfg = Release|Any CPU {71FA29AA-9035-468B-A11D-0F0B0F5D5AF4}.TestRelease|x86.Build.0 = Release|Any CPU {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|Any CPU.ActiveCfg = Debug|x64 - {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|Any CPU.Build.0 = Debug|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|ARM64.ActiveCfg = Debug|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|ARM64.Build.0 = Debug|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|x64.ActiveCfg = Debug|x64 @@ -1375,7 +1189,6 @@ Global {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|x86.ActiveCfg = Debug|x86 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Debug|x86.Build.0 = Debug|x86 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Fuzzing|Any CPU.Build.0 = Release|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Fuzzing|ARM64.ActiveCfg = Debug|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Fuzzing|ARM64.Build.0 = Debug|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Fuzzing|x64.ActiveCfg = Debug|x64 @@ -1383,12 +1196,10 @@ Global {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Fuzzing|x86.ActiveCfg = Debug|x86 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Fuzzing|x86.Build.0 = Debug|x86 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.PowerShell|Any CPU.Build.0 = Release|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.PowerShell|ARM64.ActiveCfg = Release|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.PowerShell|x64.ActiveCfg = Release|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.PowerShell|x86.ActiveCfg = Release|x86 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|Any CPU.ActiveCfg = Release|x64 - {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|Any CPU.Build.0 = Release|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|ARM64.ActiveCfg = Release|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|ARM64.Build.0 = Release|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|x64.ActiveCfg = Release|x64 @@ -1396,54 +1207,44 @@ Global {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|x86.ActiveCfg = Release|x86 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.Release|x86.Build.0 = Release|x86 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|Any CPU.Build.0 = Release|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|ARM64.ActiveCfg = Release|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|ARM64.Build.0 = Release|arm64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|x64.ActiveCfg = Release|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|x64.Build.0 = Release|x64 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|x86.ActiveCfg = Release|x86 {6597EB04-D105-49A7-A5A3-D27FE1DF895E}.TestRelease|x86.Build.0 = Release|x86 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|Any CPU.ActiveCfg = Debug|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|Any CPU.Build.0 = Debug|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|ARM64.Build.0 = Debug|ARM64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|x64.ActiveCfg = Debug|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|x64.Build.0 = Debug|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|x86.ActiveCfg = Debug|x86 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|x86.Build.0 = Debug|x86 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|Any CPU.Build.0 = Release|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|ARM64.Build.0 = Debug|ARM64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|x64.ActiveCfg = Debug|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|x64.Build.0 = Debug|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|x86.ActiveCfg = Debug|x86 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|x86.Build.0 = Debug|x86 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|Any CPU.Build.0 = Release|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|ARM64.ActiveCfg = Release|ARM64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|x64.Build.0 = ReleaseStatic|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|x86.ActiveCfg = ReleaseStatic|x86 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|x86.Build.0 = ReleaseStatic|x86 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|Any CPU.ActiveCfg = Release|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|Any CPU.Build.0 = Release|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|ARM64.ActiveCfg = Release|ARM64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|ARM64.Build.0 = Release|ARM64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|x64.ActiveCfg = Release|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|x64.Build.0 = Release|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|x86.ActiveCfg = Release|x86 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|x86.Build.0 = Release|x86 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|Any CPU.Build.0 = Release|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|ARM64.ActiveCfg = Release|ARM64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|ARM64.Build.0 = Release|ARM64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|x64.ActiveCfg = Release|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|x64.Build.0 = Release|x64 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|x86.ActiveCfg = Release|x86 - {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|x86.Build.0 = Release|x86 + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|ARM64.Build.0 = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|x64.ActiveCfg = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|x64.Build.0 = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|x86.ActiveCfg = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Debug|x86.Build.0 = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|Any CPU.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|ARM64.ActiveCfg = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|ARM64.Build.0 = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|x64.ActiveCfg = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|x64.Build.0 = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|x86.ActiveCfg = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Fuzzing|x86.Build.0 = Debug|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|Any CPU.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|ARM64.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|x64.ActiveCfg = ReleaseStatic|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|x64.Build.0 = ReleaseStatic|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|x86.ActiveCfg = ReleaseStatic|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.PowerShell|x86.Build.0 = ReleaseStatic|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|ARM64.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|ARM64.Build.0 = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|x64.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|x64.Build.0 = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|x86.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.Release|x86.Build.0 = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|Any CPU.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|ARM64.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|x64.ActiveCfg = Release|Any CPU + {1F56BECB-D65D-4BBA-8788-6671B251392A}.TestRelease|x86.ActiveCfg = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|Any CPU.Build.0 = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|ARM64.ActiveCfg = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|ARM64.Build.0 = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -1451,7 +1252,6 @@ Global {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|x86.ActiveCfg = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Debug|x86.Build.0 = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Fuzzing|Any CPU.ActiveCfg = ReleaseStatic|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.Fuzzing|Any CPU.Build.0 = ReleaseStatic|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Fuzzing|ARM64.ActiveCfg = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Fuzzing|ARM64.Build.0 = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Fuzzing|x64.ActiveCfg = Debug|Any CPU @@ -1459,14 +1259,12 @@ Global {167F634B-A3AD-494E-8E67-B888103E35FF}.Fuzzing|x86.ActiveCfg = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Fuzzing|x86.Build.0 = Debug|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.PowerShell|Any CPU.ActiveCfg = ReleaseStatic|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.PowerShell|Any CPU.Build.0 = ReleaseStatic|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.PowerShell|ARM64.ActiveCfg = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.PowerShell|x64.ActiveCfg = ReleaseStatic|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.PowerShell|x64.Build.0 = ReleaseStatic|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.PowerShell|x86.ActiveCfg = ReleaseStatic|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.PowerShell|x86.Build.0 = ReleaseStatic|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|Any CPU.Build.0 = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|ARM64.ActiveCfg = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|ARM64.Build.0 = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|x64.ActiveCfg = Release|Any CPU @@ -1474,15 +1272,10 @@ Global {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|x86.ActiveCfg = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.Release|x86.Build.0 = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|Any CPU.ActiveCfg = Release|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|Any CPU.Build.0 = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|ARM64.ActiveCfg = Release|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|ARM64.Build.0 = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|x64.ActiveCfg = Release|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|x64.Build.0 = Release|Any CPU {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|x86.ActiveCfg = Release|Any CPU - {167F634B-A3AD-494E-8E67-B888103E35FF}.TestRelease|x86.Build.0 = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|Any CPU.Build.0 = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|ARM64.ActiveCfg = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|ARM64.Build.0 = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -1490,7 +1283,6 @@ Global {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|x86.ActiveCfg = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Debug|x86.Build.0 = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Fuzzing|Any CPU.ActiveCfg = ReleaseStatic|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.Fuzzing|Any CPU.Build.0 = ReleaseStatic|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Fuzzing|ARM64.ActiveCfg = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Fuzzing|ARM64.Build.0 = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Fuzzing|x64.ActiveCfg = Debug|Any CPU @@ -1498,14 +1290,12 @@ Global {C54F80ED-B736-49B0-9BD3-662F57024D01}.Fuzzing|x86.ActiveCfg = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Fuzzing|x86.Build.0 = Debug|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.PowerShell|Any CPU.ActiveCfg = ReleaseStatic|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.PowerShell|Any CPU.Build.0 = ReleaseStatic|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.PowerShell|ARM64.ActiveCfg = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.PowerShell|x64.ActiveCfg = ReleaseStatic|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.PowerShell|x64.Build.0 = ReleaseStatic|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.PowerShell|x86.ActiveCfg = ReleaseStatic|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.PowerShell|x86.Build.0 = ReleaseStatic|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|Any CPU.Build.0 = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|ARM64.ActiveCfg = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|ARM64.Build.0 = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|x64.ActiveCfg = Release|Any CPU @@ -1513,15 +1303,10 @@ Global {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|x86.ActiveCfg = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.Release|x86.Build.0 = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|Any CPU.ActiveCfg = Release|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|Any CPU.Build.0 = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|ARM64.ActiveCfg = Release|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|ARM64.Build.0 = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|x64.ActiveCfg = Release|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|x64.Build.0 = Release|Any CPU {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|x86.ActiveCfg = Release|Any CPU - {C54F80ED-B736-49B0-9BD3-662F57024D01}.TestRelease|x86.Build.0 = Release|Any CPU {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|Any CPU.ActiveCfg = Debug|x64 - {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|Any CPU.Build.0 = Debug|x64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|ARM64.ActiveCfg = Debug|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|ARM64.Build.0 = Debug|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|x64.ActiveCfg = Debug|x64 @@ -1529,7 +1314,6 @@ Global {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|x86.ActiveCfg = Debug|Win32 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Debug|x86.Build.0 = Debug|Win32 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Fuzzing|Any CPU.ActiveCfg = Release|x64 - {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Fuzzing|Any CPU.Build.0 = Release|x64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Fuzzing|ARM64.ActiveCfg = ReleaseStatic|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Fuzzing|ARM64.Build.0 = ReleaseStatic|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Fuzzing|x64.ActiveCfg = ReleaseStatic|x64 @@ -1537,7 +1321,6 @@ Global {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Fuzzing|x86.ActiveCfg = Debug|Win32 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Fuzzing|x86.Build.0 = Debug|Win32 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.PowerShell|Any CPU.ActiveCfg = Release|x64 - {2268D5AD-7F2A-485A-8C4B-C574497514C9}.PowerShell|Any CPU.Build.0 = Release|x64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.PowerShell|ARM64.ActiveCfg = ReleaseStatic|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.PowerShell|ARM64.Build.0 = ReleaseStatic|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.PowerShell|x64.ActiveCfg = ReleaseStatic|x64 @@ -1545,7 +1328,6 @@ Global {2268D5AD-7F2A-485A-8C4B-C574497514C9}.PowerShell|x86.ActiveCfg = ReleaseStatic|Win32 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.PowerShell|x86.Build.0 = ReleaseStatic|Win32 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|Any CPU.ActiveCfg = Release|x64 - {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|Any CPU.Build.0 = Release|x64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|ARM64.ActiveCfg = Release|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|ARM64.Build.0 = Release|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|x64.ActiveCfg = Release|x64 @@ -1553,7 +1335,6 @@ Global {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|x86.ActiveCfg = Release|Win32 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.Release|x86.Build.0 = Release|Win32 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|Any CPU.ActiveCfg = Release|x64 - {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|Any CPU.Build.0 = Release|x64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|ARM64.ActiveCfg = Release|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|ARM64.Build.0 = Release|ARM64 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|x64.ActiveCfg = Release|x64 @@ -1561,7 +1342,6 @@ Global {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|x86.ActiveCfg = Release|Win32 {2268D5AD-7F2A-485A-8C4B-C574497514C9}.TestRelease|x86.Build.0 = Release|Win32 {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|Any CPU.Build.0 = Debug|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|ARM64.ActiveCfg = Debug|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|ARM64.Build.0 = Debug|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -1569,19 +1349,14 @@ Global {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|x86.ActiveCfg = Debug|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Debug|x86.Build.0 = Debug|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|Any CPU.ActiveCfg = Release|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|Any CPU.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|ARM64.ActiveCfg = Release|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|ARM64.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|x64.ActiveCfg = Release|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|x64.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|x86.ActiveCfg = Release|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Fuzzing|x86.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.PowerShell|Any CPU.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.PowerShell|ARM64.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.PowerShell|x64.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.PowerShell|x86.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|Any CPU.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|ARM64.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|ARM64.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|x64.ActiveCfg = Release|Any CPU @@ -1589,15 +1364,10 @@ Global {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|x86.ActiveCfg = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.Release|x86.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|Any CPU.ActiveCfg = Release|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|Any CPU.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|ARM64.ActiveCfg = Release|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|ARM64.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|x64.ActiveCfg = Release|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|x64.Build.0 = Release|Any CPU {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|x86.ActiveCfg = Release|Any CPU - {52EC37D6-088C-40D3-AD0B-BDE8F8DAF9EB}.TestRelease|x86.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|Any CPU.Build.0 = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|ARM64.ActiveCfg = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|ARM64.Build.0 = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -1605,15 +1375,10 @@ Global {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|x86.ActiveCfg = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Debug|x86.Build.0 = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|Any CPU.ActiveCfg = Debug|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|Any CPU.Build.0 = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|ARM64.ActiveCfg = Debug|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|ARM64.Build.0 = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|x64.ActiveCfg = Debug|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|x64.Build.0 = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|x86.ActiveCfg = Debug|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Fuzzing|x86.Build.0 = Debug|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.PowerShell|Any CPU.ActiveCfg = Release|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.PowerShell|Any CPU.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.PowerShell|ARM64.ActiveCfg = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.PowerShell|ARM64.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.PowerShell|x64.ActiveCfg = Release|Any CPU @@ -1621,7 +1386,6 @@ Global {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.PowerShell|x86.ActiveCfg = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.PowerShell|x86.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|Any CPU.ActiveCfg = Release|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|Any CPU.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|ARM64.ActiveCfg = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|ARM64.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|x64.ActiveCfg = Release|Any CPU @@ -1629,13 +1393,9 @@ Global {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|x86.ActiveCfg = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.Release|x86.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|Any CPU.ActiveCfg = Release|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|Any CPU.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|ARM64.ActiveCfg = Release|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|ARM64.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|x64.ActiveCfg = Release|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|x64.Build.0 = Release|Any CPU {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|x86.ActiveCfg = Release|Any CPU - {272B2B0E-40D4-4F0F-B187-519A6EF89B10}.TestRelease|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/AppInstallerCLIE2ETests/Helpers/TestCommon.cs b/src/AppInstallerCLIE2ETests/Helpers/TestCommon.cs index e437d02215..b8432f74c8 100644 --- a/src/AppInstallerCLIE2ETests/Helpers/TestCommon.cs +++ b/src/AppInstallerCLIE2ETests/Helpers/TestCommon.cs @@ -166,18 +166,6 @@ public static RunCommandResult RunCommandWithResult(string fileName, string args return result; } - /// - /// Run PowerShell Core command with result. - /// - /// Cmdlet to run. - /// Args. - /// Optional timeout. - /// Command result. - public static RunCommandResult RunPowerShellCoreCommandWithResult(string cmdlet, string args, int timeOut = 60000) - { - return RunCommandWithResult("pwsh.exe", $"-Command ipmo {TestSetup.Parameters.PowerShellModuleManifestPath}; {cmdlet} {args}", timeOut); - } - /// /// Get test file path. /// @@ -723,7 +711,7 @@ public static void EnsureModuleState(string moduleName, bool present, string rep ICollection e2eModule; bool isPresent = false; { - using var pwsh = new PowerShellHost(false); + using var pwsh = new PowerShellHost(); pwsh.AddModulePath($"{wingetModulePath};{customPath}"); e2eModule = pwsh.PowerShell.AddCommand("Get-Module").AddParameter("Name", moduleName).AddParameter("ListAvailable").Invoke(); @@ -763,7 +751,7 @@ public static void EnsureModuleState(string moduleName, bool present, string rep if (location == TestModuleLocation.CurrentUser || location == TestModuleLocation.AllUsers) { - using var pwsh = new PowerShellHost(false); + using var pwsh = new PowerShellHost(); pwsh.AddModulePath($"{wingetModulePath};{customPath}"); pwsh.PowerShell.AddCommand("Install-Module").AddParameter("Name", moduleName).AddParameter("Force"); @@ -788,7 +776,7 @@ public static void EnsureModuleState(string moduleName, bool present, string rep path = wingetModulePath; } - using var pwsh = new PowerShellHost(false); + using var pwsh = new PowerShellHost(); pwsh.AddModulePath($"{wingetModulePath};{customPath}"); pwsh.PowerShell.AddCommand("Save-Module").AddParameter("Name", moduleName).AddParameter("Path", path).AddParameter("Force"); diff --git a/src/AppInstallerCLIE2ETests/Helpers/TestSetup.cs b/src/AppInstallerCLIE2ETests/Helpers/TestSetup.cs index 3921a7ea32..a78a57c5ac 100644 --- a/src/AppInstallerCLIE2ETests/Helpers/TestSetup.cs +++ b/src/AppInstallerCLIE2ETests/Helpers/TestSetup.cs @@ -38,7 +38,6 @@ private TestSetup() this.StaticFileRootPath = this.InitializeDirectoryParam(Constants.StaticFileRootPathParameter, Path.GetTempPath()); - this.PowerShellModuleManifestPath = this.InitializeFileParam(Constants.PowerShellModulePathParameter); this.LocalServerCertPath = this.InitializeFileParam(Constants.LocalServerCertPathParameter); this.PackageCertificatePath = this.InitializeFileParam(Constants.PackageCertificatePathParameter); this.ExeInstallerPath = this.InitializeFileParam(Constants.ExeInstallerPathParameter); @@ -117,11 +116,6 @@ public static TestSetup Parameters /// public string PackageCertificatePath { get; } - /// - /// Gets the PowerShell module path. - /// - public string PowerShellModuleManifestPath { get; } - /// /// Gets a value indicating whether to skip creating test source. /// diff --git a/src/AppInstallerCLIE2ETests/PowerShell/PowerShellHost.cs b/src/AppInstallerCLIE2ETests/PowerShell/PowerShellHost.cs index 4684a0cc4d..91db986fb4 100644 --- a/src/AppInstallerCLIE2ETests/PowerShell/PowerShellHost.cs +++ b/src/AppInstallerCLIE2ETests/PowerShell/PowerShellHost.cs @@ -26,20 +26,11 @@ internal class PowerShellHost : IDisposable /// /// Initializes a new instance of the class. /// - /// If to import modules. - public PowerShellHost(bool importModule = true) + public PowerShellHost() { InitialSessionState initialSessionState = InitialSessionState.CreateDefault(); initialSessionState.ExecutionPolicy = ExecutionPolicy.Unrestricted; - if (importModule) - { - initialSessionState.ImportPSModule(new string[] - { - TestSetup.Parameters.PowerShellModuleManifestPath, - }); - } - this.runspace = RunspaceFactory.CreateRunspace(initialSessionState); this.runspace.Open(); this.VerifyErrorState(); diff --git a/src/AppInstallerCLIE2ETests/PowerShell/WinGetClientModule.cs b/src/AppInstallerCLIE2ETests/PowerShell/WinGetClientModule.cs deleted file mode 100644 index 44810db550..0000000000 --- a/src/AppInstallerCLIE2ETests/PowerShell/WinGetClientModule.cs +++ /dev/null @@ -1,102 +0,0 @@ -// ----------------------------------------------------------------------------- -// -// Copyright (c) Microsoft Corporation. Licensed under the MIT License. -// -// ----------------------------------------------------------------------------- - -namespace AppInstallerCLIE2ETests.PowerShell -{ - using System; - using System.Diagnostics; - using System.Linq; - using AppInstallerCLIE2ETests.Helpers; - using NUnit.Framework; - - /// - /// Basic E2E smoke tests for verifying the behavior of the PowerShell Microsoft.WinGet.Client module cmdlets. - /// Running the x86 PowerShell Module requires PowerShell Core (x86). These tests currently only target PowerShell Core (x64) - /// in the CI/CD pipeline. - /// - [Category("PowerShell")] - public class WinGetClientModule - { - /// - /// Set setup. - /// - [OneTimeSetUp] - public void Setup() - { - TestCommon.RunAICLICommand("source add", $"-n {Constants.TestSourceName} {Constants.TestSourceUrl}"); - } - - /// - /// Tear down. - /// - [OneTimeTearDown] - public void TearDown() - { - // TODO: This is a workaround to an issue where the server takes longer than expected to terminate when - // running from the E2E tests. This can cause other E2E tests to fail when attempting to reset the test source. - if (this.IsRunning(Constants.WindowsPackageManagerServer)) - { - // There should only be one WinGetServer process running at a time. - Process serverProcess = Process.GetProcessesByName(Constants.WindowsPackageManagerServer).First(); - serverProcess.Kill(); - } - - TestCommon.RunAICLICommand("source remove", $"{Constants.TestSourceName}"); - WinGetSettingsHelper.InitializeWingetSettings(); - } - - /// - /// Assert server shutdown. - /// - [Test] - public void AssertServerShutdownAfterExecution() - { - if (!Environment.Is64BitProcess) - { - return; - } - - var result = TestCommon.RunPowerShellCoreCommandWithResult(Constants.GetSourceCmdlet, $"-Name {Constants.TestSourceName}"); - Assert.AreEqual(Constants.ErrorCode.S_OK, result.ExitCode, $"ExitCode: {result.ExitCode} Failed with the following output: {result.StdOut}, {result.StdErr}"); - - Assert.IsTrue(this.IsRunning(Constants.WindowsPackageManagerServer), $"{Constants.WindowsPackageManagerServer} is not running."); - Process serverProcess = Process.GetProcessesByName(Constants.WindowsPackageManagerServer).First(); - - // Wait a maximum of 30 seconds for the server process to exit. - bool serverProcessExit = serverProcess.WaitForExit(30000); - Assert.IsTrue(serverProcessExit, $"{Constants.WindowsPackageManagerServer} failed to terminate after creating COM object."); - } - - /// - /// There is a known issue where the server takes an abnormally long time to terminate after the E2E test pwsh processes finish execution. - /// This test verifies that the server does indeed terminate within 5 minutes after running all of the cmdlets. - /// Commented out to reduce the overall duration of the build pipeline. - /// - [Test] - [Ignore("Ignoring")] - public void VerifyServerTermination() - { - TestCommon.RunPowerShellCoreCommandWithResult(Constants.GetSourceCmdlet, $"-Name {Constants.TestSourceName}"); - TestCommon.RunPowerShellCoreCommandWithResult(Constants.FindCmdlet, $"-Id {Constants.ExeInstallerPackageId}"); - TestCommon.RunPowerShellCoreCommandWithResult(Constants.InstallCmdlet, $"-Id {Constants.ExeInstallerPackageId} -Version 1.0.0.0"); - TestCommon.RunPowerShellCoreCommandWithResult(Constants.UpdateCmdlet, $"-Id {Constants.ExeInstallerPackageId}"); - TestCommon.RunPowerShellCoreCommandWithResult(Constants.GetCmdlet, $"-Id {Constants.ExeInstallerPackageId}"); - TestCommon.RunPowerShellCoreCommandWithResult(Constants.UninstallCmdlet, $"-Id {Constants.ExeInstallerPackageId}"); - - Assert.IsTrue(this.IsRunning(Constants.WindowsPackageManagerServer), $"{Constants.WindowsPackageManagerServer} is not running."); - Process serverProcess = Process.GetProcessesByName(Constants.WindowsPackageManagerServer).First(); - - // Wait a maximum of 5 minutes for the server process to exit. - bool serverProcessExit = serverProcess.WaitForExit(300000); - Assert.IsTrue(serverProcessExit, $"{Constants.WindowsPackageManagerServer} failed to terminate after creating COM object."); - } - - private bool IsRunning(string processName) - { - return Process.GetProcessesByName(processName).Length > 0; - } - } -} \ No newline at end of file diff --git a/src/Microsoft.Management.Deployment.InProc/Microsoft.Management.Deployment.InProc.vcxproj b/src/Microsoft.Management.Deployment.InProc/Microsoft.Management.Deployment.InProc.vcxproj index 8a0fead12a..e64a31daa3 100644 --- a/src/Microsoft.Management.Deployment.InProc/Microsoft.Management.Deployment.InProc.vcxproj +++ b/src/Microsoft.Management.Deployment.InProc/Microsoft.Management.Deployment.InProc.vcxproj @@ -454,4 +454,8 @@ + + + + \ No newline at end of file diff --git a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Acl/WinGetAssemblyLoadContext.cs b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Acl/WinGetAssemblyLoadContext.cs index 420ecbbf27..cc4edc4a24 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Acl/WinGetAssemblyLoadContext.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Acl/WinGetAssemblyLoadContext.cs @@ -11,6 +11,7 @@ namespace Microsoft.WinGet.Client.Acl using System.IO; using System.Linq; using System.Reflection; + using System.Runtime.InteropServices; using System.Runtime.Loader; /// @@ -36,11 +37,22 @@ internal class WinGetAssemblyLoadContext : AssemblyLoadContext Path.GetDirectoryName(typeof(WinGetAssemblyLoadContext).Assembly.Location), "DirectDependencies"); + private static readonly IEnumerable ValidArchs = new Architecture[] { Architecture.X86, Architecture.X64 }; + private static readonly WinGetAssemblyLoadContext WinGetAcl = new (); + private readonly string sharedArchDependencyPath; + private WinGetAssemblyLoadContext() : base("WinGetAssemblyLoadContext", isCollectible: false) { + var arch = RuntimeInformation.ProcessArchitecture; + if (!ValidArchs.Contains(arch)) + { + throw new NotSupportedException(arch.ToString()); + } + + this.sharedArchDependencyPath = Path.Combine(SharedDependencyPath, arch.ToString().ToLower()); } /// @@ -85,6 +97,12 @@ protected override Assembly Load(AssemblyName assemblyName) return this.LoadFromAssemblyPath(path); } + path = $"{Path.Combine(this.sharedArchDependencyPath, assemblyName.Name)}.dll"; + if (File.Exists(path)) + { + return this.LoadFromAssemblyPath(path); + } + path = Path.Combine(DirectDependencyPath, name); if (File.Exists(path)) { @@ -97,7 +115,7 @@ protected override Assembly Load(AssemblyName assemblyName) /// protected override IntPtr LoadUnmanagedDll(string unmanagedDllName) { - string path = Path.Combine(SharedDependencyPath, unmanagedDllName); + string path = Path.Combine(this.sharedArchDependencyPath, unmanagedDllName); if (File.Exists(path)) { return this.LoadUnmanagedDllFromPath(path); diff --git a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/FindPackageCmdlet.cs b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/FindPackageCmdlet.cs index 6c1c16aada..a16ac326a6 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/FindPackageCmdlet.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/FindPackageCmdlet.cs @@ -6,7 +6,7 @@ namespace Microsoft.WinGet.Client.Commands { - using System.Management.Automation; + using System.Management.Automation; using Microsoft.WinGet.Client.Commands.Common; using Microsoft.WinGet.Client.Common; using Microsoft.WinGet.Client.Engine.Commands; @@ -23,20 +23,19 @@ public sealed class FindPackageCmdlet : FinderExtendedCmdlet /// Searches for configured sources for packages. /// protected override void ProcessRecord() - { - var command = new FinderPackageCommand( - this, - this.Id, - this.Name, - this.Moniker, - this.Source, - this.Query, - this.MatchOption.ToString(), - this.Tag, - this.Command, - this.Count); - - command.Find(); + { + var command = new FinderPackageCommand( + this, + this.Id, + this.Name, + this.Moniker, + this.Source, + this.Query, + this.Tag, + this.Command, + this.Count); + + command.Find(this.MatchOption.ToString()); } } } diff --git a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/GetPackageCmdlet.cs b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/GetPackageCmdlet.cs index 8502318a37..01fab7ccdd 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/GetPackageCmdlet.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/GetPackageCmdlet.cs @@ -8,8 +8,8 @@ namespace Microsoft.WinGet.Client.Commands { using System.Management.Automation; using Microsoft.WinGet.Client.Commands.Common; - using Microsoft.WinGet.Client.Common; - using Microsoft.WinGet.Client.Engine.Commands; + using Microsoft.WinGet.Client.Common; + using Microsoft.WinGet.Client.Engine.Commands; using Microsoft.WinGet.Client.Engine.PSObjects; /// @@ -23,20 +23,19 @@ public sealed class GetPackageCmdlet : FinderExtendedCmdlet /// Searches for configured sources for packages. /// protected override void ProcessRecord() - { - var command = new FinderPackageCommand( - this, - this.Id, - this.Name, - this.Moniker, - this.Source, - this.Query, - this.MatchOption.ToString(), - this.Tag, - this.Command, + { + var command = new FinderPackageCommand( + this, + this.Id, + this.Name, + this.Moniker, + this.Source, + this.Query, + this.Tag, + this.Command, this.Count); - command.Get(); + command.Get(this.MatchOption.ToString()); } } } diff --git a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/InstallPackageCmdlet.cs b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/InstallPackageCmdlet.cs index 11817b6c09..a42a2661ae 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/InstallPackageCmdlet.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/InstallPackageCmdlet.cs @@ -6,7 +6,7 @@ namespace Microsoft.WinGet.Client.Commands { - using System.Management.Automation; + using System.Management.Automation; using Microsoft.WinGet.Client.Commands.Common; using Microsoft.WinGet.Client.Common; using Microsoft.WinGet.Client.Engine.Commands; @@ -40,26 +40,25 @@ public sealed class InstallPackageCmdlet : InstallCmdlet /// Installs a package from the pipeline or from a configured source. /// protected override void ProcessRecord() - { - var command = new InstallerPackageCommand( - this, - this.Mode.ToString(), - this.Override, - this.Custom, - this.Location, - this.AllowHashMismatch.ToBool(), - this.Force.ToBool(), - this.Header, - this.PSCatalogPackage, - this.Version, - this.Log, - this.Id, - this.Name, - this.Moniker, - this.Source, - this.Query, - this.MatchOption.ToString()); - command.Install(this.Scope.ToString(), this.Architecture.ToString()); + { + var command = new InstallerPackageCommand( + this, + this.Mode.ToString(), + this.Override, + this.Custom, + this.Location, + this.AllowHashMismatch.ToBool(), + this.Force.ToBool(), + this.Header, + this.PSCatalogPackage, + this.Version, + this.Log, + this.Id, + this.Name, + this.Moniker, + this.Source, + this.Query); + command.Install(this.Scope.ToString(), this.Architecture.ToString(), this.MatchOption.ToString(), this.Mode.ToString()); } } } diff --git a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/UninstallPackageCmdlet.cs b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/UninstallPackageCmdlet.cs index 4eb932654d..a705cd6d4b 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/UninstallPackageCmdlet.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/UninstallPackageCmdlet.cs @@ -6,7 +6,7 @@ namespace Microsoft.WinGet.Client.Commands { - using System.Management.Automation; + using System.Management.Automation; using Microsoft.WinGet.Client.Commands.Common; using Microsoft.WinGet.Client.Common; using Microsoft.WinGet.Client.Engine.Commands; @@ -40,19 +40,18 @@ public sealed class UninstallPackageCmdlet : PackageCmdlet /// Uninstalls a package from the local system. /// protected override void ProcessRecord() - { - var command = new UninstallPackageCommand( - this, - this.PSCatalogPackage, - this.Version, - this.Log, - this.Id, - this.Name, - this.Moniker, - this.Source, - this.Query, - this.MatchOption.ToString()); - command.Uninstall(this.Mode.ToString(), this.Force.ToBool()); + { + var command = new UninstallPackageCommand( + this, + this.PSCatalogPackage, + this.Version, + this.Log, + this.Id, + this.Name, + this.Moniker, + this.Source, + this.Query); + command.Uninstall(this.Mode.ToString(), this.MatchOption.ToString(), this.Force.ToBool()); } } } diff --git a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/UpdatePackageCmdlet.cs b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/UpdatePackageCmdlet.cs index c22c23a253..161b12956d 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/UpdatePackageCmdlet.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Cmdlets/UpdatePackageCmdlet.cs @@ -35,24 +35,23 @@ public sealed class UpdatePackageCmdlet : InstallCmdlet protected override void ProcessRecord() { var command = new InstallerPackageCommand( - this, - this.Mode.ToString(), - this.Override, - this.Custom, - this.Location, - this.AllowHashMismatch.ToBool(), - this.Force.ToBool(), - this.Header, - this.PSCatalogPackage, - this.Version, - this.Log, - this.Id, - this.Name, - this.Moniker, - this.Source, - this.Query, - this.MatchOption.ToString()); - command.Update(this.IncludeUnknown.ToBool()); + this, + this.Mode.ToString(), + this.Override, + this.Custom, + this.Location, + this.AllowHashMismatch.ToBool(), + this.Force.ToBool(), + this.Header, + this.PSCatalogPackage, + this.Version, + this.Log, + this.Id, + this.Name, + this.Moniker, + this.Source, + this.Query); + command.Update(this.IncludeUnknown.ToBool(), this.MatchOption.ToString(), this.Mode.ToString()); } } } diff --git a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Microsoft.WinGet.Client.Cmdlets.csproj b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Microsoft.WinGet.Client.Cmdlets.csproj index 7977a3d3c0..0c8e6a09bb 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Microsoft.WinGet.Client.Cmdlets.csproj +++ b/src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Microsoft.WinGet.Client.Cmdlets.csproj @@ -14,7 +14,6 @@ 10 $(SolutionDir)$(Platform)\$(Configuration)\ $(BuildOutputDirectory)$(MSBuildProjectName) - x64;x86;ARM64 $(CoreFramework);$(DesktopFramework) $(OutputPath)\Microsoft.WinGet.Client.Cmdlets.xml @@ -44,7 +43,7 @@ - win10-x64;win10-x86;win10-arm;win10-arm64 + win10 @@ -56,26 +55,15 @@ - - win10-x64 - - - - win10-x86 - - - - win10-arm - - - - win10-arm64 + + + None $(BuildOutputDirectory)PowerShell\Microsoft.WinGet.Client - $(PowerShellModuleOutputDirectory)\runtimes\win10-$(Platform)\lib\$(TargetFramework) + $(PowerShellModuleOutputDirectory)\$(TargetFramework) @@ -88,7 +76,7 @@ $(PowerShellModuleRuntimesDir) - + @@ -101,7 +89,7 @@ - + @@ -111,52 +99,24 @@ - + - - - - - - - - - - - - - - - - $(OutputPath)..\..\..\Microsoft.WinGet.Client.Engine\$(TargetFramework)\win10-$(Platform)\ - - $(OutputPath)..\..\..\Microsoft.WinGet.Client.Engine\$(TargetFramework)\ - $(OutputPath)..\..\Microsoft.WinGet.Client.Engine\$(TargetFramework)\ - - - - - - - - - - - - - - + + - - Microsoft.Management.Deployment.dll - + + + + + + - - + + diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/FinderCommand.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/FinderCommand.cs index a739d1526e..1a82fe6553 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/FinderCommand.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/FinderCommand.cs @@ -14,12 +14,13 @@ namespace Microsoft.WinGet.Client.Engine.Commands.Common using Microsoft.Management.Deployment; using Microsoft.WinGet.Client.Engine.Attributes; using Microsoft.WinGet.Client.Engine.Exceptions; + using Microsoft.WinGet.Client.Engine.Helpers; /// /// This is the base class for all commands that might need to search for a package. It contains an initial /// set of parameters that corresponds to the intersection of i.e., the "install" and "search" commands. /// - public abstract class FinderCommand : ClientCommand + public abstract class FinderCommand : ManagementDeploymentCommand { /// /// Initializes a new instance of the class. @@ -58,11 +59,6 @@ internal FinderCommand(PSCmdlet psCmdlet) /// protected string[] Query { get; set; } - /// - /// Gets or sets a value indicating whether to match exactly against package fields. - /// - protected PackageFieldMatchOption MatchOption { get; set; } - private string QueryAsJoinedString { get @@ -78,35 +74,40 @@ private string QueryAsJoinedString /// /// The value. /// The limit on the number of matches returned. + /// The match option. /// A list of objects. protected IReadOnlyList FindPackages( CompositeSearchBehavior behavior, - uint limit) + uint limit, + PackageFieldMatchOption match) { PackageCatalog catalog = this.GetPackageCatalog(behavior); - FindPackagesOptions options = this.GetFindPackagesOptions(limit); - return GetMatchResults(catalog, options); + FindPackagesOptions options = this.GetFindPackagesOptions(limit, match); + return this.GetMatchResults(catalog, options); } /// /// Sets the find package options for a query input. + /// DO NOT pass PackageFieldMatchOption WinRT enum type in this method. + /// That will cause the type to attempt to be loaded in the construction + /// of this method and throw a different exception for Windows PowerShell. /// /// The options object. - /// The match type. + /// The match type as string. /// The query value. protected virtual void SetQueryInFindPackagesOptions( ref FindPackagesOptions options, - PackageFieldMatchOption match, + string match, string value) { - var selector = ComObjectFactory.Value.CreatePackageMatchFilter(); + var selector = ManagementDeploymentFactory.Instance.CreatePackageMatchFilter(); selector.Field = PackageMatchField.CatalogDefault; selector.Value = value ?? string.Empty; - selector.Option = match; + selector.Option = PSEnumHelpers.ToPackageFieldMatchOption(match); options.Selectors.Add(selector); } - private static void AddFilterToFindPackagesOptionsIfNotNull( + private void AddFilterToFindPackagesOptionsIfNotNull( ref FindPackagesOptions options, PackageMatchField field, PackageFieldMatchOption match, @@ -114,7 +115,7 @@ private static void AddFilterToFindPackagesOptionsIfNotNull( { if (value != null) { - var filter = ComObjectFactory.Value.CreatePackageMatchFilter(); + var filter = ManagementDeploymentFactory.Instance.CreatePackageMatchFilter(); filter.Field = field; filter.Value = value; filter.Option = match; @@ -122,7 +123,7 @@ private static void AddFilterToFindPackagesOptionsIfNotNull( } } - private static IReadOnlyList GetMatchResults( + private IReadOnlyList GetMatchResults( PackageCatalog catalog, FindPackagesOptions options) { @@ -153,22 +154,22 @@ private PackageCatalog GetPackageCatalog(CompositeSearchBehavior behavior) private PackageCatalogReference GetPackageCatalogReference(CompositeSearchBehavior behavior) { - CreateCompositePackageCatalogOptions options = ComObjectFactory.Value.CreateCreateCompositePackageCatalogOptions(); - IReadOnlyList references = GetPackageCatalogReferences(this.Source); + CreateCompositePackageCatalogOptions options = ManagementDeploymentFactory.Instance.CreateCreateCompositePackageCatalogOptions(); + IReadOnlyList references = this.GetPackageCatalogReferences(this.Source); for (var i = 0; i < references.Count; i++) { options.Catalogs.Add(references[i]); } options.CompositeSearchBehavior = behavior; - return PackageManager.Value.CreateCompositePackageCatalog(options); + return PackageManagerWrapper.Instance.CreateCompositePackageCatalog(options); } - private FindPackagesOptions GetFindPackagesOptions(uint limit) + private FindPackagesOptions GetFindPackagesOptions(uint limit, PackageFieldMatchOption match) { - var options = ComObjectFactory.Value.CreateFindPackagesOptions(); - this.SetQueryInFindPackagesOptions(ref options, this.MatchOption, this.QueryAsJoinedString); - this.AddAttributedFiltersToFindPackagesOptions(ref options, this.MatchOption); + var options = ManagementDeploymentFactory.Instance.CreateFindPackagesOptions(); + this.SetQueryInFindPackagesOptions(ref options, match.ToString(), this.QueryAsJoinedString); + this.AddAttributedFiltersToFindPackagesOptions(ref options, match); options.ResultLimit = limit; return options; } @@ -187,7 +188,7 @@ private void AddAttributedFiltersToFindPackagesOptions( { PackageMatchField field = attribute.Field; string value = info.GetValue(this, null) as string; - AddFilterToFindPackagesOptionsIfNotNull(ref options, field, match, value); + this.AddFilterToFindPackagesOptionsIfNotNull(ref options, field, match, value); } } } diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/FinderExtendedCommand.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/FinderExtendedCommand.cs index ed1e8707d4..4b7ee5827d 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/FinderExtendedCommand.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/FinderExtendedCommand.cs @@ -48,10 +48,11 @@ internal FinderExtendedCommand(PSCmdlet psCmdlet) /// Searches for packages from configured sources. /// /// A value. + /// The match option. /// A list of objects. - protected IReadOnlyList FindPackages(CompositeSearchBehavior behavior) + protected IReadOnlyList FindPackages(CompositeSearchBehavior behavior, PackageFieldMatchOption match) { - return this.FindPackages(behavior, this.Count); + return this.FindPackages(behavior, this.Count, match); } } } diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/InstallCommand.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/InstallCommand.cs index c844004b0b..028aba9766 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/InstallCommand.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/InstallCommand.cs @@ -26,11 +26,6 @@ internal InstallCommand(PSCmdlet psCmdlet) { } - /// - /// Gets or sets the mode to manipulate the package with. - /// - protected PackageInstallMode Mode { get; set; } = PackageInstallMode.Default; - /// /// Gets or sets the override arguments to be passed on to the installer. /// @@ -63,15 +58,19 @@ internal InstallCommand(PSCmdlet psCmdlet) /// /// Gets the install options from the configured parameters. + /// DO NOT pass PackageInstallMode WinRT enum type in this method. + /// That will cause the type to attempt to be loaded in the construction + /// of this method and throw a different exception for Windows PowerShell. /// /// The to install. + /// Package install mode as string. /// An instance. - protected virtual InstallOptions GetInstallOptions(PackageVersionId version) + protected virtual InstallOptions GetInstallOptions(PackageVersionId version, string mode) { - InstallOptions options = ComObjectFactory.Value.CreateInstallOptions(); + InstallOptions options = ManagementDeploymentFactory.Instance.CreateInstallOptions(); options.AllowHashMismatch = this.AllowHashMismatch; options.Force = this.Force; - options.PackageInstallMode = this.Mode; + options.PackageInstallMode = PSEnumHelpers.ToPackageInstallMode(mode); if (version != null) { options.PackageVersionId = version; diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/ClientCommand.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/ManagementDeploymentCommand.cs similarity index 63% rename from src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/ClientCommand.cs rename to src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/ManagementDeploymentCommand.cs index d95d5873ee..fffda73d64 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/ClientCommand.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/ManagementDeploymentCommand.cs @@ -1,5 +1,5 @@ // ----------------------------------------------------------------------------- -// +// // Copyright (c) Microsoft Corporation. Licensed under the MIT License. // // ----------------------------------------------------------------------------- @@ -13,53 +13,49 @@ namespace Microsoft.WinGet.Client.Engine.Commands.Common using Microsoft.Management.Deployment; using Microsoft.WinGet.Client.Engine.Exceptions; using Microsoft.WinGet.Client.Engine.Helpers; + using Microsoft.WinGet.Client.Engine.Properties; /// /// This is the base class for all of the commands in this module that use the COM APIs. /// - public abstract class ClientCommand : BaseCommand + public abstract class ManagementDeploymentCommand : BaseCommand { - static ClientCommand() + static ManagementDeploymentCommand() { +#if !POWERSHELL_WINDOWS InitializeUndockedRegFreeWinRT(); +#endif } /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// psCmdlet. - internal ClientCommand(PSCmdlet psCmdlet) + internal ManagementDeploymentCommand(PSCmdlet psCmdlet) : base(psCmdlet) { +#if POWERSHELL_WINDOWS + throw new WindowsPowerShellNotSupported(); +#endif } - /// - /// Gets the instance of the class. - /// - protected static Lazy ComObjectFactory { get; } = new (); - - /// - /// Gets the instance of the class. - /// - protected static Lazy PackageManager { get; } = new (() => ComObjectFactory.Value.CreatePackageManager()); - /// /// Retrieves the specified source or all sources if is null. /// /// A list of instances. /// The name of the source to retrieve. If null, then all sources are returned. /// The source does not exist. - protected static IReadOnlyList GetPackageCatalogReferences(string source) + protected IReadOnlyList GetPackageCatalogReferences(string source) { if (string.IsNullOrEmpty(source)) { - return PackageManager.Value.GetPackageCatalogs(); + return PackageManagerWrapper.Instance.GetPackageCatalogs(); } else { return new List() { - PackageManager.Value.GetPackageCatalogByName(source) + PackageManagerWrapper.Instance.GetPackageCatalogByName(source) ?? throw new InvalidSourceException(source), }; } diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/PackageCommand.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/PackageCommand.cs index e6b384ac83..31d522835c 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/PackageCommand.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/Common/PackageCommand.cs @@ -12,6 +12,8 @@ namespace Microsoft.WinGet.Client.Engine.Commands.Common using Microsoft.Management.Deployment; using Microsoft.WinGet.Client.Engine.Exceptions; using Microsoft.WinGet.Client.Engine.Extensions; + using Microsoft.WinGet.Client.Engine.Helpers; + using Microsoft.WinGet.Client.Engine.PSObjects; /// /// This is the base class for commands which operate on a specific package and version i.e., @@ -34,7 +36,7 @@ internal PackageCommand(PSCmdlet psCmdlet) /// /// Must match the name of the field on the class. /// - protected CatalogPackage CatalogPackage { get; set; } = null; + protected PSCatalogPackage CatalogPackage { get; set; } = null; /// /// Gets or sets the version to install. @@ -50,12 +52,14 @@ internal PackageCommand(PSCmdlet psCmdlet) /// Executes a command targeting a specific package version. /// /// The value. + /// The match option. /// The method to call after retrieving the package and version to operate upon. protected void GetPackageAndExecute( CompositeSearchBehavior behavior, + PackageFieldMatchOption match, Action callback) { - CatalogPackage package = this.GetCatalogPackage(behavior); + CatalogPackage package = this.GetCatalogPackage(behavior, match); PackageVersionId version = this.GetPackageVersionId(package); if (this.PsCmdlet.ShouldProcess(package.ToString(version))) { @@ -65,35 +69,39 @@ protected void GetPackageAndExecute( /// /// Sets the find package options for a query input that is looking for a specific package. + /// DO NOT pass PackageFieldMatchOption WinRT enum type in this method. + /// That will cause the type to attempt to be loaded in the construction + /// of this method and throw a different exception for Windows PowerShell. /// /// The options object. /// The match type. /// The query value. protected override void SetQueryInFindPackagesOptions( ref FindPackagesOptions options, - PackageFieldMatchOption match, + string match, string value) { + var matchOption = PSEnumHelpers.ToPackageFieldMatchOption(match); foreach (PackageMatchField field in new PackageMatchField[] { PackageMatchField.Id, PackageMatchField.Name, PackageMatchField.Moniker }) { - var selector = ComObjectFactory.Value.CreatePackageMatchFilter(); + var selector = ManagementDeploymentFactory.Instance.CreatePackageMatchFilter(); selector.Field = field; selector.Value = value ?? string.Empty; - selector.Option = match; + selector.Option = matchOption; options.Selectors.Add(selector); } } - private CatalogPackage GetCatalogPackage(CompositeSearchBehavior behavior) + private CatalogPackage GetCatalogPackage(CompositeSearchBehavior behavior, PackageFieldMatchOption match) { if (this.CatalogPackage != null) { // The package was already provided via a parameter or the pipeline. - return this.CatalogPackage; + return this.CatalogPackage.CatalogPackageCOM; } else { - IReadOnlyList results = this.FindPackages(behavior, 0); + IReadOnlyList results = this.FindPackages(behavior, 0, match); if (results.Count == 1) { // Exactly one package matched, so we can just return it. diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/FinderPackageCommand.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/FinderPackageCommand.cs index 0fdf9f66b1..ef94f5b6b1 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/FinderPackageCommand.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/FinderPackageCommand.cs @@ -6,13 +6,10 @@ namespace Microsoft.WinGet.Client.Engine.Commands { - using System; using System.Management.Automation; using Microsoft.Management.Deployment; using Microsoft.WinGet.Client.Engine.Commands.Common; - using Microsoft.WinGet.Client.Engine.Extensions; using Microsoft.WinGet.Client.Engine.Helpers; - using Microsoft.WinGet.Client.Engine.Properties; using Microsoft.WinGet.Client.Engine.PSObjects; /// @@ -29,7 +26,6 @@ public sealed class FinderPackageCommand : FinderExtendedCommand /// Moniker of package. /// Source to search. If null, all are searched. /// Match against any field of a package. - /// Match option. /// Tag of the package. /// Command of the package. /// Max results to return. @@ -40,36 +36,31 @@ public FinderPackageCommand( string moniker, string source, string[] query, - string matchOption, string tag, string command, uint count) : base(psCmdlet) { -#if POWERSHELL_WINDOWS - throw new NotSupportedException(Resources.WindowsPowerShellNotSupported); -#else // FinderCommand this.Id = id; this.Name = name; this.Moniker = moniker; this.Source = source; this.Query = query; - this.MatchOption = PSEnumHelpers.ToPackageFieldMatchOption(matchOption); // FinderExtendedCommand this.Tag = tag; this.Command = command; this.Count = count; -#endif } /// /// Process find package command. /// - public void Find() + /// PSPackageFieldMatchOption. + public void Find(string psPackageFieldMatchOption) { - var results = this.FindPackages(CompositeSearchBehavior.RemotePackagesFromRemoteCatalogs); + var results = this.FindPackages(CompositeSearchBehavior.RemotePackagesFromRemoteCatalogs, PSEnumHelpers.ToPackageFieldMatchOption(psPackageFieldMatchOption)); for (var i = 0; i < results.Count; i++) { this.PsCmdlet.WriteObject(new PSFoundCatalogPackage(results[i].CatalogPackage)); @@ -79,9 +70,10 @@ public void Find() /// /// Process get package command. /// - public void Get() + /// PSPackageFieldMatchOption. + public void Get(string psPackageFieldMatchOption) { - var results = this.FindPackages(CompositeSearchBehavior.LocalCatalogs); + var results = this.FindPackages(CompositeSearchBehavior.LocalCatalogs, PSEnumHelpers.ToPackageFieldMatchOption(psPackageFieldMatchOption)); for (var i = 0; i < results.Count; i++) { this.PsCmdlet.WriteObject(new PSInstalledCatalogPackage(results[i].CatalogPackage)); diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/InstallerPackageCommand.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/InstallerPackageCommand.cs index ad28aa43dc..ef2bf88561 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/InstallerPackageCommand.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/InstallerPackageCommand.cs @@ -6,7 +6,6 @@ namespace Microsoft.WinGet.Client.Engine.Commands { - using System; using System.Management.Automation; using Microsoft.Management.Deployment; using Microsoft.WinGet.Client.Engine.Commands.Common; @@ -38,7 +37,6 @@ public sealed class InstallerPackageCommand : InstallCommand /// Moniker of package. /// Source to search. If null, all are searched. /// Match against any field of a package. - /// Match option. public InstallerPackageCommand( PSCmdlet psCmdlet, string psInstallMode, @@ -55,15 +53,10 @@ public InstallerPackageCommand( string name, string moniker, string source, - string[] query, - string matchOption) + string[] query) : base(psCmdlet) { -#if POWERSHELL_WINDOWS - throw new NotSupportedException(Resources.WindowsPowerShellNotSupported); -#else // InstallCommand. - this.Mode = PSEnumHelpers.ToPackageInstallMode(psInstallMode); this.Override = @override; this.Custom = custom; this.Location = location; @@ -74,7 +67,7 @@ public InstallerPackageCommand( // PackageCommand. if (psCatalogPackage != null) { - this.CatalogPackage = psCatalogPackage.CatalogPackageCOM; + this.CatalogPackage = psCatalogPackage; } this.Version = version; @@ -86,8 +79,6 @@ public InstallerPackageCommand( this.Moniker = moniker; this.Source = source; this.Query = query; - this.MatchOption = PSEnumHelpers.ToPackageFieldMatchOption(matchOption); -#endif } /// @@ -95,47 +86,62 @@ public InstallerPackageCommand( /// /// PSPackageInstallScope. /// PSProcessorArchitecture. + /// PSPackageFieldMatchOption. + /// PSPackageInstallMode. public void Install( string psPackageInstallScope, - string psProcessorArchitecture) + string psProcessorArchitecture, + string psPackageFieldMatchOption, + string psPackageInstallMode) { - this.GetPackageAndExecute(CompositeSearchBehavior.RemotePackagesFromRemoteCatalogs, (package, version) => - { - InstallOptions options = this.GetInstallOptions(version); - if (psProcessorArchitecture != "Default") + this.GetPackageAndExecute( + CompositeSearchBehavior.RemotePackagesFromRemoteCatalogs, + PSEnumHelpers.ToPackageFieldMatchOption(psPackageFieldMatchOption), + (package, version) => { - options.AllowedArchitectures.Clear(); - options.AllowedArchitectures.Add(PSEnumHelpers.ToProcessorArchitecture(psProcessorArchitecture)); - } + InstallOptions options = this.GetInstallOptions(version, psPackageInstallMode); + if (psProcessorArchitecture != "Default") + { + options.AllowedArchitectures.Clear(); + options.AllowedArchitectures.Add(PSEnumHelpers.ToProcessorArchitecture(psProcessorArchitecture)); + } - options.PackageInstallScope = PSEnumHelpers.ToPackageInstallScope(psPackageInstallScope); + options.PackageInstallScope = PSEnumHelpers.ToPackageInstallScope(psPackageInstallScope); - InstallResult result = this.InstallPackage(package, options); - this.PsCmdlet.WriteObject(new PSInstallResult(result)); - }); + InstallResult result = this.InstallPackage(package, options); + this.PsCmdlet.WriteObject(new PSInstallResult(result)); + }); } /// /// Process update package command. /// /// If updating to an unknown version is allowed. - public void Update(bool includeUnknown) + /// PSPackageFieldMatchOption. + /// PSPackageInstallMode. + public void Update( + bool includeUnknown, + string psPackageFieldMatchOption, + string psPackageInstallMode) { - this.GetPackageAndExecute(CompositeSearchBehavior.LocalCatalogs, (package, version) => - { - InstallOptions options = this.GetInstallOptions(version); - options.AllowUpgradeToUnknownVersion = includeUnknown; + this.GetPackageAndExecute( + CompositeSearchBehavior.LocalCatalogs, + PSEnumHelpers.ToPackageFieldMatchOption(psPackageFieldMatchOption), + (package, version) => + { + InstallOptions options = this.GetInstallOptions(version, psPackageInstallMode); + options.AllowUpgradeToUnknownVersion = includeUnknown; - InstallResult result = this.UpgradePackage(package, options); - this.PsCmdlet.WriteObject(new PSInstallResult(result)); - }); + InstallResult result = this.UpgradePackage(package, options); + this.PsCmdlet.WriteObject(new PSInstallResult(result)); + }); } private InstallResult InstallPackage( CatalogPackage package, InstallOptions options) { - var operation = PackageManager.Value.InstallPackageAsync(package, options); + var operation = PackageManagerWrapper.Instance.InstallPackageAsync(package, options); return this.RegisterCallbacksAndWait(operation, string.Format( Resources.ProgressRecordActivityInstalling, package.Name)); @@ -145,7 +151,7 @@ private InstallResult UpgradePackage( CatalogPackage package, InstallOptions options) { - var operation = PackageManager.Value.UpgradePackageAsync(package, options); + var operation = PackageManagerWrapper.Instance.UpgradePackageAsync(package, options); return this.RegisterCallbacksAndWait( operation, string.Format( diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/SourceCommand.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/SourceCommand.cs index 622d387ac7..0b6e10947d 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/SourceCommand.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/SourceCommand.cs @@ -6,16 +6,14 @@ namespace Microsoft.WinGet.Client.Engine.Commands { - using System; using System.Management.Automation; using Microsoft.WinGet.Client.Engine.Commands.Common; - using Microsoft.WinGet.Client.Engine.Properties; using Microsoft.WinGet.Client.Engine.PSObjects; /// /// Wrapper for source cmdlets. /// - public sealed class SourceCommand : ClientCommand + public sealed class SourceCommand : ManagementDeploymentCommand { /// /// Initializes a new instance of the class. @@ -25,9 +23,6 @@ public sealed class SourceCommand : ClientCommand public SourceCommand(PSCmdlet psCmdlet) : base(psCmdlet) { -#if POWERSHELL_WINDOWS - throw new NotSupportedException(Resources.WindowsPowerShellNotSupported); -#endif } /// @@ -36,7 +31,7 @@ public SourceCommand(PSCmdlet psCmdlet) /// Optional name. public void Get(string name) { - var results = GetPackageCatalogReferences(name); + var results = this.GetPackageCatalogReferences(name); for (var i = 0; i < results.Count; i++) { this.PsCmdlet.WriteObject(new PSSourceResult(results[i])); diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/UninstallPackageCommand.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/UninstallPackageCommand.cs index 44ebd3a6be..5cd291231e 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/UninstallPackageCommand.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Commands/UninstallPackageCommand.cs @@ -31,7 +31,6 @@ public sealed class UninstallPackageCommand : PackageCommand /// Moniker of package. /// Source to search. If null, all are searched. /// Match against any field of a package. - /// Match option. public UninstallPackageCommand( PSCmdlet psCmdlet, PSCatalogPackage psCatalogPackage, @@ -41,17 +40,13 @@ public UninstallPackageCommand( string name, string moniker, string source, - string[] query, - string matchOption) + string[] query) : base(psCmdlet) { -#if POWERSHELL_WINDOWS - throw new NotSupportedException(Resources.WindowsPowerShellNotSupported); -#else // PackageCommand. if (psCatalogPackage != null) { - this.CatalogPackage = psCatalogPackage.CatalogPackageCOM; + this.CatalogPackage = psCatalogPackage; } this.Version = version; @@ -63,25 +58,28 @@ public UninstallPackageCommand( this.Moniker = moniker; this.Source = source; this.Query = query; - this.MatchOption = PSEnumHelpers.ToPackageFieldMatchOption(matchOption); -#endif } /// /// Process uninstall package. /// /// PSPackageUninstallMode. + /// PSPackageFieldMatchOption. /// Force. public void Uninstall( string psPackageUninstallMode, + string psPackageFieldMatchOption, bool force) { - this.GetPackageAndExecute(CompositeSearchBehavior.LocalCatalogs, (package, version) => - { - UninstallOptions options = this.GetUninstallOptions(version, PSEnumHelpers.ToPackageUninstallMode(psPackageUninstallMode), force); - UninstallResult result = this.UninstallPackage(package, options); - this.PsCmdlet.WriteObject(new PSUninstallResult(result)); - }); + this.GetPackageAndExecute( + CompositeSearchBehavior.LocalCatalogs, + PSEnumHelpers.ToPackageFieldMatchOption(psPackageFieldMatchOption), + (package, version) => + { + UninstallOptions options = this.GetUninstallOptions(version, PSEnumHelpers.ToPackageUninstallMode(psPackageUninstallMode), force); + UninstallResult result = this.UninstallPackage(package, options); + this.PsCmdlet.WriteObject(new PSUninstallResult(result)); + }); } private UninstallOptions GetUninstallOptions( @@ -89,7 +87,7 @@ private UninstallOptions GetUninstallOptions( PackageUninstallMode packageUninstallMode, bool force) { - var options = ComObjectFactory.Value.CreateUninstallOptions(); + var options = ManagementDeploymentFactory.Instance.CreateUninstallOptions(); options.Force = force; if (this.Log != null) { @@ -114,7 +112,7 @@ private UninstallResult UninstallPackage( Resources.ProgressRecordActivityUninstalling, package.Name); - var operation = PackageManager.Value.UninstallPackageAsync(package, options); + var operation = PackageManagerWrapper.Instance.UninstallPackageAsync(package, options); WriteProgressAdapter adapter = new (this.PsCmdlet); operation.Progress = (context, progress) => { diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Common/ErrorCode.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Common/ErrorCode.cs index fa5579ffb3..0533b6dbea 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Common/ErrorCode.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Common/ErrorCode.cs @@ -9,11 +9,21 @@ namespace Microsoft.WinGet.Client.Engine.Common /// /// Error code constants. /// - public static class ErrorCode + internal static class ErrorCode { /// /// Error code for ERROR_FILE_NOT_FOUND. /// public const int FileNotFound = unchecked((int)0x80070002); + + /// + /// Error code for RPC_S_SERVER_UNAVAILABLE. + /// + public const int RpcServerUnavailable = unchecked((int)0x800706BA); + + /// + /// Error code for RPC_S_CALL_FAILED. + /// + public const int RpcCallFailed = unchecked((int)0x800706BE); } } diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Exceptions/WindowsPowerShellNotSupported.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Exceptions/WindowsPowerShellNotSupported.cs new file mode 100644 index 0000000000..5c4f8a6c84 --- /dev/null +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Exceptions/WindowsPowerShellNotSupported.cs @@ -0,0 +1,27 @@ +// ----------------------------------------------------------------------------- +// +// Copyright (c) Microsoft Corporation. Licensed under the MIT License. +// +// ----------------------------------------------------------------------------- + +namespace Microsoft.WinGet.Client.Engine.Exceptions +{ + using System; + using System.Management.Automation; + using Microsoft.WinGet.Client.Engine.Properties; + + /// + /// Windows PowerShell is not supported. + /// + [Serializable] + public class WindowsPowerShellNotSupported : RuntimeException + { + /// + /// Initializes a new instance of the class. + /// + public WindowsPowerShellNotSupported() + : base(Resources.WindowsPowerShellNotSupported) + { + } + } +} diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ComObjectFactory.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ManagementDeploymentFactory.cs similarity index 83% rename from src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ComObjectFactory.cs rename to src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ManagementDeploymentFactory.cs index c1547db46e..4849654402 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ComObjectFactory.cs +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ManagementDeploymentFactory.cs @@ -1,5 +1,5 @@ // ----------------------------------------------------------------------------- -// +// // Copyright (c) Microsoft Corporation. Licensed under the MIT License. // // ----------------------------------------------------------------------------- @@ -7,7 +7,9 @@ namespace Microsoft.WinGet.Client.Engine.Helpers { using System; + using System.Collections.Generic; using System.IO; + using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using Microsoft.Management.Deployment; @@ -21,7 +23,7 @@ namespace Microsoft.WinGet.Client.Engine.Helpers /// /// Constructs instances of classes from the namespace. /// - public class ComObjectFactory + internal sealed class ManagementDeploymentFactory { #if USE_PROD_CLSIDS private static readonly Guid PackageManagerClsid = Guid.Parse("C53A4F16-787E-42A4-B304-29EFFB4BF597"); @@ -63,10 +65,14 @@ public class ComObjectFactory private static readonly Guid PackageMatchFilterIid = Guid.Parse("D981ECA3-4DE5-5AD7-967A-698C7D60FC3B"); private static readonly Guid DownloadOptionsIid = Guid.Parse("B4D72A63-40FF-597D-A7DA-43580268DC96"); + private static readonly IEnumerable ValidArchs = new Architecture[] { Architecture.X86, Architecture.X64 }; + + private static readonly Lazy Lazy = new (() => new ManagementDeploymentFactory()); + /// - /// Initializes static members of the class. + /// Initializes static members of the class. /// - static ComObjectFactory() + static ManagementDeploymentFactory() { if (Utilities.UsesInProcWinget) { @@ -75,11 +81,23 @@ static ComObjectFactory() } } + private ManagementDeploymentFactory() + { + } + + /// + /// Gets the instance object. + /// + public static ManagementDeploymentFactory Instance + { + get { return Lazy.Value; } + } + /// /// Creates an instance of the class. /// /// A instance. - public virtual PackageManager CreatePackageManager() + public PackageManager CreatePackageManager() { return Create(PackageManagerType, PackageManagerIid); } @@ -88,7 +106,7 @@ public virtual PackageManager CreatePackageManager() /// Creates an instance of the class. /// /// A instance. - public virtual FindPackagesOptions CreateFindPackagesOptions() + public FindPackagesOptions CreateFindPackagesOptions() { return Create(FindPackagesOptionsType, FindPackagesOptionsIid); } @@ -97,7 +115,7 @@ public virtual FindPackagesOptions CreateFindPackagesOptions() /// Creates an instance of the class. /// /// A instance. - public virtual CreateCompositePackageCatalogOptions CreateCreateCompositePackageCatalogOptions() + public CreateCompositePackageCatalogOptions CreateCreateCompositePackageCatalogOptions() { return Create(CreateCompositePackageCatalogOptionsType, CreateCompositePackageCatalogOptionsIid); } @@ -106,7 +124,7 @@ public virtual CreateCompositePackageCatalogOptions CreateCreateCompositePackage /// Creates an instance of the class. /// /// An instance. - public virtual InstallOptions CreateInstallOptions() + public InstallOptions CreateInstallOptions() { return Create(InstallOptionsType, InstallOptionsIid); } @@ -115,7 +133,7 @@ public virtual InstallOptions CreateInstallOptions() /// Creates an instance of the class. /// /// A instance. - public virtual UninstallOptions CreateUninstallOptions() + public UninstallOptions CreateUninstallOptions() { return Create(UninstallOptionsType, UninstallOptionsIid); } @@ -124,7 +142,7 @@ public virtual UninstallOptions CreateUninstallOptions() /// Creates an instance of the class. /// /// A instance. - public virtual DownloadOptions CreateDownloadOptions() + public DownloadOptions CreateDownloadOptions() { return Create(DownloadOptionsType, DownloadOptionsIid); } @@ -133,7 +151,7 @@ public virtual DownloadOptions CreateDownloadOptions() /// Creates an instance of the class. /// /// A instance. - public virtual PackageMatchFilter CreatePackageMatchFilter() + public PackageMatchFilter CreatePackageMatchFilter() { return Create(PackageMatchFilterType, PackageMatchFilterIid); } @@ -144,8 +162,15 @@ private static T Create(Type type, in Guid iid) { if (Utilities.UsesInProcWinget) { + var arch = RuntimeInformation.ProcessArchitecture; + if (!ValidArchs.Contains(arch)) + { + throw new NotSupportedException(arch.ToString()); + } + string executingAssemblyLocation = Assembly.GetExecutingAssembly().Location; - string executingAssemblyDirectory = Path.GetDirectoryName(executingAssemblyLocation); + string executingAssemblyDirectory = Path.Combine(Path.GetDirectoryName(executingAssemblyLocation), arch.ToString().ToLower()); + SetDllDirectoryW(executingAssemblyDirectory); try diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/PackageManagerWrapper.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/PackageManagerWrapper.cs new file mode 100644 index 0000000000..29f3c1ab72 --- /dev/null +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/PackageManagerWrapper.cs @@ -0,0 +1,140 @@ +// ----------------------------------------------------------------------------- +// +// Copyright (c) Microsoft Corporation. Licensed under the MIT License. +// +// ----------------------------------------------------------------------------- + +namespace Microsoft.WinGet.Client.Engine.Helpers +{ + using System; + using System.Collections.Generic; + using System.Runtime.InteropServices; + using Microsoft.Management.Deployment; + using Microsoft.WinGet.Client.Engine.Common; + using Windows.Foundation; + + /// + /// Wrapper for PackageManager that handles rpc disconnections. + /// The object is disconnected when the server is killed or on an update. + /// + internal sealed class PackageManagerWrapper + { + private static readonly Lazy Lazy = new (() => new PackageManagerWrapper()); + + private PackageManager packageManager = null; + + private PackageManagerWrapper() + { + } + + /// + /// Gets the instance object. + /// + public static PackageManagerWrapper Instance + { + get { return Lazy.Value; } + } + + /// + /// Wrapper for InstallPackageAsync. + /// + /// The package to install. + /// The install options. + /// An async operation with progress. + public IAsyncOperationWithProgress InstallPackageAsync(CatalogPackage package, InstallOptions options) + { + return this.Execute( + () => this.packageManager.InstallPackageAsync(package, options), + false); + } + + /// + /// Wrapper for UpgradePackageAsync. + /// + /// The package to upgrade. + /// The install options. + /// An async operation with progress. + public IAsyncOperationWithProgress UpgradePackageAsync(CatalogPackage package, InstallOptions options) + { + return this.Execute( + () => this.packageManager.UpgradePackageAsync(package, options), + false); + } + + /// + /// Wrapper for UninstallPackageAsync. + /// + /// The package to uninstall. + /// The uninstall options. + /// An async operation with progress. + public IAsyncOperationWithProgress UninstallPackageAsync(CatalogPackage package, UninstallOptions options) + { + return this.Execute( + () => this.packageManager.UninstallPackageAsync(package, options), + false); + } + + /// + /// Wrapper for GetPackageCatalogs. + /// + /// A list of PackageCatalogReferences. + public IReadOnlyList GetPackageCatalogs() + { + return this.Execute( + () => this.packageManager.GetPackageCatalogs(), + true); + } + + /// + /// Wrapper for GetPackageCatalogByName. + /// + /// The name of the source. + /// A PackageCatalogReference. + public PackageCatalogReference GetPackageCatalogByName(string source) + { + return this.Execute( + () => this.packageManager.GetPackageCatalogByName(source), + true); + } + + /// + /// Wrapper for CreateCompositePackageCatalog. + /// + /// CreateCompositePackageCatalogOptions. + /// A PackageCatalogReference. + public PackageCatalogReference CreateCompositePackageCatalog(CreateCompositePackageCatalogOptions options) + { + return this.Execute( + () => this.packageManager.CreateCompositePackageCatalog(options), + false); + } + + private TReturn Execute(Func func, bool canRetry) + { + bool stopRetry = false; + while (true) + { + if (this.packageManager == null) + { + this.packageManager = ManagementDeploymentFactory.Instance.CreatePackageManager(); + } + + try + { + return func(); + } + catch (COMException ex) when (ex.HResult == ErrorCode.RpcServerUnavailable || ex.HResult == ErrorCode.RpcCallFailed) + { + this.packageManager = null; + + if (stopRetry || !canRetry) + { + throw; + } + + stopRetry = true; + } + } + } + } +} diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Microsoft.WinGet.Client.Engine.csproj b/src/PowerShell/Microsoft.WinGet.Client.Engine/Microsoft.WinGet.Client.Engine.csproj index 7a69302c6d..d813887740 100644 --- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Microsoft.WinGet.Client.Engine.csproj +++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Microsoft.WinGet.Client.Engine.csproj @@ -15,7 +15,6 @@ 10 $(SolutionDir)$(Platform)\$(Configuration)\ $(BuildOutputDirectory)$(MSBuildProjectName) - x64;x86;ARM64 $(CoreFramework);$(DesktopFramework) $(OutputPath)\Microsoft.WinGet.Client.Engine.xml 10.0.18362.0 @@ -29,6 +28,10 @@ + + None + + @@ -39,6 +42,8 @@ + + @@ -76,33 +81,9 @@ - win10-x64;win10-x86;win10-arm;win10-arm64 - - - - win10-x64 - - - - win10-x86 - - - - win10-arm - - - - win10-arm64 + win10 - - - - - - - - True @@ -144,44 +125,4 @@ 10.0.17763.0 - - - - $(OutputPath)..\..\..\UndockedRegFreeWinRT\ - - $(OutputPath)..\..\UndockedRegFreeWinRT\ - - - - - - - - - - - $(OutputPath)..\..\..\Microsoft.Management.Deployment.InProc\ - - $(OutputPath)..\..\Microsoft.Management.Deployment.InProc\ - - - - - - - - - - - $(OutputPath)..\..\..\WindowsPackageManager\ - - $(OutputPath)..\..\WindowsPackageManager\ - - - - - - - - diff --git a/src/PowerShell/Microsoft.WinGet.Client/ModuleFiles/Microsoft.WinGet.Client.psd1 b/src/PowerShell/Microsoft.WinGet.Client/ModuleFiles/Microsoft.WinGet.Client.psd1 index eb7400753f..23cee53225 100644 --- a/src/PowerShell/Microsoft.WinGet.Client/ModuleFiles/Microsoft.WinGet.Client.psd1 +++ b/src/PowerShell/Microsoft.WinGet.Client/ModuleFiles/Microsoft.WinGet.Client.psd1 @@ -9,27 +9,13 @@ @{ # Script module or binary module file associated with this manifest. -RootModule = if ($env:PROCESSOR_ARCHITECTURE -like 'x86') +RootModule = if ($PSEdition -like 'Core') { - if ($PSEdition -eq 'Core') - { - "runtimes\win10-x86\lib\net6.0-windows10.0.22000.0\Microsoft.WinGet.Client.Cmdlets.dll" - } - else - { - "runtimes\win10-x86\lib\net48\Microsoft.WinGet.Client.Cmdlets.dll" - } + "net6.0-windows10.0.22000.0\Microsoft.WinGet.Client.Cmdlets.dll" } else { - if ($PSEdition -eq 'Core') - { - "runtimes\win10-x64\lib\net6.0-windows10.0.22000.0\Microsoft.WinGet.Client.Cmdlets.dll" - } - else - { - "runtimes\win10-x64\lib\net48\Microsoft.WinGet.Client.Cmdlets.dll" - } + "net48\Microsoft.WinGet.Client.Cmdlets.dll" } # Version number of this module. diff --git a/src/PowerShell/Microsoft.WinGet.Configuration.Cmdlets/Acl/CustomAssemblyLoadContext.cs b/src/PowerShell/Microsoft.WinGet.Configuration.Cmdlets/Acl/CustomAssemblyLoadContext.cs index 02d857ec4f..8f242517ef 100644 --- a/src/PowerShell/Microsoft.WinGet.Configuration.Cmdlets/Acl/CustomAssemblyLoadContext.cs +++ b/src/PowerShell/Microsoft.WinGet.Configuration.Cmdlets/Acl/CustomAssemblyLoadContext.cs @@ -10,6 +10,7 @@ namespace Microsoft.WinGet.Configuration.Acl using System.IO; using System.Linq; using System.Reflection; + using System.Runtime.InteropServices; using System.Runtime.Loader; /// @@ -35,7 +36,7 @@ internal class CustomAssemblyLoadContext : AssemblyLoadContext Path.GetDirectoryName(typeof(CustomAssemblyLoadContext).Assembly.Location), "DirectDependencies"); - private static readonly IEnumerable ValidArchs = new string[] { "x86", "x64", "arm64" }; + private static readonly IEnumerable ValidArchs = new Architecture[] { Architecture.X86, Architecture.X64, Architecture.Arm64 }; private static readonly CustomAssemblyLoadContext WinGetAcl = new (); @@ -44,24 +45,14 @@ internal class CustomAssemblyLoadContext : AssemblyLoadContext private CustomAssemblyLoadContext() : base("WinGetAssemblyLoadContext", isCollectible: false) { - var arch = Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE", EnvironmentVariableTarget.Process); - if (string.IsNullOrEmpty(arch)) - { - throw new ArgumentNullException("PROCESSOR_ARCHITECTURE"); - } - - arch = arch.ToLower(); - if (arch == "amd64") - { - arch = "x64"; - } + var arch = RuntimeInformation.ProcessArchitecture; if (!ValidArchs.Contains(arch)) { - throw new NotSupportedException(arch); + throw new NotSupportedException(arch.ToString()); } - this.sharedArchDependencyPath = Path.Combine(SharedDependencyPath, arch); + this.sharedArchDependencyPath = Path.Combine(SharedDependencyPath, arch.ToString().ToLower()); } /// diff --git a/src/PowerShell/Microsoft.WinGet.Configuration.Cmdlets/Microsoft.WinGet.Configuration.Cmdlets.csproj b/src/PowerShell/Microsoft.WinGet.Configuration.Cmdlets/Microsoft.WinGet.Configuration.Cmdlets.csproj index 14c8cc4a10..421ff2e48f 100644 --- a/src/PowerShell/Microsoft.WinGet.Configuration.Cmdlets/Microsoft.WinGet.Configuration.Cmdlets.csproj +++ b/src/PowerShell/Microsoft.WinGet.Configuration.Cmdlets/Microsoft.WinGet.Configuration.Cmdlets.csproj @@ -94,40 +94,4 @@ - - - - $(OutputPath)..\..\..\x64\$(Configuration)\Microsoft.Management.Configuration\ - $(OutputPath)..\..\..\x86\$(Configuration)\Microsoft.Management.Configuration\ - $(OutputPath)..\..\..\ARM64\$(Configuration)\Microsoft.Management.Configuration\ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/PowerShell/scripts/Initialize-LocalWinGetModules.ps1 b/src/PowerShell/scripts/Initialize-LocalWinGetModules.ps1 index 63314fd04b..55613b336f 100644 --- a/src/PowerShell/scripts/Initialize-LocalWinGetModules.ps1 +++ b/src/PowerShell/scripts/Initialize-LocalWinGetModules.ps1 @@ -19,16 +19,15 @@ [CmdletBinding()] param ( - [Parameter(Mandatory)] - [ValidateSet("x64", "x86", "AnyCpu")] - [string] - $Platform, - [Parameter(Mandatory)] [ValidateSet("Debug", "Release", "ReleaseStatic")] [string] $Configuration, + [ValidateSet("Client", "DSC", "Configuration", "All")] + [string] + $ModuleType = "All", + [string] $BuildRoot = "", @@ -40,14 +39,117 @@ class WinGetModule { [string]$Name [string]$ModuleRoot - [bool]$HasBinary + [string]$Output + [string[]]$ArchSpecificFiles = $null - WinGetModule([string]$n, [string]$m, [bool]$b) + WinGetModule([string]$n, [string]$m, [string]$o) { $this.Name = $n $this.ModuleRoot = $m - $this.HasBinary = $b + $this.Output = "$o\$($this.Name)\" + + if (Get-Module -Name $this.Name) + { + Remove-Module $this.Name -Force + } + } + + [void]PrepareScriptFiles() + { + xcopy $this.ModuleRoot $this.Output /d /s /f /y + } + + [void]PrepareBinaryFiles([string] $buildRoot, [string] $config) + { + $copyErrors = $null + Copy-Item "$buildRoot\AnyCpu\$config\PowerShell\$($this.Name)\*" $this.Output -Force -Recurse -ErrorVariable copyErrors -ErrorAction SilentlyContinue + $copyErrors | ForEach-Object { Write-Warning $_ } + } + + # Location is the path relative to the out module directory + [void]AddArchSpecificFiles([string[]] $files, [string]$location, [string] $buildRoot, [string] $config) + { + $x64Path = "$($this.Output)\$location\x64\" + $x86Path = "$($this.Output)\$location\x86\" + if (-not (Test-Path $x64Path)) + { + New-Item $x64Path -ItemType directory + } + + if (-not (Test-Path $x86Path)) + { + New-Item $x86Path -ItemType directory + } + + foreach ($f in $files) + { + $copyErrors = $null + Copy-Item "$buildRoot\x64\$config\$f" "$($this.Output)\$location\x64\" -Force -ErrorVariable copyErrors -ErrorAction SilentlyContinue + $copyErrors | ForEach-Object { Write-Warning $_ } + Copy-Item "$buildRoot\x86\$config\$f" "$($this.Output)\$location\x86\" -Force -ErrorVariable copyErrors -ErrorAction SilentlyContinue + $copyErrors | ForEach-Object { Write-Warning $_ } + } + } + + [void]AddAnyCpuSpecificFilesToArch([string[]] $files, [string]$location, [string] $buildRoot, [string] $config) + { + $x64Path = "$($this.Output)\$location\x64\" + $x86Path = "$($this.Output)\$location\x86\" + if (-not (Test-Path $x64Path)) + { + New-Item $x64Path -ItemType directory + } + + if (-not (Test-Path $x86Path)) + { + New-Item $x86Path -ItemType directory + } + + foreach ($f in $files) + { + $copyErrors = $null + Copy-Item "$buildRoot\AnyCpu\$config\$f" "$($this.Output)\$location\x64\" -Force -ErrorVariable copyErrors -ErrorAction SilentlyContinue + $copyErrors | ForEach-Object { Write-Warning $_ } + Copy-Item "$buildRoot\AnyCpu\$config\$f" "$($this.Output)\$location\x86\" -Force -ErrorVariable copyErrors -ErrorAction SilentlyContinue + $copyErrors | ForEach-Object { Write-Warning $_ } + } + } +} + +[Flags()] enum ModuleType +{ + None = 0 + Client = 1 + DSC = 2 + Configuration = 4 +} + +$local:moduleToConfigure = [ModuleType]::None +switch ($ModuleType) +{ + "Client" + { + $moduleToConfigure = [ModuleType]::Client; + break + } + + "DSC" + { + $moduleToConfigure = [ModuleType]::DSC; + break } + + "Configuration" + { + $moduleToConfigure = [ModuleType]::Configuration; + break + } + + "All" + { + $moduleToConfigure = [ModuleType]::Client + [ModuleType]::DSC + [ModuleType]::Configuration; + break + } } # I know it makes sense, but please don't do a clean up of $moduleRootOutput. When the modules are loaded @@ -60,42 +162,46 @@ if ($BuildRoot -eq "") } # Modules, they should be in dependency order so that when importing we don't pick up the release modules. -[WinGetModule[]]$local:modules = - [WinGetModule]::new( - "Microsoft.WinGet.Client", - "$PSScriptRoot\..\Microsoft.WinGet.Client\ModuleFiles\", - $true), - [WinGetModule]::new( - "Microsoft.WinGet.DSC", - "$PSScriptRoot\..\Microsoft.WinGet.DSC\", - $false), - [WinGetModule]::new( - "Microsoft.WinGet.Configuration", - "$PSScriptRoot\..\Microsoft.WinGet.Configuration\ModuleFiles\", - $true) - -foreach($module in $modules) +$local:modules = @() +if ($moduleToConfigure.HasFlag([ModuleType]::Client)) { - # Import-Module with Force just changes functions in the root module, not any nested ones. There's no way to load any - # updated classes. To ensure that you are running the latest version run Remove-Module - if (Get-Module -Name $module.Name) - { - Write-Host "Removing module $($module.Name)" -ForegroundColor Green - Remove-Module $module.Name -Force - } + Write-Host "Setting up Microsoft.WinGet.Client" + $module = [WinGetModule]::new("Microsoft.WinGet.Client", "$PSScriptRoot\..\Microsoft.WinGet.Client\ModuleFiles\", $moduleRootOutput) + $module.PrepareScriptFiles() + $module.PrepareBinaryFiles($BuildRoot, $Configuration) + $additionalFiles = @( + "Microsoft.Management.Deployment.InProc\Microsoft.Management.Deployment.dll" + "Microsoft.Management.Deployment\Microsoft.Management.Deployment.winmd" + "WindowsPackageManager\WindowsPackageManager.dll" + "UndockedRegFreeWinRT\winrtact.dll" + ) + $module.AddArchSpecificFiles($additionalFiles, "net6.0-windows10.0.22000.0\SharedDependencies", $BuildRoot, $Configuration) + $modules += $module +} - # Use xcopy to copy only files that have changed. - if ($module.HasBinary) - { - # Copy output files from VS. - Write-Host "Copying binary module $($module.Name)" -ForegroundColor Green - xcopy "$BuildRoot\$Platform\$Configuration\PowerShell\$($module.Name)\" "$moduleRootOutput\$($module.Name)\" /d /s /f /y - } +if ($moduleToConfigure.HasFlag([ModuleType]::DSC)) +{ + Write-Host "Setting up Microsoft.WinGet.DSC" + $module = [WinGetModule]::new("Microsoft.WinGet.DSC", "$PSScriptRoot\..\Microsoft.WinGet.DSC\", $moduleRootOutput) + $module.PrepareScriptFiles() + $modules += $module +} - # Copy PowerShell files even for modules with binary resources. - # VS won't update the files if there's nothing to build... - Write-Host "Copying module $($module.Name)" -ForegroundColor Green - xcopy $module.ModuleRoot "$moduleRootOutput\$($module.Name)\" /d /s /f /y +if ($moduleToConfigure.HasFlag([ModuleType]::Configuration)) +{ + Write-Host "Setting up Microsoft.WinGet.Configuration" + $module = [WinGetModule]::new("Microsoft.WinGet.Configuration", "$PSScriptRoot\..\Microsoft.WinGet.Configuration\ModuleFiles\", $moduleRootOutput) + $module.PrepareScriptFiles() + $module.PrepareBinaryFiles($BuildRoot, $Configuration) + $additionalFiles = @( + "Microsoft.Management.Configuration\Microsoft.Management.Configuration.dll" + ) + $module.AddArchSpecificFiles($additionalFiles, "net6.0-windows10.0.22000.0\SharedDependencies", $BuildRoot, $Configuration) + $additionalFiles = @( + "Microsoft.Management.Configuration.Projection\net6.0-windows10.0.19041.0\Microsoft.Management.Configuration.Projection.dll" + ) + $module.AddAnyCpuSpecificFilesToArch($additionalFiles, "net6.0-windows10.0.22000.0\SharedDependencies", $BuildRoot, $Configuration) + $modules += $module } # Add it to module path if not there. diff --git a/src/PowerShell/tests/Microsoft.WinGet.Client.Tests.ps1 b/src/PowerShell/tests/Microsoft.WinGet.Client.Tests.ps1 index d0ac32affd..d374287c35 100644 --- a/src/PowerShell/tests/Microsoft.WinGet.Client.Tests.ps1 +++ b/src/PowerShell/tests/Microsoft.WinGet.Client.Tests.ps1 @@ -33,14 +33,17 @@ BeforeAll { } function RemoveTestSource { - try { - Get-WinGetSource -Name 'TestSource' - } - catch { - # Source Remove requires admin privileges, this will only execute successfully in an elevated PowerShell. - # This is a workaround to an issue where the server takes longer than expected to terminate when - # running from PowerShell. This can cause other E2E tests to fail when attempting to reset the test source. - Start-Process -FilePath "wingetdev" -ArgumentList "source remove TestSource" + if ($PSEdition -eq "Core") + { + try { + Get-WinGetSource -Name 'TestSource' + } + catch { + # Source Remove requires admin privileges, this will only execute successfully in an elevated PowerShell. + # This is a workaround to an issue where the server takes longer than expected to terminate when + # running from PowerShell. This can cause other E2E tests to fail when attempting to reset the test source. + Start-Process -FilePath "wingetdev" -ArgumentList "source remove TestSource" + } } } @@ -73,6 +76,31 @@ BeforeAll { Remove-ItemProperty -Path $wingetGroupPolicyRegistryRoot -Name * } } + + function WaitForWindowsPackageManagerServer([bool]$force = $false) + { + $processes = Get-Process | Where-Object { $_.Name -eq "WindowsPackageManagerServer" } + foreach ($p in $processes) + { + if ($force) + { + Stop-Process $p + } + + $timeout = 300 + $secondsToWait = 5 + $time = 0 + while ($p.HasExited -eq $false) + { + $time += $secondsToWait + if ($time -ge $timeout ) + { + throw "Timeout waiting for $($p.Id) to exit" + } + Start-Sleep -Seconds 5 + } + } + } } Describe 'Get-WinGetVersion' { @@ -83,7 +111,7 @@ Describe 'Get-WinGetVersion' { } } -Describe 'Get|Add|Reset-WinGetSource' { +Describe 'Get|Add|Reset-WinGetSource' -Skip:($PSEdition -eq "Desktop") { BeforeAll { AddTestSource @@ -108,7 +136,7 @@ Describe 'Get|Add|Reset-WinGetSource' { } } -Describe 'Find-WinGetPackage' { +Describe 'Find-WinGetPackage' -Skip:($PSEdition -eq "Desktop") { BeforeAll { AddTestSource @@ -161,7 +189,7 @@ Describe 'Find-WinGetPackage' { } } -Describe 'Install|Update|Uninstall-WinGetPackage' { +Describe 'Install|Update|Uninstall-WinGetPackage' -Skip:($PSEdition -eq "Desktop") { BeforeAll { AddTestSource @@ -237,7 +265,7 @@ Describe 'Install|Update|Uninstall-WinGetPackage' { } } -Describe 'Get-WinGetPackage' { +Describe 'Get-WinGetPackage' -Skip:($PSEdition -eq "Desktop") { BeforeAll { AddTestSource @@ -521,7 +549,7 @@ Describe 'Test-GroupPolicies' { CreatePolicyKeyIfNotExists } - It "Disable WinGetPolicy and run Get-WinGetSources" { + It "Disable WinGetPolicy and run Get-WinGetVersion" { $policyKeyValueName = "EnableAppInstaller" Set-ItemProperty -Path $wingetGroupPolicyRegistryRoot -Name $policyKeyValueName -Value 0 @@ -529,12 +557,12 @@ Describe 'Test-GroupPolicies' { $registryKey | Should -Not -BeNullOrEmpty $registryKey.EnableAppInstaller | Should -Be 0 - { Get-WinGetSource } | Should -Throw "This operation is disabled by Group Policy : Enable Windows Package Manager" + { Get-WinGetVersion } | Should -Throw "This operation is disabled by Group Policy : Enable Windows Package Manager" CleanupGroupPolicies } - It "Disable EnableWindowsPackageManagerCommandLineInterfaces Policy and run Get-WinGetSources" { + It "Disable EnableWindowsPackageManagerCommandLineInterfaces Policy and run Get-WinGetVersion" { $policyKeyValueName = "EnableWindowsPackageManagerCommandLineInterfaces" Set-ItemProperty -Path $wingetGroupPolicyRegistryRoot -Name $policyKeyValueName -Value 0 @@ -542,7 +570,7 @@ Describe 'Test-GroupPolicies' { $registryKey | Should -Not -BeNullOrEmpty $registryKey.EnableWindowsPackageManagerCommandLineInterfaces | Should -Be 0 - { Get-WinGetSource } | Should -Throw "This operation is disabled by Group Policy : Enable Windows Package Manager command line interfaces" + { Get-WinGetVersion } | Should -Throw "This operation is disabled by Group Policy : Enable Windows Package Manager command line interfaces" CleanupGroupPolicies } @@ -553,6 +581,84 @@ Describe 'Test-GroupPolicies' { } } +Describe 'WindowsPackageManagerServer' -Skip:($PSEdition -eq "Desktop") { + + BeforeEach { + AddTestSource + WaitForWindowsPackageManagerServer $true + } + + # When WindowsPackageManagerServer dies, we should not fail. + It 'Forced termination' { + $source = Get-WinGetSource -Name 'TestSource' + $source | Should -Not -BeNullOrEmpty + $source.Name | Should -Be 'TestSource' + + $process = Get-Process -Name "WindowsPackageManagerServer" + $process | Should -Not -BeNullOrEmpty + + # At least one is running. + $process | Where-Object { $_.HasExited -eq $false } | Should -Not -BeNullOrEmpty + + WaitForWindowsPackageManagerServer $true + + # From the ones we got, at least one exited + $process | Where-Object { $_.HasExited -eq $true } | Should -Not -BeNullOrEmpty + + $source2 = Get-WinGetSource -Name 'TestSource' + $source2 | Should -Not -BeNullOrEmpty + $source2.Name | Should -Be 'TestSource' + + $process2 = Get-Process -Name "WindowsPackageManagerServer" + $process2 | Should -Not -BeNullOrEmpty + $process2.Id | Should -Not -Be $process.Id + } + + # The Microsoft.WinGet.Client has static proxy objects of WindowsPackageManagerServer + # This tests does all the Microsoft.WinGet.Client calls in a different pwsh instance. + It 'Graceful termination' { + $typeTable = [System.Management.Automation.Runspaces.TypeTable]::LoadDefaultTypeFiles() + $oopRunspace = [System.Management.Automation.Runspaces.RunspaceFactory]::CreateOutOfProcessRunspace($typeTable) + $oopRunspace.Open() + $oopPwsh = [PowerShell]::Create() + $oopPwsh.Runspace = $oopRunspace + $oopPwshPid = $oopPwsh.AddScript("`$PID").Invoke() + $oopPwshProcess = Get-Process -Id $oopPwshPid + $oopPwshProcess.HasExited | Should -Be $false + + $source = $oopPwsh.AddScript("Get-WinGetSource -Name TestSource").Invoke() + $source | Should -Not -BeNullOrEmpty + $source.Name | Should -Be 'TestSource' + + $wingetProcess = Get-Process -Name "WindowsPackageManagerServer" + $wingetProcess | Should -Not -BeNullOrEmpty + + # At least one is running. + $wingetProcess | Where-Object { $_.HasExited -eq $false } | Should -Not -BeNullOrEmpty + + $oopRunspace.Close() + + Start-Sleep -Seconds 30 + $oopPwshProcess.HasExited | Should -Be $true + + # From the ones we got, at least one exited + WaitForWindowsPackageManagerServer + $wingetProcess | Where-Object { $_.HasExited -eq $true } | Should -Not -BeNullOrEmpty + } +} + +Describe 'WindowsPowerShell not supported' -Skip:($PSEdition -eq "Core") { + + It 'Throw not supported' { + { Find-WinGetPackage -Id "Fake.Id" } | Should -Throw "This cmdlet is not supported in Windows PowerShell." + { Get-WinGetPackage -Id "Fake.Id" } | Should -Throw "This cmdlet is not supported in Windows PowerShell." + { Install-WinGetPackage -Id "Fake.Id" } | Should -Throw "This cmdlet is not supported in Windows PowerShell." + { Uninstall-WinGetPackage -Id "Fake.Id" } | Should -Throw "This cmdlet is not supported in Windows PowerShell." + { Update-WinGetPackage -Id "Fake.Id" } | Should -Throw "This cmdlet is not supported in Windows PowerShell." + { Get-WinGetSource } | Should -Throw "This cmdlet is not supported in Windows PowerShell." + } +} + AfterAll { RemoveTestSource } \ No newline at end of file diff --git a/src/PowerShell/tests/RunTests.ps1 b/src/PowerShell/tests/RunTests.ps1 index 63ad375dc0..ae283cbe0b 100644 --- a/src/PowerShell/tests/RunTests.ps1 +++ b/src/PowerShell/tests/RunTests.ps1 @@ -42,4 +42,9 @@ if (-not [System.String]::IsNullOrEmpty($packageLayoutPath)) } Invoke-Pester -Script $PSScriptRoot\Microsoft.WinGet.Client.Tests.ps1 -OutputFile $outputPath\Tests-WinGetClient.XML -OutputFormat NUnitXML -Invoke-Pester -Script $PSScriptRoot\Microsoft.WinGet.Configuration.Tests.ps1 -OutputFile $outputPath\Tests-WinGetConfiguration.XML -OutputFormat NUnitXML + +if ($PSEdition -eq "Core") +{ + Invoke-Pester -Script $PSScriptRoot\Microsoft.WinGet.Configuration.Tests.ps1 -OutputFile $outputPath\Tests-WinGetConfiguration.XML -OutputFormat NUnitXML +} +