Skip to content
This repository was archived by the owner on Feb 14, 2025. It is now read-only.

Commit ea94ed0

Browse files
committed
Modernize signing infrastructure
1 parent 5eaf0df commit ea94ed0

4 files changed

Lines changed: 24 additions & 85 deletions

File tree

tools/Dotnet.targets

Lines changed: 0 additions & 60 deletions
This file was deleted.

tools/WixBuild.Signing.targets

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,12 @@
22
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
33

44

5-
<Project InitialTargets="DotnetToolRestore" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
6-
<!-- Ensure that the SignClient is initialized. -->
7-
<Import Project="Dotnet.targets" Condition="'$(WixBuildDotnetToolPropertiesDefined)'!='true'" />
8-
5+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
96
<PropertyGroup>
10-
<_SigningAppSettingsPath>$(MSBuildThisFileDirectory)appsettings.json</_SigningAppSettingsPath>
11-
<_SigningFilterNonePath>$(MSBuildThisFileDirectory)signing-filter.none.txt</_SigningFilterNonePath>
12-
<_SigningName>WiX Toolset</_SigningName>
13-
<_SigningUrl>http://wixtoolset.org</_SigningUrl>
7+
<SigningToolExe>$(WIX_ROOT).tools\sign.exe</SigningToolExe>
8+
<SigningCommand>code azure-key-vault</SigningCommand>
9+
<SigningFilelist>$(MSBuildThisFileDirectory)signing-filter.none.txt</SigningFilelist>
10+
<SigningConfiguration>--description "WiX Toolset" --description-url "https://wixtoolset.org/" --timestamp-url "http://timestamp.digicert.com" --file-list "$(SigningFilelist)" --azure-key-vault-url $(SigningKeyVaultUri) --azure-key-vault-tenant-id $(SigningTenantId) --azure-key-vault-client-id $(SigningClientId) --azure-key-vault-client-secret $(SigningClientSecret) --azure-key-vault-certificate $(SigningCertName)</SigningConfiguration>
1411
</PropertyGroup>
1512

1613
<ItemGroup>
@@ -19,7 +16,10 @@
1916
</ItemGroup>
2017

2118
<Target Name="SignFiles" AfterTargets="AfterBuild" Condition="'$(SignOutput)'=='true'">
22-
<Exec Command="&quot;$(SignClientPath)&quot; sign -c &quot;$(_SigningAppSettingsPath)&quot; -i &quot;%(FilesToSign.FullPath)&quot; -f &quot;$(_SigningFilterNonePath)&quot; -s &quot;$(SignClientSecret)&quot; -r &quot;$(SignClientUser)&quot; -n &quot;$(_SigningName)&quot; -d &quot;$(_SigningName)&quot; -u &quot;$(_SigningUrl)&quot;" />
19+
<Message Importance="high" Text="Signing file: %(FilesToSign.FullPath)" />
20+
21+
<Exec Command='"$(SigningToolExe)" $(SigningCommand) $(SigningConfiguration) "%(FilesToSign.FullPath)"'
22+
WorkingDirectory="$(MSBuildProjectDirectory)" EchoOff="true" />
2323
</Target>
2424

2525
<!--
@@ -30,24 +30,24 @@
3030
3131
================================================================================================
3232
-->
33-
<Target Name="SignCabs">
34-
<!-- <Exec Command="&quot;$(SignClientPath)&quot; sign -c &quot;$(_SigningAppSettingsPath)&quot; -i &quot;%(SignCabs.FullPath)&quot; -f &quot;$(_SigningFilterNonePath)&quot; -s &quot;$(SignClientSecret)&quot; -r &quot;$(SignClientUser)&quot; -n &quot;$(_SigningName)&quot; -d &quot;$(_SigningName)&quot; -u &quot;$(_SigningUrl)&quot;" /> -->
35-
</Target>
33+
<Target Name="SignCabs" />
3634

37-
<Target Name="SignMsi">
38-
<!-- <Exec Command="&quot;$(SignClientPath)&quot; sign -c &quot;$(_SigningAppSettingsPath)&quot; -i &quot;%(SignMsi.FullPath)&quot; -f &quot;$(_SigningFilterNonePath)&quot; -s &quot;$(SignClientSecret)&quot; -r &quot;$(SignClientUser)&quot; -n &quot;$(_SigningName)&quot; -d &quot;$(_SigningName)&quot; -u &quot;$(_SigningUrl)&quot;" /> -->
39-
</Target>
35+
<Target Name="SignMsi" />
4036

41-
<Target Name="SignContainers">
42-
<Exec Command="&quot;$(SignClientPath)&quot; sign -c &quot;$(_SigningAppSettingsPath)&quot; -i &quot;%(SignContainers.FullPath)&quot; -f &quot;$(_SigningFilterNonePath)&quot; -s &quot;$(SignClientSecret)&quot; -r &quot;$(SignClientUser)&quot; -n &quot;$(_SigningName)&quot; -d &quot;$(_SigningName)&quot; -u &quot;$(_SigningUrl)&quot;" />
43-
</Target>
37+
<Target Name="SignContainers" />
4438

4539
<Target Name="SignBundleEngine">
46-
<Exec Command="&quot;$(SignClientPath)&quot; sign -c &quot;$(_SigningAppSettingsPath)&quot; -i &quot;%(SignBundleEngine.FullPath)&quot; -f &quot;$(_SigningFilterNonePath)&quot; -s &quot;$(SignClientSecret)&quot; -r &quot;$(SignClientUser)&quot; -n &quot;$(_SigningName)&quot; -d &quot;$(_SigningName)&quot; -u &quot;$(_SigningUrl)&quot;" />
40+
<Message Importance="high" Text="Signing bundle engine: @(SignBundleEngine->&apos;%(Identity)&apos;)" />
41+
42+
<Exec Command='"$(SigningToolExe)" $(SigningCommand) $(SigningConfiguration) "@(SignBundleEngine->&apos;%(Identity)&apos;)"'
43+
WorkingDirectory="$(MSBuildProjectDirectory)" EchoOff="true" />
4744
</Target>
4845

4946
<Target Name="SignBundle">
50-
<Exec Command="&quot;$(SignClientPath)&quot; sign -c &quot;$(_SigningAppSettingsPath)&quot; -i &quot;%(SignBundle.FullPath)&quot; -f &quot;$(_SigningFilterNonePath)&quot; -s &quot;$(SignClientSecret)&quot; -r &quot;$(SignClientUser)&quot; -n &quot;$(_SigningName)&quot; -d &quot;$(_SigningName)&quot; -u &quot;$(_SigningUrl)&quot;" />
47+
<Message Importance="high" Text="Signing bundle: @(SignBundle->&apos;%(Identity)&apos;)" />
48+
49+
<Exec Command='"$(SigningToolExe)" $(SigningCommand) $(SigningConfiguration) "@(SignBundle->&apos;%(Identity)&apos;)"'
50+
WorkingDirectory="$(MSBuildProjectDirectory)" EchoOff="true" />
5151
</Target>
5252

5353
<!-- Sentinel value that indicates WixBuid.Signing.targets has been initialized. -->

tools/WixBuild.Tools.targets

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,13 +125,13 @@
125125

126126
<Error
127127
Code="WIXBUILD014"
128-
Condition=" '$(PleaseSignOutput)'!='' and !Exists('$(SignClientPath)') "
129-
Text="Cannot locate SignClient. Ensure SignClient is present at &quot;$(SignClientPath)&quot;. If not, run the following command from the root of the project: msbuild -t:DotnetToolRestore" />
128+
Condition=" '$(PleaseSignOutput)'!='' and !Exists('$(SigningToolExe)') "
129+
Text="Cannot locate SigningTool. Ensure SigningTool is present at &quot;$(SigningToolExe)&quot;." />
130130

131131
<Error
132132
Code="WIXBUILD015"
133-
Condition=" '$(PleaseSignOutput)'!='' and ('$(SignClientUser)'=='' or '$(SignClientSecret)'=='') "
134-
Text="Signing is requested but one or both required properites SignClientUser and SignClientSecret were not specified on the command line or as environment variables." />
133+
Condition=" '$(PleaseSignOutput)'!='' and ('$(SigningKeyVaultUri)'=='' or '$(SigningCertName)'=='') "
134+
Text="Signing is requested but one or both required properites SigningKeyVaultUri and SigningCertName were not specified on the command line or as environment variables." />
135135

136136
<Error
137137
Code="WIXBUILD016"

tools/WixBuild.props

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
</PropertyGroup>
3131

3232
<Import Project="Nuget.targets" />
33-
<Import Project="Dotnet.targets" />
3433

3534
<!-- Converts the VS-standard Debug and Release to the wix-standard debug and ship -->
3635
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' or '$(Configuration)' == '' or '$(WixFlavor)' == 'debug' ">

0 commit comments

Comments
 (0)