Skip to content

Commit 8402697

Browse files
dianaquDiana Qu
andauthored
Publish Installer Samples (#56)
* include wix. update some comment * enable package by default * rename projects * comment on direcotry path * test out publicKeyCertifacate * runtime case * update runtime fwlink eula * update regkey path * break up long comment * break down long line comment Co-authored-by: Diana Qu <[email protected]>
1 parent 14062fe commit 8402697

File tree

12 files changed

+503
-2
lines changed

12 files changed

+503
-2
lines changed

SampleApps/WebView2APISample/.gitignore renamed to SampleApps/.gitignore

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,15 @@ packages/
2323
*.aps
2424

2525
# Ignore files generated by midl
26-
/HostObjectSample_h.h
27-
/HostObjectSample_i.c
26+
WebView2APISample/HostObjectSample_h.h
27+
WebView2APISample/HostObjectSample_i.c
2828

2929
# Make sure script debug config is checked in for vendor testing
3030
!.vscode
31+
32+
# Make sure testing use standalond installer and WVRT bootstrapper not included to project
33+
MicrosoftEdgeWebview2Setup.exe
34+
MicrosoftEdgeWebView2RuntimeInstallerX64.exe
35+
36+
# Make sure don't pick up the heat generated file
37+
WV2DeploymentWiXCustomActionSample/HeatGeneratedFileList.wxs
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This should be filled with your custom eula
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<!--
3+
***********************************************************************
4+
5+
Copyright (C) Microsoft Corporation. All rights reserved.
6+
7+
THIS CODE AND INFORMATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY
8+
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
9+
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
10+
PARTICULAR PURPOSE.
11+
***********************************************************************
12+
-->
13+
14+
<Package
15+
xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
16+
Name="DisplayName"
17+
Culture="Culture"
18+
LicenseAgreement="eula.rtf">
19+
<PackageFiles>
20+
<PackageFile Name="eula.rtf"/>
21+
</PackageFiles>
22+
23+
<!-- Defines a localizable string table for messages. -->
24+
<Strings>
25+
<String Name="DisplayName">Edge WebView2 runtime</String>
26+
<String Name="Culture">en</String>
27+
<String Name="AdminRequired">Administrator permissions are required to install the Microsoft Edge WebView2 runtime.</String>
28+
<String Name="GeneralFailure">A failure occurred attempting to install the Microsoft Edge WebView2 runtime.</String>
29+
<!-- Use of the download link below is governed by the below terms. You may acquire the link for your use at https://developer.microsoft.com/microsoft-edge/webview2/. -->
30+
<!-- Microsoft owns all legal right, title, and interest in and to the WebView2 Runtime Bootstrapper ("Software") and related documentation, including any intellectual property in the Software.
31+
You must acquire all code, including any code obtained from a Microsoft URL, under a separate license directly from Microsoft, including a Microsoft download site (e.g., https://developer.microsoft.com/microsoft-edge/webview2/). -->
32+
<String Name="WebViewRuntime">https://go.microsoft.com/fwlink/p/?LinkId=2124703</String>
33+
</Strings>
34+
</Package>
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<!--
3+
***********************************************************************
4+
5+
Copyright (C) Microsoft Corporation. All rights reserved.
6+
7+
THIS CODE AND INFORMATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY
8+
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
9+
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
10+
PARTICULAR PURPOSE.
11+
***********************************************************************
12+
-->
13+
14+
<Product
15+
xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
16+
ProductCode="Microsoft.Web.WebView2.WebView2Runtime">
17+
18+
<!-- Defines the list of files to be copied on build. -->
19+
<PackageFiles CopyAllPackageFiles="false">
20+
<!-- Download the MicrosoftEdgeWebview2Setup.exe and then invoke -->
21+
<!-- Note that CertificatePublicKey, Hash, Size and Version are subject to change, and installer workflows requiring knowing these attributes ahead of time, such as WiX Bundle, may be broken. -->
22+
<!-- We are working on supporting this technology with PublicKey Hash in the future. -->
23+
<!-- <PackageFile Name="MicrosoftEdgeWebview2Setup.exe" HomeSite="WebViewRuntime" PublicKey="3082010a0282010100b39e84f35ccc2cc84dffe6b401629a4a6097a9d0c155c0a9df5d498ffbd546517ee82618e9170499f4ab4210fd8e8d57bfe0951228d73f551e0923bb80d684a8b7417ec20159e3cab8a7e3a50b4064996b0f6c9bf16452c778680a9b58ce7edea035b5b043ff0029993ea8a644accd2b514de27e98e3491eec5e59b653bbe71a5eddfbccf9c819304f82c08faca567fa5f39ecbceb67526fcfedcfeea273edb510259dda84e6cc6d5f8c49dc17bfa49459cbcf5d2259c0f7ee414a8ec197347229e94719285c8f997d5bd109903c5fb822e1c436f77ab1ac0c652ce4fe86edf50e8b1813d918f489b00714ceafa98a5393a117fba5b4636d3c3241cd3d2f6cf90203010001"/> -->
24+
25+
<!-- Package the MicrosoftEdgeWebview2Setup.exe and then invoke -->
26+
<PackageFile Name="MicrosoftEdgeWebview2Setup.exe" />
27+
28+
<!-- Package the WebView Standalone Installer -->
29+
<!-- <PackageFile Name="MicrosoftEdgeWebView2RuntimeInstallerX64.exe" /> -->
30+
</PackageFiles>
31+
32+
<!-- Check for RegKey to make sure only install if WebView Run time are not installed -->
33+
<InstallChecks>
34+
<RegistryCheck Property="EdgeRuntimeVersionInstalled" Key="HKLM\SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" Value="pv"/>
35+
</InstallChecks>
36+
37+
<!-- Defines how to run the Setup package. -->
38+
<!-- /silent flag Arguments is not supported in this technology for now -->
39+
<Commands Reboot="Defer">
40+
<Command
41+
PackageFile="MicrosoftEdgeWebview2Setup.exe"
42+
Arguments=" /install"
43+
EstimatedInstalledBytes="2600000"
44+
EstimatedTempBytes="4500000"
45+
EstimatedInstallSeconds="60">
46+
<InstallConditions>
47+
<BypassIf Property="EdgeRuntimeVersionInstalled" Compare="VersionGreaterThanOrEqualTo" Value="86.0.622.12"/>
48+
</InstallConditions>
49+
<ExitCodes>
50+
<ExitCode Value="0" Result="Success"/>
51+
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
52+
</ExitCodes>
53+
</Command>
54+
</Commands>
55+
</Product>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
3+
<Bundle Name="WebView2SampleBootstrapper" Version="1.0.0.0" Manufacturer="Microsoft Corp." UpgradeCode="9a57a789-e554-4b42-b0b7-1a16345c2808">
4+
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"/>
5+
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" Value="EBWebView" Variable="WVRTInstalled" Win64="no" />
6+
<Chain>
7+
<!-- Step 1: Chain WebView2 RunTime as Prerequisite -->
8+
<!-- Vital="no" indicate this install will not fail the sequence. If this sequence failed, it will just move on to next install -->
9+
<!-- If you want your app to fail if WebView2 Runtime failed to install, switch Vital value to yes -->
10+
11+
<!-- [Download Bootstrapper] Use fwlink to download bootstrapper to then invoke it-->
12+
<!-- Note that CertificatePublicKey, Hash, Size and Version are subject to change, and installer workflows requiring knowing these attributes ahead of time, such as WiX Bundle, may be broken. -->
13+
<!-- We are working on supporting this technology with CertificatePublicKey in the future. -->
14+
<!-- Use of the download link below is governed by the below terms. You may acquire the link for your use at https://developer.microsoft.com/microsoft-edge/webview2/. -->
15+
<!-- Microsoft owns all legal right, title, and interest in and to the WebView2 Runtime Bootstrapper ("Software") and related documentation, including any intellectual property in the Software.
16+
You must acquire all code, including any code obtained from a Microsoft URL, under a separate license directly from Microsoft, including a Microsoft download site (e.g., https://developer.microsoft.com/microsoft-edge/webview2/). -->
17+
<!-- <ExePackage Id="DownloadAndInvokeBootstrapper" Name="Install WebView2 Runtime" Cache="no" Compressed="no" PerMachine="yes" Vital="no" DownloadUrl="https://go.microsoft.com/fwlink/p/?LinkId=2124703" InstallCommand=" /silent /install" InstallCondition="NOT (REMOVE OR WVRTInstalled)">
18+
<RemotePayload ProductName="MicrosoftEdgeWebview2Setup" Description="Microsoft Edge WebView2 Update Setup" CertificatePublicKey="1392A8505C3B192F62311EA9005E49C1B5358F6B" Hash="82B42348804E8D82C773DC3391B691712BB1B388" Size="1815832" Version="1.3.135.41"/>
19+
</ExePackage> -->
20+
21+
<!-- [Package Bootstrapper] Package bootstrapper to use during app install. Source can be anywhere you put the boostrapper on. -->
22+
<!-- <ExePackage Id="DownloadAndInvokeBootstrapper" Name="Install WebView2 Runtime" Cache="no" Compressed="no" PerMachine="yes" Vital="no" SourceFile="..\MicrosoftEdgeWebview2Setup.exe" InstallCommand=" /silent /install" InstallCondition="NOT (REMOVE OR WVRTInstalled)" /> -->
23+
24+
<!-- Step 2: Chain Sample App -->
25+
<!-- Make sure to comment out default Custom Action in WebView2SampleApp project -->
26+
<MsiPackage Id="WV2DeploymentWiXCustomActionSampleMsi" SourceFile="$(var.WV2DeploymentWiXCustomActionSample.TargetDir)\WV2DeploymentWiXCustomActionSample.msi" Permanent="no" DisplayInternalUI="yes" Compressed="yes" Vital="yes"/>
27+
</Chain>
28+
</Bundle>
29+
</Wix>
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup>
4+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
5+
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
6+
<ProductVersion>3.10</ProductVersion>
7+
<ProjectGuid>352113bf-fb17-4fd4-a47b-7d1013bfb8ae</ProjectGuid>
8+
<SchemaVersion>2.0</SchemaVersion>
9+
<OutputName>WV2DeploymentWiXBurnBundleSample</OutputName>
10+
<OutputType>Bundle</OutputType>
11+
<Name>WV2DeploymentWiXBurnBundleSample</Name>
12+
</PropertyGroup>
13+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
14+
<OutputPath>bin\$(Configuration)\</OutputPath>
15+
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
16+
<DefineConstants>Debug</DefineConstants>
17+
</PropertyGroup>
18+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
19+
<OutputPath>bin\$(Configuration)\</OutputPath>
20+
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
21+
</PropertyGroup>
22+
<ItemGroup>
23+
<Compile Include="Bundle.wxs" />
24+
</ItemGroup>
25+
<ItemGroup>
26+
<WixExtension Include="WixUtilExtension">
27+
<HintPath>$(WixExtDir)\WixUtilExtension.dll</HintPath>
28+
<Name>WixUtilExtension</Name>
29+
</WixExtension>
30+
<WixExtension Include="WixBalExtension">
31+
<HintPath>$(WixExtDir)\WixBalExtension.dll</HintPath>
32+
<Name>WixBalExtension</Name>
33+
</WixExtension>
34+
</ItemGroup>
35+
<ItemGroup>
36+
<ProjectReference Include="..\WV2DeploymentWiXCustomActionSample\WV2DeploymentWiXCustomActionSample.wixproj">
37+
<Name>WV2DeploymentWiXCustomActionSample</Name>
38+
<Project>{3494e3e2-cb03-4283-b8f8-e1158cdbaf3f}</Project>
39+
<Private>True</Private>
40+
<DoNotHarvest>True</DoNotHarvest>
41+
<RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
42+
<RefTargetDir>INSTALLFOLDER</RefTargetDir>
43+
</ProjectReference>
44+
</ItemGroup>
45+
<Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " />
46+
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets') " />
47+
<Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' ">
48+
<Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" />
49+
</Target>
50+
<!--
51+
To modify your build process, add your task inside one of the targets below and uncomment it.
52+
Other similar extension points exist, see Wix.targets.
53+
<Target Name="BeforeBuild">
54+
</Target>
55+
<Target Name="AfterBuild">
56+
</Target>
57+
-->
58+
</Project>
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
3+
<Product Id="*" Name="WV2DeploymentWiXCustomActionSample" Language="1033" Version="1.0.0.0" Manufacturer="Microsoft Corp." UpgradeCode="3bf3b84c-e140-4276-81bd-23f461b01f71">
4+
<Package InstallerVersion="200" Compressed="yes" InstallScope="perUser"/>
5+
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed."/>
6+
<MediaTemplate EmbedCab="yes"/>
7+
8+
<!-- Precondition: Check whether WebView RunTime already installed or not -->
9+
<Property Id="WVRTINSTALLED">
10+
<RegistrySearch Id="WVRTInstalled" Root="HKLM" Key="SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" Name="EBWebView" Type="raw" Win64="no"/>
11+
</Property>
12+
13+
<!-- Step 1: Define installation folder -->
14+
<Directory Id="TARGETDIR" Name="SourceDir">
15+
<Directory Id="INSTALLFOLDER" Name="WV2DeploymentWiXCustomActionSample"/>
16+
</Directory>
17+
18+
<!-- Step 2: Add files to your installer package -->
19+
<DirectoryRef Id="INSTALLFOLDER">
20+
<!-- Using Project References and Variables: https://wixtoolset.org/documentation/manual/v3/votive/votive_project_references.html -->
21+
<!-- Include files to your project by listing it one by one. Only showing key component in one project. No need if choose to use harvest. -->
22+
<!-- <Component Id="WebView2APISample.exe" Guid="2DC56D26-A5CC-40ED-81C5-441042F2C46B">
23+
<File Id="WebView2APISample.exe" Source="$(var.WebView2APISample.TargetDir)\WebView2APISample.exe" KeyPath="yes" Checksum="yes"/>
24+
</Component>
25+
<Component Id="WebView2Loader.dll" Guid="624B4B28-4D7F-49D8-9CAD-279FC2AC8D25">
26+
<File Id="WebView2Loader.dll" Source="$(var.WebView2APISample.TargetDir)\WebView2Loader.dll" KeyPath="yes"/>
27+
</Component> -->
28+
</DirectoryRef>
29+
30+
<!-- Step 3: Tell WiX to install the files -->
31+
<Feature Id="MainApplication" Title="Main Application" Level="1" ConfigurableDirectory='INSTALLFOLDER'>
32+
<!-- Include files to your project by listing it one by one. Only showing key component in one project. -->
33+
<!--<ComponentRef Id="WebView2APISample.exe"/>
34+
<ComponentRef Id="WebView2Loader.dll"/>-->
35+
36+
<!-- Include files to your project by using heat to auto generate the file list. No need for DirectoryRef section. -->
37+
<!-- See project file for details -->
38+
<ComponentGroupRef Id="AppComponent" />
39+
</Feature>
40+
41+
<!-- [Custom UI] Let User choose install location -->
42+
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/>
43+
<UIRef Id="WixUI_InstallDir"/>
44+
45+
<!-- Step 4: Config Custom Action to download/install Bootstrapper -->
46+
<!-- Reference: https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#understand-the-webview2-runtime-and-installer-preview -->
47+
<!-- Note: PerMachine case, user can use Impersonate="no" to run MicrosoftEdgeWebview2Setup.exe elevated with /silent flag to install WebView Runtime silently-->
48+
49+
<!-- [Package Standalone Installer] Package Standalone Installer as binary stream to use during app install. SourceFile can be anywhere you put the Standalone Installer on. -->
50+
<!-- <Binary Id="MicrosoftEdgeWebView2RuntimeInstallerX64.exe" SourceFile="..\MicrosoftEdgeWebView2RuntimeInstallerX64.exe"/>
51+
<CustomAction Id='InvokeStandalone' BinaryKey='MicrosoftEdgeWebView2RuntimeInstallerX64.exe' Execute="deferred" ExeCommand=' /install' Return='check' /> -->
52+
53+
<!-- [Package Bootstrapper] Package bootstrapper as binary stream to use during app install. Source can be anywhere you put the boostrapper on. -->
54+
<!-- <Binary Id="MicrosoftEdgeWebview2Setup.exe" SourceFile="..\MicrosoftEdgeWebview2Setup.exe"/>
55+
<CustomAction Id='InvokeBootstrapper' BinaryKey='MicrosoftEdgeWebview2Setup.exe' Execute="deferred" ExeCommand=' /install' Return='check' /> -->
56+
57+
<!-- [Download Bootstrapper] Use fwlink to download bootstrapper to user TEMP folder then invoke it-->
58+
<!-- Note: Download will be overrided if file already exist. -->
59+
<!-- Use of the download link below is governed by the below terms. You may acquire the link for your use at https://developer.microsoft.com/microsoft-edge/webview2/. -->
60+
<!-- Microsoft owns all legal right, title, and interest in and to the WebView2 Runtime Bootstrapper ("Software") and related documentation, including any intellectual property in the Software.
61+
You must acquire all code, including any code obtained from a Microsoft URL, under a separate license directly from Microsoft, including a Microsoft download site (e.g., https://developer.microsoft.com/microsoft-edge/webview2/). -->
62+
<CustomAction Id='DownloadAndInvokeBootstrapper' Directory="INSTALLFOLDER" Execute="deferred" ExeCommand='powershell.exe -windowstyle hidden Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/p/?LinkId=2124703" -OutFile "$env:TEMP\MicrosoftEdgeWebview2Setup.exe" ; &amp; $env:TEMP\MicrosoftEdgeWebview2Setup.exe /install' Return='check'/>
63+
64+
<!-- Step 5: Config execute sequence of custom action -->
65+
<InstallExecuteSequence>
66+
<!-- [Package Standalone Installer] Package Standalone Installer and invoke at app installation -->
67+
<!-- Only run InvokeStandalone action during app install, app repair and when WVRT wasn't installed-->
68+
<!-- <Custom Action='InvokeStandalone' Before='InstallFinalize'>
69+
<![CDATA[NOT(REMOVE OR WVRTINSTALLED)]]>
70+
</Custom> -->
71+
72+
<!-- [Package Bootstrapper] Package bootstrapper and invoke at app installation-->
73+
<!-- Only run InvokeBootstrapper action during app install, app repair and when WVRT wasn't installed-->
74+
<!-- <Custom Action='InvokeBootstrapper' Before='InstallFinalize'>
75+
<![CDATA[NOT(REMOVE OR WVRTINSTALLED)]]>
76+
</Custom> -->
77+
78+
<!-- [Download Bootstrapper] Use fwlink to download the bootstrapper to user TEMP folder and invoke-->
79+
<!-- Only run DownloadAndInvokeBootstrapper action during app install, app repair and when WVRT wasn't installed-->
80+
<Custom Action='DownloadAndInvokeBootstrapper' Before='InstallFinalize'>
81+
<![CDATA[NOT(REMOVE OR WVRTINSTALLED)]]>
82+
</Custom>
83+
</InstallExecuteSequence>
84+
</Product>
85+
</Wix>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wix="http://schemas.microsoft.com/wix/2006/wi" xmlns="http://schemas.microsoft.com/wix/2006/wi" version="1.0" exclude-result-prefixes="xsl wix">
3+
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
4+
<xsl:strip-space elements="*"/>
5+
<!-- By default, copy all elements and nodes into the output. -->
6+
<xsl:template match="@*|node()">
7+
<xsl:copy>
8+
<xsl:apply-templates select="@*|node()"/>
9+
</xsl:copy>
10+
</xsl:template>
11+
12+
<!-- Make sure files generated by running WebView2APISample.exe are not included -->
13+
<xsl:key name="file-search" match="wix:Component[contains(wix:File/@Source, 'WebView2APISample.exe.WebView2')]" use="@Id"/>
14+
15+
<!-- Sample code on if end developer chose to exclude the pdb files -->
16+
<xsl:key name="file-search" match="wix:Component[contains(wix:File/@Source, '.pdb')]" use="@Id"/>
17+
18+
<!-- Do Nothing to these files if key file-search are found. -->
19+
<xsl:template match="wix:Component[key('file-search', @Id)]"/>
20+
<xsl:template match="wix:ComponentRef[key('file-search', @Id)]"/>
21+
</xsl:stylesheet>

0 commit comments

Comments
 (0)