aboutsummaryrefslogtreecommitdiff
path: root/src/ext
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2023-11-19 21:11:51 -0500
committerBob Arnson <github@bobs.org>2023-11-19 22:00:28 -0500
commite0a9ec5d3e02d2471d496d1a59c89cb963bd01d7 (patch)
tree45bf8bd6c0b4df44035c1237051aa81ad1917bb5 /src/ext
parente5ed750c9fa3a9d4c1a91984a8917754b9432c64 (diff)
downloadwix-e0a9ec5d3e02d2471d496d1a59c89cb963bd01d7.tar.gz
wix-e0a9ec5d3e02d2471d496d1a59c89cb963bd01d7.tar.bz2
wix-e0a9ec5d3e02d2471d496d1a59c89cb963bd01d7.zip
Remove the deprecated DifxApp WiX extension.
Per https://wixtoolset.org/docs/releasenotes/#deprecations-and-deletions.
Diffstat (limited to 'src/ext')
-rw-r--r--src/ext/DifxApp/DifxApp.wixext.sln63
-rw-r--r--src/ext/DifxApp/Directory.Build.props10
-rw-r--r--src/ext/DifxApp/README.md2
-rw-r--r--src/ext/DifxApp/difxapp.cmd21
-rw-r--r--src/ext/DifxApp/test/WixToolsetTest.DifxApp/DifxAppExtensionFixture.cs46
-rw-r--r--src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/Package.en-us.wxl9
-rw-r--r--src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/Package.wxs15
-rw-r--r--src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/PackageComponents.wxs12
-rw-r--r--src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/example.txt1
-rw-r--r--src/ext/DifxApp/test/WixToolsetTest.DifxApp/WixToolsetTest.DifxApp.csproj24
-rw-r--r--src/ext/DifxApp/wixext/DifxAppCompiler.cs155
-rw-r--r--src/ext/DifxApp/wixext/DifxAppDecompiler.cs98
-rw-r--r--src/ext/DifxApp/wixext/DifxAppExtensionData.cs18
-rw-r--r--src/ext/DifxApp/wixext/DifxAppExtensionFactory.cs18
-rw-r--r--src/ext/DifxApp/wixext/DifxAppTableDefinitions.cs26
-rw-r--r--src/ext/DifxApp/wixext/DifxAppWindowsInstallerBackendBinderExtension.cs13
-rw-r--r--src/ext/DifxApp/wixext/Symbols/DifxAppSymbolDefinitions.cs37
-rw-r--r--src/ext/DifxApp/wixext/Symbols/MsiDriverPackagesSymbol.cs63
-rw-r--r--src/ext/DifxApp/wixext/WixToolset.DifxApp.wixext.csproj24
-rw-r--r--src/ext/DifxApp/wixext/WixToolset.DifxApp.wixext.targets12
-rw-r--r--src/ext/DifxApp/wixlib/DifxAppExtension.wxs20
-rw-r--r--src/ext/DifxApp/wixlib/difxapp.wixproj13
-rw-r--r--src/ext/DifxApp/wixlib/x64/DIFxApp.dllbin153080 -> 0 bytes
-rw-r--r--src/ext/DifxApp/wixlib/x64/DIFxAppA.dllbin707464 -> 0 bytes
-rw-r--r--src/ext/DifxApp/wixlib/x86/DIFxApp.dllbin122248 -> 0 bytes
-rw-r--r--src/ext/DifxApp/wixlib/x86/DIFxAppA.dllbin364424 -> 0 bytes
-rw-r--r--src/ext/ext.cmd3
27 files changed, 0 insertions, 703 deletions
diff --git a/src/ext/DifxApp/DifxApp.wixext.sln b/src/ext/DifxApp/DifxApp.wixext.sln
deleted file mode 100644
index d212c773..00000000
--- a/src/ext/DifxApp/DifxApp.wixext.sln
+++ /dev/null
@@ -1,63 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 16
4VisualStudioVersion = 16.0.30611.23
5MinimumVisualStudioVersion = 15.0.26124.0
6Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "difxapp", "wixlib\difxapp.wixproj", "{5066EB93-D8F7-4FAE-B687-024D7A81BD95}"
7EndProject
8Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.DifxApp.wixext", "wixext\WixToolset.DifxApp.wixext.csproj", "{2256EFD7-E678-4485-818D-986D590068BE}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.DifxApp", "test\WixToolsetTest.DifxApp\WixToolsetTest.DifxApp.csproj", "{883D7BA3-1ADC-47AC-95B0-221BB0B7788D}"
11EndProject
12Global
13 GlobalSection(SolutionConfigurationPlatforms) = preSolution
14 Debug|Any CPU = Debug|Any CPU
15 Debug|x64 = Debug|x64
16 Debug|x86 = Debug|x86
17 Release|Any CPU = Release|Any CPU
18 Release|x64 = Release|x64
19 Release|x86 = Release|x86
20 EndGlobalSection
21 GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 {5066EB93-D8F7-4FAE-B687-024D7A81BD95}.Debug|Any CPU.ActiveCfg = Debug|x86
23 {5066EB93-D8F7-4FAE-B687-024D7A81BD95}.Debug|Any CPU.Build.0 = Debug|x86
24 {5066EB93-D8F7-4FAE-B687-024D7A81BD95}.Debug|x64.ActiveCfg = Debug|x86
25 {5066EB93-D8F7-4FAE-B687-024D7A81BD95}.Debug|x86.ActiveCfg = Debug|x86
26 {5066EB93-D8F7-4FAE-B687-024D7A81BD95}.Debug|x86.Build.0 = Debug|x86
27 {5066EB93-D8F7-4FAE-B687-024D7A81BD95}.Release|Any CPU.ActiveCfg = Release|x86
28 {5066EB93-D8F7-4FAE-B687-024D7A81BD95}.Release|Any CPU.Build.0 = Release|x86
29 {5066EB93-D8F7-4FAE-B687-024D7A81BD95}.Release|x64.ActiveCfg = Release|x86
30 {5066EB93-D8F7-4FAE-B687-024D7A81BD95}.Release|x86.ActiveCfg = Release|x86
31 {5066EB93-D8F7-4FAE-B687-024D7A81BD95}.Release|x86.Build.0 = Release|x86
32 {2256EFD7-E678-4485-818D-986D590068BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
33 {2256EFD7-E678-4485-818D-986D590068BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
34 {2256EFD7-E678-4485-818D-986D590068BE}.Debug|x64.ActiveCfg = Debug|Any CPU
35 {2256EFD7-E678-4485-818D-986D590068BE}.Debug|x64.Build.0 = Debug|Any CPU
36 {2256EFD7-E678-4485-818D-986D590068BE}.Debug|x86.ActiveCfg = Debug|Any CPU
37 {2256EFD7-E678-4485-818D-986D590068BE}.Debug|x86.Build.0 = Debug|Any CPU
38 {2256EFD7-E678-4485-818D-986D590068BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
39 {2256EFD7-E678-4485-818D-986D590068BE}.Release|Any CPU.Build.0 = Release|Any CPU
40 {2256EFD7-E678-4485-818D-986D590068BE}.Release|x64.ActiveCfg = Release|Any CPU
41 {2256EFD7-E678-4485-818D-986D590068BE}.Release|x64.Build.0 = Release|Any CPU
42 {2256EFD7-E678-4485-818D-986D590068BE}.Release|x86.ActiveCfg = Release|Any CPU
43 {2256EFD7-E678-4485-818D-986D590068BE}.Release|x86.Build.0 = Release|Any CPU
44 {883D7BA3-1ADC-47AC-95B0-221BB0B7788D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
45 {883D7BA3-1ADC-47AC-95B0-221BB0B7788D}.Debug|Any CPU.Build.0 = Debug|Any CPU
46 {883D7BA3-1ADC-47AC-95B0-221BB0B7788D}.Debug|x64.ActiveCfg = Debug|Any CPU
47 {883D7BA3-1ADC-47AC-95B0-221BB0B7788D}.Debug|x64.Build.0 = Debug|Any CPU
48 {883D7BA3-1ADC-47AC-95B0-221BB0B7788D}.Debug|x86.ActiveCfg = Debug|Any CPU
49 {883D7BA3-1ADC-47AC-95B0-221BB0B7788D}.Debug|x86.Build.0 = Debug|Any CPU
50 {883D7BA3-1ADC-47AC-95B0-221BB0B7788D}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 {883D7BA3-1ADC-47AC-95B0-221BB0B7788D}.Release|Any CPU.Build.0 = Release|Any CPU
52 {883D7BA3-1ADC-47AC-95B0-221BB0B7788D}.Release|x64.ActiveCfg = Release|Any CPU
53 {883D7BA3-1ADC-47AC-95B0-221BB0B7788D}.Release|x64.Build.0 = Release|Any CPU
54 {883D7BA3-1ADC-47AC-95B0-221BB0B7788D}.Release|x86.ActiveCfg = Release|Any CPU
55 {883D7BA3-1ADC-47AC-95B0-221BB0B7788D}.Release|x86.Build.0 = Release|Any CPU
56 EndGlobalSection
57 GlobalSection(SolutionProperties) = preSolution
58 HideSolutionNode = FALSE
59 EndGlobalSection
60 GlobalSection(ExtensibilityGlobals) = postSolution
61 SolutionGuid = {60A3EA0F-9313-47F8-BF6B-74478A57B577}
62 EndGlobalSection
63EndGlobal
diff --git a/src/ext/DifxApp/Directory.Build.props b/src/ext/DifxApp/Directory.Build.props
deleted file mode 100644
index 4697cf0c..00000000
--- a/src/ext/DifxApp/Directory.Build.props
+++ /dev/null
@@ -1,10 +0,0 @@
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>
5 <PropertyGroup>
6 <SegmentName>DifxApp.wixext</SegmentName>
7 </PropertyGroup>
8
9 <Import Project="..\..\Directory.Build.props" />
10</Project>
diff --git a/src/ext/DifxApp/README.md b/src/ext/DifxApp/README.md
deleted file mode 100644
index 49f30df8..00000000
--- a/src/ext/DifxApp/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
1# DifxApp.wixext
2WixToolset.DifxApp.wixext - DIFxApp WiX Toolset Extension
diff --git a/src/ext/DifxApp/difxapp.cmd b/src/ext/DifxApp/difxapp.cmd
deleted file mode 100644
index 3f822453..00000000
--- a/src/ext/DifxApp/difxapp.cmd
+++ /dev/null
@@ -1,21 +0,0 @@
1@setlocal
2@pushd %~dp0
3
4@set _C=Debug
5:parse_args
6@if /i "%1"=="release" set _C=Release
7@if not "%1"=="" shift & goto parse_args
8
9@echo DifxApp.wixext build %_C%
10
11:: Build
12msbuild -Restore -p:Configuration=%_C% || exit /b
13
14:: Test
15dotnet test -c %_C% --no-build test\WixToolsetTest.DifxApp || exit /b
16
17:: Pack
18msbuild -t:Pack -p:Configuration=%_C% -p:NoBuild=true wixext\WixToolset.DifxApp.wixext.csproj || exit /b
19
20@popd
21@endlocal
diff --git a/src/ext/DifxApp/test/WixToolsetTest.DifxApp/DifxAppExtensionFixture.cs b/src/ext/DifxApp/test/WixToolsetTest.DifxApp/DifxAppExtensionFixture.cs
deleted file mode 100644
index d132952f..00000000
--- a/src/ext/DifxApp/test/WixToolsetTest.DifxApp/DifxAppExtensionFixture.cs
+++ /dev/null
@@ -1,46 +0,0 @@
1// 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.
2
3namespace WixToolsetTest.DifxApp
4{
5 using System;
6 using System.IO;
7 using System.Linq;
8 using WixInternal.TestSupport;
9 using WixInternal.Core.TestPackage;
10 using WixToolset.DifxApp;
11 using Xunit;
12
13 public class DifxAppExtensionFixture
14 {
15 [Fact]
16 public void CanBuildUsingDriver()
17 {
18 var folder = TestData.Get(@"TestData\UsingDriver");
19 var build = new Builder(folder, typeof(DifxAppExtensionFactory), new[] { folder });
20
21 var results = build.BuildAndQuery(Build, "CustomAction");
22 WixAssert.CompareLineByLine(new[]
23 {
24 "CustomAction:MsiCleanupOnSuccess\t1\tDIFxAppx64\tCleanupOnSuccess\t",
25 "CustomAction:MsiInstallDrivers\t3073\tDIFxAppAx64\tInstallDriverPackages\t",
26 "CustomAction:MsiProcessDrivers\t1\tDIFxAppx64\tProcessDriverPackages\t",
27 "CustomAction:MsiRollbackInstall\t3329\tDIFxAppAx64\tRollbackInstall\t",
28 "CustomAction:MsiUninstallDrivers\t3073\tDIFxAppAx64\tUninstallDriverPackages\t",
29 }, results);
30 }
31
32 private static void Build(string[] args)
33 {
34 var newArgs = args.ToList();
35 newArgs.Add("-platform");
36 newArgs.Add("x64");
37
38 var extDir = Path.GetDirectoryName(new Uri(typeof(DifxAppExtensionFactory).Assembly.CodeBase).LocalPath);
39 newArgs.Add(Path.Combine(extDir, "..", "difxapp_x64.wixlib"));
40
41 var result = WixRunner.Execute(warningsAsErrors: false, newArgs.ToArray()).AssertSuccess();
42
43 Assert.Single(result.Messages.Where(m => m.Id == (int)WixToolset.Data.WarningMessages.Ids.DeprecatedElement));
44 }
45 }
46}
diff --git a/src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/Package.en-us.wxl b/src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/Package.en-us.wxl
deleted file mode 100644
index f1df1234..00000000
--- a/src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/Package.en-us.wxl
+++ /dev/null
@@ -1,9 +0,0 @@
1<!--
2This file contains the declaration of all the localizable strings.
3-->
4<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
5
6 <String Id="DowngradeError" Value="A newer version of [ProductName] is already installed." />
7 <String Id="FeatureTitle" Value="MsiPackage" />
8
9</WixLocalization>
diff --git a/src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/Package.wxs b/src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/Package.wxs
deleted file mode 100644
index 411893bc..00000000
--- a/src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/Package.wxs
+++ /dev/null
@@ -1,15 +0,0 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
4
5 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
6 <ComponentGroupRef Id="ProductComponents" />
7 </Feature>
8 </Package>
9
10 <Fragment>
11 <StandardDirectory Id="ProgramFilesFolder">
12 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
13 </StandardDirectory>
14 </Fragment>
15</Wix>
diff --git a/src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/PackageComponents.wxs b/src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/PackageComponents.wxs
deleted file mode 100644
index 9609771a..00000000
--- a/src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/PackageComponents.wxs
+++ /dev/null
@@ -1,12 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 xmlns:difxapp="http://wixtoolset.org/schemas/v4/wxs/difxapp">
4 <Fragment>
5 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
6 <Component>
7 <File Source="example.txt" />
8 <difxapp:Driver />
9 </Component>
10 </ComponentGroup>
11 </Fragment>
12</Wix>
diff --git a/src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/example.txt b/src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/example.txt
deleted file mode 100644
index 1b4ffe8a..00000000
--- a/src/ext/DifxApp/test/WixToolsetTest.DifxApp/TestData/UsingDriver/example.txt
+++ /dev/null
@@ -1 +0,0 @@
1This is example.txt. \ No newline at end of file
diff --git a/src/ext/DifxApp/test/WixToolsetTest.DifxApp/WixToolsetTest.DifxApp.csproj b/src/ext/DifxApp/test/WixToolsetTest.DifxApp/WixToolsetTest.DifxApp.csproj
deleted file mode 100644
index d7176efa..00000000
--- a/src/ext/DifxApp/test/WixToolsetTest.DifxApp/WixToolsetTest.DifxApp.csproj
+++ /dev/null
@@ -1,24 +0,0 @@
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 Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework>
7 <IsWixTestProject>true</IsWixTestProject>
8 </PropertyGroup>
9
10 <ItemGroup>
11 <Content Include="TestData\UsingDriver\example.txt" CopyToOutputDirectory="PreserveNewest" />
12 <Content Include="TestData\UsingDriver\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
13 <Content Include="TestData\UsingDriver\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
14 <Content Include="TestData\UsingDriver\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
15 </ItemGroup>
16
17 <ItemGroup>
18 <ProjectReference Include="..\..\wixext\WixToolset.DifxApp.wixext.csproj" />
19 </ItemGroup>
20
21 <ItemGroup>
22 <PackageReference Include="WixInternal.Core.TestPackage" />
23 </ItemGroup>
24</Project>
diff --git a/src/ext/DifxApp/wixext/DifxAppCompiler.cs b/src/ext/DifxApp/wixext/DifxAppCompiler.cs
deleted file mode 100644
index 6f32a60b..00000000
--- a/src/ext/DifxApp/wixext/DifxAppCompiler.cs
+++ /dev/null
@@ -1,155 +0,0 @@
1// 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.
2
3namespace WixToolset.DifxApp
4{
5 using System;
6 using System.Collections.Generic;
7 using System.Xml.Linq;
8 using WixToolset.Data;
9 using WixToolset.DifxApp.Symbols;
10 using WixToolset.Extensibility;
11
12 /// <summary>
13 /// The compiler for the WiX Toolset Driver Install Frameworks for Applications Extension.
14 /// </summary>
15 public sealed class DifxAppCompiler : BaseCompilerExtension
16 {
17 private HashSet<string> components;
18
19 public override XNamespace Namespace => "http://wixtoolset.org/schemas/v4/wxs/difxapp";
20 /// <summary>
21 /// Instantiate a new DifxAppCompiler.
22 /// </summary>
23 public DifxAppCompiler()
24 {
25 this.components = new HashSet<string>();
26 }
27
28 /// <summary>
29 /// Processes an element for the Compiler.
30 /// </summary>
31 /// <param name="sourceLineNumbers">Source line number for the parent element.</param>
32 /// <param name="parentElement">Parent element of element to process.</param>
33 /// <param name="element">Element to process.</param>
34 /// <param name="contextValues">Extra information about the context in which this element is being parsed.</param>
35 public override void ParseElement(Intermediate intermediate, IntermediateSection section, XElement parentElement, XElement element, IDictionary<string, string> context)
36 {
37 switch (parentElement.Name.LocalName)
38 {
39 case "Component":
40 var componentId = context["ComponentId"];
41 var componentWin64 = Boolean.Parse(context["Win64"]);
42
43 switch (element.Name.LocalName)
44 {
45 case "Driver":
46 this.ParseDriverElement(intermediate, section, element, componentId, componentWin64);
47 break;
48 default:
49 this.ParseHelper.UnexpectedElement(parentElement, element);
50 break;
51 }
52 break;
53 default:
54 this.ParseHelper.UnexpectedElement(parentElement, element);
55 break;
56 }
57 }
58
59 /// <summary>
60 /// Parses a Driver element.
61 /// </summary>
62 /// <param name="node">Element to parse.</param>
63 /// <param name="componentId">Identifier for parent component.</param>
64 private void ParseDriverElement(Intermediate intermediate, IntermediateSection section, XElement node, string componentId, bool win64)
65 {
66 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(node);
67 int attributes = 0;
68 var sequence = CompilerConstants.IntegerNotSet;
69
70 // See https://github.com/wixtoolset/issues/issues/6648. DifxApp is deprecated so warn the user.
71 this.Messaging.Write(WarningMessages.DeprecatedElement(sourceLineNumbers, node.Name.LocalName));
72
73 // check the number of times a Driver element has been nested under this Component element
74 if (null != componentId)
75 {
76 if (this.components.Contains(componentId))
77 {
78 this.Messaging.Write(ErrorMessages.TooManyElements(sourceLineNumbers, "Component", node.Name.LocalName, 1));
79 }
80 else
81 {
82 this.components.Add(componentId);
83 }
84 }
85
86 foreach (var attrib in node.Attributes())
87 {
88 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
89 {
90 switch (attrib.Name.LocalName)
91 {
92 case "AddRemovePrograms":
93 if (YesNoType.No == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib))
94 {
95 attributes |= 0x4;
96 }
97 break;
98 case "DeleteFiles":
99 if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib))
100 {
101 attributes |= 0x10;
102 }
103 break;
104 case "ForceInstall":
105 if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib))
106 {
107 attributes |= 0x1;
108 }
109 break;
110 case "Legacy":
111 if (YesNoType.Yes == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib))
112 {
113 attributes |= 0x8;
114 }
115 break;
116 case "PlugAndPlayPrompt":
117 if (YesNoType.No == this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib))
118 {
119 attributes |= 0x2;
120 }
121 break;
122 case "Sequence":
123 sequence = this.ParseHelper.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, int.MaxValue);
124 break;
125 default:
126 this.ParseHelper.UnexpectedAttribute(node, attrib);
127 break;
128 }
129 }
130 else
131 {
132 this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, node, attrib);
133 }
134 }
135
136 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, node);
137
138 if (!this.Messaging.EncounteredError)
139 {
140 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.CustomAction, "MsiProcessDrivers");
141
142 var symbol = section.AddSymbol(new MsiDriverPackagesSymbol(sourceLineNumbers)
143 {
144 ComponentRef = componentId,
145 Flags = attributes,
146 });
147
148 if (CompilerConstants.IntegerNotSet != sequence)
149 {
150 symbol.Sequence = sequence;
151 }
152 }
153 }
154 }
155}
diff --git a/src/ext/DifxApp/wixext/DifxAppDecompiler.cs b/src/ext/DifxApp/wixext/DifxAppDecompiler.cs
deleted file mode 100644
index e41d8b98..00000000
--- a/src/ext/DifxApp/wixext/DifxAppDecompiler.cs
+++ /dev/null
@@ -1,98 +0,0 @@
1// 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.
2
3namespace WixToolset.DifxApp
4{
5#if TODO_CONSIDER_DECOMPILER
6 using System;
7 using System.Collections;
8 using System.Globalization;
9 using WixToolset.Data;
10 using WixToolset.Extensibility;
11 using DifxApp = WixToolset.Extensions.Serialize.DifxApp;
12 using Wix = WixToolset.Data.Serialize;
13
14 /// <summary>
15 /// The decompiler for the WiX Toolset Driver Install Frameworks for Applications Extension.
16 /// </summary>
17 public sealed class DifxAppDecompiler : DecompilerExtension
18 {
19 /// <summary>
20 /// Creates a decompiler for Gaming Extension.
21 /// </summary>
22 public DifxAppDecompiler()
23 {
24 this.TableDefinitions = DifxAppExtensionData.GetExtensionTableDefinitions();
25 }
26
27 /// <summary>
28 /// Decompiles an extension table.
29 /// </summary>
30 /// <param name="table">The table to decompile.</param>
31 public override void DecompileTable(Table table)
32 {
33 switch (table.Name)
34 {
35 case "MsiDriverPackages":
36 this.DecompileMsiDriverPackagesTable(table);
37 break;
38 default:
39 base.DecompileTable(table);
40 break;
41 }
42 }
43
44 /// <summary>
45 /// Decompile the MsiDriverPackages table.
46 /// </summary>
47 /// <param name="table">The table to decompile.</param>
48 private void DecompileMsiDriverPackagesTable(Table table)
49 {
50 foreach (Row row in table.Rows)
51 {
52 DifxApp.Driver driver = new DifxApp.Driver();
53
54 int attributes = (int)row[1];
55 if (0x1 == (attributes & 0x1))
56 {
57 driver.ForceInstall = DifxApp.YesNoType.yes;
58 }
59
60 if (0x2 == (attributes & 0x2))
61 {
62 driver.PlugAndPlayPrompt = DifxApp.YesNoType.no;
63 }
64
65 if (0x4 == (attributes & 0x4))
66 {
67 driver.AddRemovePrograms = DifxApp.YesNoType.no;
68 }
69
70 if (0x8 == (attributes & 0x8))
71 {
72 driver.Legacy = DifxApp.YesNoType.yes;
73 }
74
75 if (0x10 == (attributes & 0x10))
76 {
77 driver.DeleteFiles = DifxApp.YesNoType.yes;
78 }
79
80 if (null != row[2])
81 {
82 driver.Sequence = (int)row[2];
83 }
84
85 Wix.Component component = (Wix.Component)this.Core.GetIndexedElement("Component", (string)row[0]);
86 if (null != component)
87 {
88 component.AddChild(driver);
89 }
90 else
91 {
92 this.Core.OnMessage(WixWarnings.ExpectedForeignRow(row.SourceLineNumbers, table.Name, row.GetPrimaryKey(DecompilerConstants.PrimaryKeyDelimiter), "Component", (string)row[0], "Component"));
93 }
94 }
95 }
96 }
97#endif
98}
diff --git a/src/ext/DifxApp/wixext/DifxAppExtensionData.cs b/src/ext/DifxApp/wixext/DifxAppExtensionData.cs
deleted file mode 100644
index 5552717c..00000000
--- a/src/ext/DifxApp/wixext/DifxAppExtensionData.cs
+++ /dev/null
@@ -1,18 +0,0 @@
1// 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.
2
3namespace WixToolset.DifxApp
4{
5 using WixToolset.Data;
6 using WixToolset.Extensibility;
7
8 public sealed class DifxAppExtensionData : BaseExtensionData
9 {
10 public override string DefaultCulture => "en-US";
11
12 public override bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition)
13 {
14 symbolDefinition = DifxAppSymbolDefinitions.ByName(name);
15 return symbolDefinition != null;
16 }
17 }
18}
diff --git a/src/ext/DifxApp/wixext/DifxAppExtensionFactory.cs b/src/ext/DifxApp/wixext/DifxAppExtensionFactory.cs
deleted file mode 100644
index 3932685d..00000000
--- a/src/ext/DifxApp/wixext/DifxAppExtensionFactory.cs
+++ /dev/null
@@ -1,18 +0,0 @@
1// 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.
2
3namespace WixToolset.DifxApp
4{
5 using System;
6 using System.Collections.Generic;
7 using WixToolset.Extensibility;
8
9 public class DifxAppExtensionFactory : BaseExtensionFactory
10 {
11 protected override IReadOnlyCollection<Type> ExtensionTypes => new[]
12 {
13 typeof(DifxAppCompiler),
14 typeof(DifxAppExtensionData),
15 typeof(DifxAppWindowsInstallerBackendBinderExtension),
16 };
17 }
18}
diff --git a/src/ext/DifxApp/wixext/DifxAppTableDefinitions.cs b/src/ext/DifxApp/wixext/DifxAppTableDefinitions.cs
deleted file mode 100644
index a6c26444..00000000
--- a/src/ext/DifxApp/wixext/DifxAppTableDefinitions.cs
+++ /dev/null
@@ -1,26 +0,0 @@
1// 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.
2
3namespace WixToolset.DifxApp
4{
5 using WixToolset.Data.WindowsInstaller;
6
7 public static class DifxAppTableDefinitions
8 {
9 public static readonly TableDefinition MsiDriverPackages = new TableDefinition(
10 "MsiDriverPackages",
11 DifxAppSymbolDefinitions.MsiDriverPackages,
12 new[]
13 {
14 new ColumnDefinition("Component", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Name of the component that represents the driver package", modularizeType: ColumnModularizeType.Column),
15 new ColumnDefinition("Flags", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 31, description: "Flags for installing and uninstalling driver packages"),
16 new ColumnDefinition("Sequence", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, description: "Order in which the driver packages are processed"),
17 },
18 symbolIdIsPrimaryKey: false
19 );
20
21 public static readonly TableDefinition[] All = new[]
22 {
23 MsiDriverPackages,
24 };
25 }
26}
diff --git a/src/ext/DifxApp/wixext/DifxAppWindowsInstallerBackendBinderExtension.cs b/src/ext/DifxApp/wixext/DifxAppWindowsInstallerBackendBinderExtension.cs
deleted file mode 100644
index 41f01175..00000000
--- a/src/ext/DifxApp/wixext/DifxAppWindowsInstallerBackendBinderExtension.cs
+++ /dev/null
@@ -1,13 +0,0 @@
1// 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.
2
3namespace WixToolset.DifxApp
4{
5 using System.Collections.Generic;
6 using WixToolset.Data.WindowsInstaller;
7 using WixToolset.Extensibility;
8
9 public class DifxAppWindowsInstallerBackendBinderExtension : BaseWindowsInstallerBackendBinderExtension
10 {
11 public override IReadOnlyCollection<TableDefinition> TableDefinitions => DifxAppTableDefinitions.All;
12 }
13}
diff --git a/src/ext/DifxApp/wixext/Symbols/DifxAppSymbolDefinitions.cs b/src/ext/DifxApp/wixext/Symbols/DifxAppSymbolDefinitions.cs
deleted file mode 100644
index c1f9673a..00000000
--- a/src/ext/DifxApp/wixext/Symbols/DifxAppSymbolDefinitions.cs
+++ /dev/null
@@ -1,37 +0,0 @@
1// 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.
2
3namespace WixToolset.DifxApp
4{
5 using System;
6 using WixToolset.Data;
7
8 public enum DifxAppSymbolDefinitionType
9 {
10 MsiDriverPackages,
11 }
12
13 public static partial class DifxAppSymbolDefinitions
14 {
15 public static IntermediateSymbolDefinition ByName(string name)
16 {
17 if (!Enum.TryParse(name, out DifxAppSymbolDefinitionType type))
18 {
19 return null;
20 }
21
22 return ByType(type);
23 }
24
25 public static IntermediateSymbolDefinition ByType(DifxAppSymbolDefinitionType type)
26 {
27 switch (type)
28 {
29 case DifxAppSymbolDefinitionType.MsiDriverPackages:
30 return DifxAppSymbolDefinitions.MsiDriverPackages;
31
32 default:
33 throw new ArgumentOutOfRangeException(nameof(type));
34 }
35 }
36 }
37}
diff --git a/src/ext/DifxApp/wixext/Symbols/MsiDriverPackagesSymbol.cs b/src/ext/DifxApp/wixext/Symbols/MsiDriverPackagesSymbol.cs
deleted file mode 100644
index 2fd91bc8..00000000
--- a/src/ext/DifxApp/wixext/Symbols/MsiDriverPackagesSymbol.cs
+++ /dev/null
@@ -1,63 +0,0 @@
1// 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.
2
3namespace WixToolset.DifxApp
4{
5 using WixToolset.Data;
6 using WixToolset.DifxApp.Symbols;
7
8 public static partial class DifxAppSymbolDefinitions
9 {
10 public static readonly IntermediateSymbolDefinition MsiDriverPackages = new IntermediateSymbolDefinition(
11 DifxAppSymbolDefinitionType.MsiDriverPackages.ToString(),
12 new[]
13 {
14 new IntermediateFieldDefinition(nameof(MsiDriverPackagesSymbolFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(MsiDriverPackagesSymbolFields.Flags), IntermediateFieldType.Number),
16 new IntermediateFieldDefinition(nameof(MsiDriverPackagesSymbolFields.Sequence), IntermediateFieldType.Number),
17 },
18 typeof(MsiDriverPackagesSymbol));
19 }
20}
21
22namespace WixToolset.DifxApp.Symbols
23{
24 using WixToolset.Data;
25
26 public enum MsiDriverPackagesSymbolFields
27 {
28 ComponentRef,
29 Flags,
30 Sequence,
31 }
32
33 public class MsiDriverPackagesSymbol : IntermediateSymbol
34 {
35 public MsiDriverPackagesSymbol() : base(DifxAppSymbolDefinitions.MsiDriverPackages, null, null)
36 {
37 }
38
39 public MsiDriverPackagesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(DifxAppSymbolDefinitions.MsiDriverPackages, sourceLineNumber, id)
40 {
41 }
42
43 public IntermediateField this[MsiDriverPackagesSymbolFields index] => this.Fields[(int)index];
44
45 public string ComponentRef
46 {
47 get => this.Fields[(int)MsiDriverPackagesSymbolFields.ComponentRef].AsString();
48 set => this.Set((int)MsiDriverPackagesSymbolFields.ComponentRef, value);
49 }
50
51 public int Flags
52 {
53 get => this.Fields[(int)MsiDriverPackagesSymbolFields.Flags].AsNumber();
54 set => this.Set((int)MsiDriverPackagesSymbolFields.Flags, value);
55 }
56
57 public int? Sequence
58 {
59 get => this.Fields[(int)MsiDriverPackagesSymbolFields.Sequence].AsNullableNumber();
60 set => this.Set((int)MsiDriverPackagesSymbolFields.Sequence, value);
61 }
62 }
63} \ No newline at end of file
diff --git a/src/ext/DifxApp/wixext/WixToolset.DifxApp.wixext.csproj b/src/ext/DifxApp/wixext/WixToolset.DifxApp.wixext.csproj
deleted file mode 100644
index 75ea81ec..00000000
--- a/src/ext/DifxApp/wixext/WixToolset.DifxApp.wixext.csproj
+++ /dev/null
@@ -1,24 +0,0 @@
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 Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup>
6 <TargetFramework>netstandard2.0</TargetFramework>
7 <RootNamespace>WixToolset.DifxApp</RootNamespace>
8 <Description>WiX Toolset DIFxApp Extension</Description>
9 <Title>WiX Toolset DIFxApp Extension</Title>
10 <DebugType>embedded</DebugType>
11 </PropertyGroup>
12
13 <Import Project="..\..\WixExt.props" />
14
15 <ItemGroup Condition=" '$(NCrunch)'=='' ">
16 <ProjectReference Include="..\wixlib\difxapp.wixproj" ReferenceOutputAssembly="false" SkipGetTargetFrameworkProperties="true" Properties="Platform=x86" />
17 <ProjectReference Include="..\wixlib\difxapp.wixproj" ReferenceOutputAssembly="false" SkipGetTargetFrameworkProperties="true" Properties="Platform=x64" />
18 </ItemGroup>
19
20 <ItemGroup>
21 <Content Include="$(OutDir)..\difxapp_x86.wixlib" PackagePath="wixext4\" />
22 <Content Include="$(OutDir)..\difxapp_x64.wixlib" PackagePath="wixext4\" />
23 </ItemGroup>
24</Project>
diff --git a/src/ext/DifxApp/wixext/WixToolset.DifxApp.wixext.targets b/src/ext/DifxApp/wixext/WixToolset.DifxApp.wixext.targets
deleted file mode 100644
index 87fce8f5..00000000
--- a/src/ext/DifxApp/wixext/WixToolset.DifxApp.wixext.targets
+++ /dev/null
@@ -1,12 +0,0 @@
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>
5 <ItemGroup>
6 <WixExtension Include="$(MSBuildThisFileDirectory)..\$(WixToolsetExtensionPackageFolder)\$(MSBuildThisFileName).dll"
7 Condition=" Exists('$(MSBuildThisFileDirectory)..\$(WixToolsetExtensionPackageFolder)\$(MSBuildThisFileName).dll') " />
8 <UnsupportedWixExtension Include="$(MSBuildThisFileName)"
9 Condition=" !Exists('$(MSBuildThisFileDirectory)..\$(WixToolsetExtensionPackageFolder)\$(MSBuildThisFileName).dll') " />
10 <WixLibrary Include="$(MSBuildThisFileDirectory)..\$(WixToolsetExtensionPackageFolder)\difxapp_$(InstallerPlatform).wixlib" />
11 </ItemGroup>
12</Project>
diff --git a/src/ext/DifxApp/wixlib/DifxAppExtension.wxs b/src/ext/DifxApp/wixlib/DifxAppExtension.wxs
deleted file mode 100644
index 430c604b..00000000
--- a/src/ext/DifxApp/wixlib/DifxAppExtension.wxs
+++ /dev/null
@@ -1,20 +0,0 @@
1<!-- 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. -->
2
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <Fragment>
6 <InstallExecuteSequence>
7 <Custom Action="MsiProcessDrivers" After="InstallFiles" Condition="VersionNT &gt; 400" />
8 <Custom Action="MsiCleanupOnSuccess" After="InstallFinalize" Condition="VersionNT &gt; 400" />
9 </InstallExecuteSequence>
10
11 <Binary Id="DIFxApp$(var.Platform)" SourceFile="$(var.Platform)\DIFxApp.dll" />
12 <Binary Id="DIFxAppA$(var.Platform)" SourceFile="$(var.Platform)\DIFxAppA.dll" />
13
14 <CustomAction Id="MsiProcessDrivers" DllEntry="ProcessDriverPackages" SuppressModularization="yes" Execute="immediate" BinaryRef="DIFxApp$(var.Platform)" />
15 <CustomAction Id="MsiInstallDrivers" DllEntry="InstallDriverPackages" SuppressModularization="yes" Execute="deferred" Impersonate="no" BinaryRef="DIFxAppA$(var.Platform)" />
16 <CustomAction Id="MsiUninstallDrivers" DllEntry="UninstallDriverPackages" SuppressModularization="yes" Execute="deferred" Impersonate="no" BinaryRef="DIFxAppA$(var.Platform)" />
17 <CustomAction Id="MsiRollbackInstall" DllEntry="RollbackInstall" SuppressModularization="yes" Execute="rollback" Impersonate="no" BinaryRef="DIFxAppA$(var.Platform)" />
18 <CustomAction Id="MsiCleanupOnSuccess" DllEntry="CleanupOnSuccess" SuppressModularization="yes" Execute="immediate" BinaryRef="DIFxApp$(var.Platform)" />
19 </Fragment>
20</Wix>
diff --git a/src/ext/DifxApp/wixlib/difxapp.wixproj b/src/ext/DifxApp/wixlib/difxapp.wixproj
deleted file mode 100644
index b32ceac5..00000000
--- a/src/ext/DifxApp/wixlib/difxapp.wixproj
+++ /dev/null
@@ -1,13 +0,0 @@
1<!-- 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. -->
2<Project Sdk="WixToolset.Sdk">
3 <PropertyGroup>
4 <OutputName>difxapp_$(Platform)</OutputName>
5 <OutputType>Library</OutputType>
6 <BindFiles>true</BindFiles>
7 <Cultures>en-us</Cultures>
8 </PropertyGroup>
9
10 <ItemGroup>
11 <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
12 </ItemGroup>
13</Project>
diff --git a/src/ext/DifxApp/wixlib/x64/DIFxApp.dll b/src/ext/DifxApp/wixlib/x64/DIFxApp.dll
deleted file mode 100644
index 69a44cc8..00000000
--- a/src/ext/DifxApp/wixlib/x64/DIFxApp.dll
+++ /dev/null
Binary files differ
diff --git a/src/ext/DifxApp/wixlib/x64/DIFxAppA.dll b/src/ext/DifxApp/wixlib/x64/DIFxAppA.dll
deleted file mode 100644
index 99458040..00000000
--- a/src/ext/DifxApp/wixlib/x64/DIFxAppA.dll
+++ /dev/null
Binary files differ
diff --git a/src/ext/DifxApp/wixlib/x86/DIFxApp.dll b/src/ext/DifxApp/wixlib/x86/DIFxApp.dll
deleted file mode 100644
index 678a9d95..00000000
--- a/src/ext/DifxApp/wixlib/x86/DIFxApp.dll
+++ /dev/null
Binary files differ
diff --git a/src/ext/DifxApp/wixlib/x86/DIFxAppA.dll b/src/ext/DifxApp/wixlib/x86/DIFxAppA.dll
deleted file mode 100644
index 3ac0838d..00000000
--- a/src/ext/DifxApp/wixlib/x86/DIFxAppA.dll
+++ /dev/null
Binary files differ
diff --git a/src/ext/ext.cmd b/src/ext/ext.cmd
index 0429f542..8575b81e 100644
--- a/src/ext/ext.cmd
+++ b/src/ext/ext.cmd
@@ -28,9 +28,6 @@ call ComPlus\complus.cmd %_C% || exit /b
28:: Dependency 28:: Dependency
29call Dependency\dependency.cmd %_C% || exit /b 29call Dependency\dependency.cmd %_C% || exit /b
30 30
31:: DifxApp
32call DifxApp\difxapp.cmd %_C% || exit /b
33
34:: DirectX 31:: DirectX
35call DirectX\directx.cmd %_C% || exit /b 32call DirectX\directx.cmd %_C% || exit /b
36 33