diff --git a/.pipelines/ESRPSigning_abstracted_utils_dll.json b/.pipelines/ESRPSigning_abstracted_utils_dll.json
new file mode 100644
index 00000000000..7655bbee562
--- /dev/null
+++ b/.pipelines/ESRPSigning_abstracted_utils_dll.json
@@ -0,0 +1,52 @@
+{
+ "Version": "1.0.0",
+ "UseMinimatch": false,
+ "SignBatches": [
+ {
+ "MatchedPath": [
+ "PowerToys.HostsUILib.dll",
+ "PowerToys.EnvironmentVariablesUILib.dll",
+ "PowerToys.RegistryPreviewUILib.dll"
+ ],
+ "SigningInfo": {
+ "Operations": [
+ {
+ "KeyCode": "CP-230012",
+ "OperationSetCode": "SigntoolSign",
+ "Parameters": [
+ {
+ "parameterName": "OpusName",
+ "parameterValue": "Microsoft"
+ },
+ {
+ "parameterName": "OpusInfo",
+ "parameterValue": "http://www.microsoft.com"
+ },
+ {
+ "parameterName": "FileDigest",
+ "parameterValue": "/fd \"SHA256\""
+ },
+ {
+ "parameterName": "PageHash",
+ "parameterValue": "/NPH"
+ },
+ {
+ "parameterName": "TimeStamp",
+ "parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
+ }
+ ],
+ "ToolName": "sign",
+ "ToolVersion": "1.0"
+ },
+ {
+ "KeyCode": "CP-230012",
+ "OperationSetCode": "SigntoolVerify",
+ "Parameters": [],
+ "ToolName": "sign",
+ "ToolVersion": "1.0"
+ }
+ ]
+ }
+ }
+ ]
+}
diff --git a/.pipelines/release.yml b/.pipelines/release.yml
index aa303baa370..adb6d0a0e40 100644
--- a/.pipelines/release.yml
+++ b/.pipelines/release.yml
@@ -163,6 +163,77 @@ extends:
clean: true
maximumCpuCount: true
+ ### BEGIN SECTION - build and sign nuget packages for abstracted UI utils
+ - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@3
+ displayName: Sign Utilities libraries
+ inputs:
+ ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
+ FolderPath: 'src/modules'
+ signType: batchSigning
+ batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_abstracted_utils_dll.json'
+ ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
+
+ - task: VSBuild@1
+ displayName: Create Hosts File Editor package
+ inputs:
+ solution: '**\HostsUILib.csproj'
+ vsVersion: 17.0
+ msbuildArgs: /p:CIBuild=true -t:pack /bl:$(Build.SourcesDirectory)\msbuild.binlog
+ configuration: $(BuildConfiguration)
+ maximumCpuCount: true
+
+ - task: VSBuild@1
+ displayName: Create Environment Variables Editor package
+ inputs:
+ solution: '**\EnvironmentVariablesUILib.csproj'
+ vsVersion: 17.0
+ msbuildArgs: /p:CIBuild=true -t:pack /bl:$(Build.SourcesDirectory)\msbuild.binlog
+ configuration: $(BuildConfiguration)
+ maximumCpuCount: true
+
+ - task: VSBuild@1
+ displayName: Create Registry Preview package
+ inputs:
+ solution: '**\RegistryPreviewUILib.csproj'
+ vsVersion: 17.0
+ msbuildArgs: /p:CIBuild=true -t:pack /bl:$(Build.SourcesDirectory)\msbuild.binlog
+ configuration: $(BuildConfiguration)
+ maximumCpuCount: true
+
+ - task: CopyFiles@2
+ displayName: Copying nuget packages file over
+ inputs:
+ contents: "**/bin/Release/PowerToys*.nupkg"
+ flattenFolders: True
+ targetFolder: $(Build.ArtifactStagingDirectory)/nupkg
+
+ - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@3
+ displayName: Submit *.nupkg to ESRP for code signing
+ inputs:
+ ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
+ FolderPath: $(Build.ArtifactStagingDirectory)/nupkg
+ Pattern: '*.nupkg'
+ UseMinimatch: true
+ signConfigType: inlineSignParams
+ inlineOperation: >-
+ [
+ {
+ "KeyCode": "CP-401405",
+ "OperationCode": "NuGetSign",
+ "Parameters": {},
+ "ToolName": "sign",
+ "ToolVersion": "1.0"
+ },
+ {
+ "KeyCode": "CP-401405",
+ "OperationCode": "NuGetVerify",
+ "Parameters": {},
+ "ToolName": "sign",
+ "ToolVersion": "1.0"
+ }
+ ]
+ ### END SECTION - build and sign nuget packages for abstracted UI utils
+
- task: VSBuild@1
displayName: Build BugReportTool
inputs:
diff --git a/.pipelines/verifyArm64Configuration.ps1 b/.pipelines/verifyArm64Configuration.ps1
index 56e06c8f65a..3a6a9cfe29c 100644
--- a/.pipelines/verifyArm64Configuration.ps1
+++ b/.pipelines/verifyArm64Configuration.ps1
@@ -33,7 +33,10 @@ if($arm64SlnConfigs.Length -lt 2) {
# List projects only.
$projects = $solutionFile.ProjectsInOrder | Where-Object {
- $_.ProjectType -eq "KnownToBeMSBuildFormat"
+ $_.ProjectType -eq "KnownToBeMSBuildFormat" -and
+ $_.ProjectName -ne "EnvironmentVariablesUILib" -and # UI Lib to be shipped as a nuget too, so it will be built for Any CPU
+ $_.ProjectName -ne "HostsUILib" -and # UI Lib to be shipped as a nuget too, so it will be built for Any CPU
+ $_.ProjectName -ne "RegistryPreviewUILib" # UI Lib to be shipped as a nuget too, so it will be built for Any CPU
};
# Enumerate through the projects and add any project with a mismatched platform and project configuration
diff --git a/PowerToys.sln b/PowerToys.sln
index 7d6e2aa8c3f..6fd164f0887 100644
--- a/PowerToys.sln
+++ b/PowerToys.sln
@@ -1901,18 +1901,18 @@ Global
{C97D9A5D-206C-454E-997E-009E227D7F02}.Release|x64.Build.0 = Release|x64
{C97D9A5D-206C-454E-997E-009E227D7F02}.Release|x86.ActiveCfg = Release|x64
{C97D9A5D-206C-454E-997E-009E227D7F02}.Release|x86.Build.0 = Release|x64
- {31D1C81D-765F-4446-AA62-E743F6325049}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {31D1C81D-765F-4446-AA62-E743F6325049}.Debug|ARM64.Build.0 = Debug|ARM64
- {31D1C81D-765F-4446-AA62-E743F6325049}.Debug|x64.ActiveCfg = Debug|x64
- {31D1C81D-765F-4446-AA62-E743F6325049}.Debug|x64.Build.0 = Debug|x64
- {31D1C81D-765F-4446-AA62-E743F6325049}.Debug|x86.ActiveCfg = Debug|x64
- {31D1C81D-765F-4446-AA62-E743F6325049}.Debug|x86.Build.0 = Debug|x64
- {31D1C81D-765F-4446-AA62-E743F6325049}.Release|ARM64.ActiveCfg = Release|ARM64
- {31D1C81D-765F-4446-AA62-E743F6325049}.Release|ARM64.Build.0 = Release|ARM64
- {31D1C81D-765F-4446-AA62-E743F6325049}.Release|x64.ActiveCfg = Release|x64
- {31D1C81D-765F-4446-AA62-E743F6325049}.Release|x64.Build.0 = Release|x64
- {31D1C81D-765F-4446-AA62-E743F6325049}.Release|x86.ActiveCfg = Release|x64
- {31D1C81D-765F-4446-AA62-E743F6325049}.Release|x86.Build.0 = Release|x64
+ {31D1C81D-765F-4446-AA62-E743F6325049}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {31D1C81D-765F-4446-AA62-E743F6325049}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {31D1C81D-765F-4446-AA62-E743F6325049}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {31D1C81D-765F-4446-AA62-E743F6325049}.Debug|x64.Build.0 = Debug|Any CPU
+ {31D1C81D-765F-4446-AA62-E743F6325049}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {31D1C81D-765F-4446-AA62-E743F6325049}.Debug|x86.Build.0 = Debug|Any CPU
+ {31D1C81D-765F-4446-AA62-E743F6325049}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {31D1C81D-765F-4446-AA62-E743F6325049}.Release|ARM64.Build.0 = Release|Any CPU
+ {31D1C81D-765F-4446-AA62-E743F6325049}.Release|x64.ActiveCfg = Release|Any CPU
+ {31D1C81D-765F-4446-AA62-E743F6325049}.Release|x64.Build.0 = Release|Any CPU
+ {31D1C81D-765F-4446-AA62-E743F6325049}.Release|x86.ActiveCfg = Release|Any CPU
+ {31D1C81D-765F-4446-AA62-E743F6325049}.Release|x86.Build.0 = Release|Any CPU
{E2D03E0F-7A75-4813-9F4B-D8763D43FD3A}.Debug|ARM64.ActiveCfg = Debug|ARM64
{E2D03E0F-7A75-4813-9F4B-D8763D43FD3A}.Debug|ARM64.Build.0 = Debug|ARM64
{E2D03E0F-7A75-4813-9F4B-D8763D43FD3A}.Debug|x64.ActiveCfg = Debug|x64
@@ -2261,18 +2261,18 @@ Global
{9CE59ED5-7087-4353-88EB-788038A73CEC}.Release|x64.Build.0 = Release|x64
{9CE59ED5-7087-4353-88EB-788038A73CEC}.Release|x86.ActiveCfg = Release|x64
{9CE59ED5-7087-4353-88EB-788038A73CEC}.Release|x86.Build.0 = Release|x64
- {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Debug|ARM64.Build.0 = Debug|ARM64
- {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Debug|x64.ActiveCfg = Debug|x64
- {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Debug|x64.Build.0 = Debug|x64
- {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Debug|x86.ActiveCfg = Debug|x64
- {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Debug|x86.Build.0 = Debug|x64
- {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Release|ARM64.ActiveCfg = Release|ARM64
- {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Release|ARM64.Build.0 = Release|ARM64
- {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Release|x64.ActiveCfg = Release|x64
- {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Release|x64.Build.0 = Release|x64
- {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Release|x86.ActiveCfg = Release|x64
- {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Release|x86.Build.0 = Release|x64
+ {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Debug|x64.Build.0 = Debug|Any CPU
+ {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Debug|x86.Build.0 = Debug|Any CPU
+ {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Release|ARM64.Build.0 = Release|Any CPU
+ {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Release|x64.ActiveCfg = Release|Any CPU
+ {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Release|x64.Build.0 = Release|Any CPU
+ {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Release|x86.ActiveCfg = Release|Any CPU
+ {FD86C06A-FB54-4D5E-9831-1CDADF60D45F}.Release|x86.Build.0 = Release|Any CPU
{697C6AF9-0A48-49A9-866C-67DA12384015}.Debug|ARM64.ActiveCfg = Debug|ARM64
{697C6AF9-0A48-49A9-866C-67DA12384015}.Debug|ARM64.Build.0 = Debug|ARM64
{697C6AF9-0A48-49A9-866C-67DA12384015}.Debug|x64.ActiveCfg = Debug|x64
@@ -2381,18 +2381,18 @@ Global
{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B}.Release|x64.Build.0 = Release|x64
{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B}.Release|x86.ActiveCfg = Release|x64
{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B}.Release|x86.Build.0 = Release|x64
- {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Debug|ARM64.Build.0 = Debug|ARM64
- {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Debug|x64.ActiveCfg = Debug|x64
- {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Debug|x64.Build.0 = Debug|x64
- {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Debug|x86.ActiveCfg = Debug|x64
- {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Debug|x86.Build.0 = Debug|x64
- {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Release|ARM64.ActiveCfg = Release|ARM64
- {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Release|ARM64.Build.0 = Release|ARM64
- {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Release|x64.ActiveCfg = Release|x64
- {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Release|x64.Build.0 = Release|x64
- {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Release|x86.ActiveCfg = Release|x64
- {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Release|x86.Build.0 = Release|x64
+ {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Debug|x64.Build.0 = Debug|Any CPU
+ {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Debug|x86.Build.0 = Debug|Any CPU
+ {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Release|ARM64.Build.0 = Release|Any CPU
+ {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Release|x64.ActiveCfg = Release|Any CPU
+ {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Release|x64.Build.0 = Release|Any CPU
+ {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Release|x86.ActiveCfg = Release|Any CPU
+ {51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA}.Release|x86.Build.0 = Release|Any CPU
{B9420661-B0E4-4241-ABD4-4A27A1F64250}.Debug|ARM64.ActiveCfg = Debug|ARM64
{B9420661-B0E4-4241-ABD4-4A27A1F64250}.Debug|ARM64.Build.0 = Debug|ARM64
{B9420661-B0E4-4241-ABD4-4A27A1F64250}.Debug|x64.ActiveCfg = Debug|x64
diff --git a/src/modules/EnvironmentVariables/EnvironmentVariablesUILib/EnvironmentVariablesUILib.csproj b/src/modules/EnvironmentVariables/EnvironmentVariablesUILib/EnvironmentVariablesUILib.csproj
index e0322d53894..942e9e60505 100644
--- a/src/modules/EnvironmentVariables/EnvironmentVariablesUILib/EnvironmentVariablesUILib.csproj
+++ b/src/modules/EnvironmentVariables/EnvironmentVariablesUILib/EnvironmentVariablesUILib.csproj
@@ -10,17 +10,23 @@
false
false
PowerToys.EnvironmentVariablesUILib
+ AnyCPU
PowerToys.EnvironmentVariablesUILib.pri
true
true
+
+
+ Microsoft Corporation
+ Implements the UI control for the PowerToys Environment Variables Utility
+ MIT
+
+
-
-
@@ -62,7 +68,6 @@
-
diff --git a/src/modules/Hosts/HostsUILib/HostsUILib.csproj b/src/modules/Hosts/HostsUILib/HostsUILib.csproj
index 2ae4fe4068e..d4b309ca1e9 100644
--- a/src/modules/Hosts/HostsUILib/HostsUILib.csproj
+++ b/src/modules/Hosts/HostsUILib/HostsUILib.csproj
@@ -10,18 +10,23 @@
false
false
PowerToys.HostsUILib
+ AnyCPU
PowerToys.HostsUILib.pri
-
true
true
+
+
+ Microsoft Corporation
+ Implements the UI control for the PowerToys Hosts File Editor Utility
+ MIT
+
+
-
-
diff --git a/src/modules/registrypreview/RegistryPreviewUILib/RegistryPreviewUILib.csproj b/src/modules/registrypreview/RegistryPreviewUILib/RegistryPreviewUILib.csproj
index 9d20a7c64d3..1069ed73a26 100644
--- a/src/modules/registrypreview/RegistryPreviewUILib/RegistryPreviewUILib.csproj
+++ b/src/modules/registrypreview/RegistryPreviewUILib/RegistryPreviewUILib.csproj
@@ -9,6 +9,7 @@
false
false
PowerToys.RegistryPreviewUILib
+ AnyCPU
PowerToys.RegistryPreviewUILib.pri
@@ -16,11 +17,16 @@
true
+
+
+ Microsoft Corporation
+ Implements the UI control for the PowerToys Registry Preview Utility
+ MIT
+
+
-
-
@@ -57,7 +63,6 @@
-