diff options
7 files changed, 122 insertions, 98 deletions
diff --git a/src/test/wix/TestData/WixprojPackageVcxprojWindowsApp/WixprojPackageVcxprojWindowsApp.wixproj b/src/test/wix/TestData/WixprojPackageVcxprojWindowsApp/WixprojPackageVcxprojWindowsApp.wixproj index 63caf5c0..27affb11 100644 --- a/src/test/wix/TestData/WixprojPackageVcxprojWindowsApp/WixprojPackageVcxprojWindowsApp.wixproj +++ b/src/test/wix/TestData/WixprojPackageVcxprojWindowsApp/WixprojPackageVcxprojWindowsApp.wixproj | |||
@@ -3,6 +3,7 @@ | |||
3 | <Project Sdk='WixToolset.Sdk'> | 3 | <Project Sdk='WixToolset.Sdk'> |
4 | <PropertyGroup> | 4 | <PropertyGroup> |
5 | <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally> | 5 | <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally> |
6 | <SignOutput>true</SignOutput> | ||
6 | </PropertyGroup> | 7 | </PropertyGroup> |
7 | 8 | ||
8 | <ItemGroup> | 9 | <ItemGroup> |
@@ -12,4 +13,8 @@ | |||
12 | 13 | ||
13 | <PackageReference Include="Wixtoolset.UI.wixext" /> | 14 | <PackageReference Include="Wixtoolset.UI.wixext" /> |
14 | </ItemGroup> | 15 | </ItemGroup> |
16 | |||
17 | <Target Name="SignMsi"> | ||
18 | <Warning Text="SignMsi = @(SignMsi)" /> | ||
19 | </Target> | ||
15 | </Project> | 20 | </Project> |
diff --git a/src/test/wix/WixE2E/WixE2EFixture.cs b/src/test/wix/WixE2E/WixE2EFixture.cs index f9094fb2..4a0b78d8 100644 --- a/src/test/wix/WixE2E/WixE2EFixture.cs +++ b/src/test/wix/WixE2E/WixE2EFixture.cs | |||
@@ -55,6 +55,14 @@ namespace WixE2E | |||
55 | 55 | ||
56 | var result = RestoreAndBuild(projectPath); | 56 | var result = RestoreAndBuild(projectPath); |
57 | result.AssertSuccess(); | 57 | result.AssertSuccess(); |
58 | |||
59 | var signingStatement = result.Output.Where(s => s.Contains("warning :")) | ||
60 | .Select(s => s.Replace(Path.GetDirectoryName(projectPath), "<projectFolder>").Replace(@"\Debug\", @"\<configuration>\").Replace(@"\Release\", @"\<configuration>\")) | ||
61 | .ToArray(); | ||
62 | WixAssert.CompareLineByLine(new[] | ||
63 | { | ||
64 | @"<projectFolder>\WixprojPackageVcxprojWindowsApp.wixproj(18,5): warning : SignMsi = obj\<configuration>\en-US\WixprojPackageVcxprojWindowsApp.msi;obj\<configuration>\ja-JP\WixprojPackageVcxprojWindowsApp.msi" | ||
65 | }, signingStatement); | ||
58 | } | 66 | } |
59 | 67 | ||
60 | [Fact] | 68 | [Fact] |
diff --git a/src/wix/WixToolset.Sdk/WixToolset.Sdk.csproj b/src/wix/WixToolset.Sdk/WixToolset.Sdk.csproj index 4a5e6229..eca65bda 100644 --- a/src/wix/WixToolset.Sdk/WixToolset.Sdk.csproj +++ b/src/wix/WixToolset.Sdk/WixToolset.Sdk.csproj | |||
@@ -13,6 +13,7 @@ | |||
13 | <ItemGroup> | 13 | <ItemGroup> |
14 | <Content Include="build\$(MSBuildThisFileName).props" CopyToOutputDirectory="PreserveNewest" /> | 14 | <Content Include="build\$(MSBuildThisFileName).props" CopyToOutputDirectory="PreserveNewest" /> |
15 | <Content Include="build\$(MSBuildThisFileName).targets" CopyToOutputDirectory="PreserveNewest" /> | 15 | <Content Include="build\$(MSBuildThisFileName).targets" CopyToOutputDirectory="PreserveNewest" /> |
16 | <Content Include="tools\WixToolset.Signing.props" CopyToOutputDirectory="PreserveNewest" /> | ||
16 | <Content Include="tools\WixToolset.Signing.targets" CopyToOutputDirectory="PreserveNewest" /> | 17 | <Content Include="tools\WixToolset.Signing.targets" CopyToOutputDirectory="PreserveNewest" /> |
17 | <Content Include="tools\wix.props" CopyToOutputDirectory="PreserveNewest" /> | 18 | <Content Include="tools\wix.props" CopyToOutputDirectory="PreserveNewest" /> |
18 | <Content Include="tools\wix.targets" CopyToOutputDirectory="PreserveNewest" /> | 19 | <Content Include="tools\wix.targets" CopyToOutputDirectory="PreserveNewest" /> |
diff --git a/src/wix/WixToolset.Sdk/tools/WixToolset.Signing.props b/src/wix/WixToolset.Sdk/tools/WixToolset.Signing.props new file mode 100644 index 00000000..0b2522c8 --- /dev/null +++ b/src/wix/WixToolset.Sdk/tools/WixToolset.Signing.props | |||
@@ -0,0 +1,102 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | ||
2 | <!-- 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. --> | ||
3 | |||
4 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
5 | <PropertyGroup> | ||
6 | <WixSigningPropsImported>true</WixSigningPropsImported> | ||
7 | </PropertyGroup> | ||
8 | |||
9 | <!-- | ||
10 | ================================================================================================== | ||
11 | BeforeSigning | ||
12 | |||
13 | Redefine this target in your project in order to run tasks just before all signing tasks. | ||
14 | ================================================================================================== | ||
15 | --> | ||
16 | <Target Name="BeforeSigning" /> | ||
17 | |||
18 | <!-- | ||
19 | ================================================================================================== | ||
20 | SignMsm | ||
21 | |||
22 | Redefine this target in your project in order to sign merge modules. | ||
23 | |||
24 | [IN] | ||
25 | @(SignMsm) - merge module files to sign. | ||
26 | ================================================================================================== | ||
27 | --> | ||
28 | <Target Name="SignMsm" /> | ||
29 | |||
30 | <!-- | ||
31 | ================================================================================================== | ||
32 | SignCabs | ||
33 | |||
34 | Redefine this target in your project in order to sign the cabs of your database. | ||
35 | |||
36 | [IN] | ||
37 | @(SignCabs) - cabinet files to sign. | ||
38 | ================================================================================================== | ||
39 | --> | ||
40 | <Target Name="SignCabs" /> | ||
41 | |||
42 | <!-- | ||
43 | ================================================================================================== | ||
44 | SignMsi | ||
45 | |||
46 | Redefine this target in your project in order to sign your database, after it has been inscribed | ||
47 | with the signatures of your signed cabs. | ||
48 | |||
49 | [IN] | ||
50 | @(SignMsi) - database files to sign. | ||
51 | ================================================================================================== | ||
52 | --> | ||
53 | <Target Name="SignMsi" /> | ||
54 | |||
55 | <!-- | ||
56 | ================================================================================================== | ||
57 | SignContainers | ||
58 | |||
59 | Redefine this target in your project in order to sign your bundle's detached containers. | ||
60 | |||
61 | [IN] | ||
62 | @(SignContainers) - detached container files to sign. | ||
63 | ================================================================================================== | ||
64 | --> | ||
65 | <Target Name="SignContainers" /> | ||
66 | |||
67 | <!-- | ||
68 | ================================================================================================== | ||
69 | SignBundleEngine | ||
70 | |||
71 | Redefine this target in your project in order to sign your bundle, after it has been inscribed | ||
72 | with the signatures of your signed containers. | ||
73 | |||
74 | [IN] | ||
75 | @(SignBundleEngine) - bundle engine file to sign. | ||
76 | ================================================================================================== | ||
77 | --> | ||
78 | <Target Name="SignBundleEngine" /> | ||
79 | |||
80 | <!-- | ||
81 | ================================================================================================== | ||
82 | SignBundle | ||
83 | |||
84 | Redefine this target in your project in order to sign your bundle, after the attached container | ||
85 | is reattached. | ||
86 | |||
87 | [IN] | ||
88 | @(SignBundle) - bundle file to sign. | ||
89 | ================================================================================================== | ||
90 | --> | ||
91 | <Target Name="SignBundle" /> | ||
92 | |||
93 | <!-- | ||
94 | ================================================================================================== | ||
95 | AfterSigning | ||
96 | |||
97 | Redefine this target in your project in order to run tasks just after all signing tasks. | ||
98 | ================================================================================================== | ||
99 | --> | ||
100 | <Target Name="AfterSigning" /> | ||
101 | |||
102 | </Project> | ||
diff --git a/src/wix/WixToolset.Sdk/tools/WixToolset.Signing.targets b/src/wix/WixToolset.Sdk/tools/WixToolset.Signing.targets index 8b850fd7..c414bcf1 100644 --- a/src/wix/WixToolset.Sdk/tools/WixToolset.Signing.targets +++ b/src/wix/WixToolset.Sdk/tools/WixToolset.Signing.targets | |||
@@ -3,10 +3,13 @@ | |||
3 | 3 | ||
4 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | 4 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
5 | <PropertyGroup> | 5 | <PropertyGroup> |
6 | <WixSigningTargetsImported>true</WixSigningTargetsImported> | ||
6 | <SignedFileName Condition=" '$(SignedFileName)' == '' ">$(MSBuildProjectFile).Signed.txt</SignedFileName> | 7 | <SignedFileName Condition=" '$(SignedFileName)' == '' ">$(MSBuildProjectFile).Signed.txt</SignedFileName> |
7 | <SignedFilePath>$(IntermediateOutputPath)$(SignedFileName)</SignedFilePath> | 8 | <SignedFilePath>$(IntermediateOutputPath)$(SignedFileName)</SignedFilePath> |
8 | </PropertyGroup> | 9 | </PropertyGroup> |
9 | 10 | ||
11 | <Import Project="WixToolset.Signing.props" Condition=" '$(WixSigningPropsImported)' != 'true' " /> | ||
12 | |||
10 | <UsingTask TaskName="GetCabList" Condition=" '$(WixTasksPath64)' == '' " AssemblyFile="$(WixTasksPath)" /> | 13 | <UsingTask TaskName="GetCabList" Condition=" '$(WixTasksPath64)' == '' " AssemblyFile="$(WixTasksPath)" /> |
11 | <UsingTask TaskName="GetCabList" Condition=" '$(WixTasksPath64)' != '' " AssemblyFile="$(WixTasksPath)" Architecture="x86" /> | 14 | <UsingTask TaskName="GetCabList" Condition=" '$(WixTasksPath64)' != '' " AssemblyFile="$(WixTasksPath)" Architecture="x86" /> |
12 | <UsingTask TaskName="GetCabList" Condition=" '$(WixTasksPath64)' != '' " AssemblyFile="$(WixTasksPath64)" Architecture="x64" /> | 15 | <UsingTask TaskName="GetCabList" Condition=" '$(WixTasksPath64)' != '' " AssemblyFile="$(WixTasksPath64)" Architecture="x64" /> |
@@ -309,97 +312,4 @@ | |||
309 | </ReattachSignedBundleEngine> | 312 | </ReattachSignedBundleEngine> |
310 | </Target> | 313 | </Target> |
311 | 314 | ||
312 | <!-- | ||
313 | ================================================================================================== | ||
314 | BeforeSigning | ||
315 | |||
316 | Redefine this target in your project in order to run tasks just before all signing tasks. | ||
317 | ================================================================================================== | ||
318 | --> | ||
319 | <Target Name="BeforeSigning" /> | ||
320 | |||
321 | <!-- | ||
322 | ================================================================================================== | ||
323 | SignMsm | ||
324 | |||
325 | Redefine this target in your project in order to sign merge modules. | ||
326 | |||
327 | [IN] | ||
328 | @(SignMsm) - merge module files to sign. | ||
329 | ================================================================================================== | ||
330 | --> | ||
331 | <Target Name="SignMsm" /> | ||
332 | |||
333 | <!-- | ||
334 | ================================================================================================== | ||
335 | SignCabs | ||
336 | |||
337 | Redefine this target in your project in order to sign the cabs of your database. | ||
338 | |||
339 | [IN] | ||
340 | @(SignCabs) - cabinet files to sign. | ||
341 | ================================================================================================== | ||
342 | --> | ||
343 | <Target Name="SignCabs" /> | ||
344 | |||
345 | <!-- | ||
346 | ================================================================================================== | ||
347 | SignMsi | ||
348 | |||
349 | Redefine this target in your project in order to sign your database, after it has been inscribed | ||
350 | with the signatures of your signed cabs. | ||
351 | |||
352 | [IN] | ||
353 | @(SignMsi) - database files to sign. | ||
354 | ================================================================================================== | ||
355 | --> | ||
356 | <Target Name="SignMsi" /> | ||
357 | |||
358 | <!-- | ||
359 | ================================================================================================== | ||
360 | SignContainers | ||
361 | |||
362 | Redefine this target in your project in order to sign your bundle's detached containers. | ||
363 | |||
364 | [IN] | ||
365 | @(SignContainers) - detached container files to sign. | ||
366 | ================================================================================================== | ||
367 | --> | ||
368 | <Target Name="SignContainers" /> | ||
369 | |||
370 | <!-- | ||
371 | ================================================================================================== | ||
372 | SignBundleEngine | ||
373 | |||
374 | Redefine this target in your project in order to sign your bundle, after it has been inscribed | ||
375 | with the signatures of your signed containers. | ||
376 | |||
377 | [IN] | ||
378 | @(SignBundleEngine) - bundle engine file to sign. | ||
379 | ================================================================================================== | ||
380 | --> | ||
381 | <Target Name="SignBundleEngine" /> | ||
382 | |||
383 | <!-- | ||
384 | ================================================================================================== | ||
385 | SignBundle | ||
386 | |||
387 | Redefine this target in your project in order to sign your bundle, after the attached container | ||
388 | is reattached. | ||
389 | |||
390 | [IN] | ||
391 | @(SignBundle) - bundle file to sign. | ||
392 | ================================================================================================== | ||
393 | --> | ||
394 | <Target Name="SignBundle" /> | ||
395 | |||
396 | <!-- | ||
397 | ================================================================================================== | ||
398 | AfterSigning | ||
399 | |||
400 | Redefine this target in your project in order to run tasks just after all signing tasks. | ||
401 | ================================================================================================== | ||
402 | --> | ||
403 | <Target Name="AfterSigning" /> | ||
404 | |||
405 | </Project> | 315 | </Project> |
diff --git a/src/wix/WixToolset.Sdk/tools/wix.props b/src/wix/WixToolset.Sdk/tools/wix.props index d3c202bf..c526d865 100644 --- a/src/wix/WixToolset.Sdk/tools/wix.props +++ b/src/wix/WixToolset.Sdk/tools/wix.props | |||
@@ -19,6 +19,8 @@ | |||
19 | 19 | ||
20 | <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> | 20 | <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> |
21 | 21 | ||
22 | <Import Project="WixToolset.Signing.props" Condition=" '$(WixSigningPropsImported)' != 'true' " /> | ||
23 | |||
22 | <PropertyGroup> | 24 | <PropertyGroup> |
23 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | 25 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
24 | </PropertyGroup> | 26 | </PropertyGroup> |
diff --git a/src/wix/WixToolset.Sdk/tools/wix.targets b/src/wix/WixToolset.Sdk/tools/wix.targets index e18eaf62..a4603c47 100644 --- a/src/wix/WixToolset.Sdk/tools/wix.targets +++ b/src/wix/WixToolset.Sdk/tools/wix.targets | |||
@@ -31,10 +31,6 @@ | |||
31 | <WixTasksPath Condition=" '$(WixTasksPath)' == '' ">$(WixBinDir)WixToolset.BuildTasks.dll</WixTasksPath> | 31 | <WixTasksPath Condition=" '$(WixTasksPath)' == '' ">$(WixBinDir)WixToolset.BuildTasks.dll</WixTasksPath> |
32 | </PropertyGroup> | 32 | </PropertyGroup> |
33 | 33 | ||
34 | <PropertyGroup> | ||
35 | <WixSigningTargetsPath Condition=" '$(WixSigningTargetsPath)' == '' ">$(MSBuildThisFileDirectory)WixToolset.Signing.targets</WixSigningTargetsPath> | ||
36 | </PropertyGroup> | ||
37 | |||
38 | <ItemGroup Condition=" '$(EnableDefaultItems)' == 'true' "> | 34 | <ItemGroup Condition=" '$(EnableDefaultItems)' == 'true' "> |
39 | <Compile Include="**/*.wxs" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" Condition=" '$(EnableDefaultCompileItems)' == 'true' " /> | 35 | <Compile Include="**/*.wxs" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" Condition=" '$(EnableDefaultCompileItems)' == 'true' " /> |
40 | <EmbeddedResource Include="**/*.wxl" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" Condition=" '$(EnableDefaultEmbeddedResourceItems)' == 'true' " /> | 36 | <EmbeddedResource Include="**/*.wxl" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" Condition=" '$(EnableDefaultEmbeddedResourceItems)' == 'true' " /> |
@@ -937,7 +933,7 @@ | |||
937 | </Copy> | 933 | </Copy> |
938 | </Target> | 934 | </Target> |
939 | 935 | ||
940 | <Import Project="$(WixSigningTargetsPath)" /> | 936 | <Import Project="WixToolset.Signing.targets" Condition=" '$(WixSigningTargetsImported)' != 'true' " /> |
941 | 937 | ||
942 | <!-- Extension point: Define CustomAfterWixTargets to a .targets file that you want to include after this file. --> | 938 | <!-- Extension point: Define CustomAfterWixTargets to a .targets file that you want to include after this file. --> |
943 | <Import Project="$(CustomAfterWixTargets)" Condition=" '$(CustomAfterWixTargets)' != '' and Exists('$(CustomAfterWixTargets)')" /> | 939 | <Import Project="$(CustomAfterWixTargets)" Condition=" '$(CustomAfterWixTargets)' != '' and Exists('$(CustomAfterWixTargets)')" /> |