Migrate integration tests from Tools repo
Rob Mensching committed
Jun 7, 2020 at 07:58 UTC
8c76578ce852a04f7ebeb8631f67913daa3ab307
15 files changed
+843
src/test/WixToolsetTest.Converters/ConverterIntegrationFixture.cs
new
+172
@@ -0,0 +1,172 @@
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
+namespace WixToolsetTest.Converters
4
+{
5
+ using System;
6
+ using System.IO;
7
+ using System.Linq;
8
+ using WixBuildTools.TestSupport;
9
+ using WixToolset.Converters;
10
+ using WixToolset.Core;
11
+ using WixToolset.Core.TestPackage;
12
+ using WixToolsetTest.Converters.Mocks;
13
+ using Xunit;
14
+
15
+ public class ConverterIntegrationFixture
16
+ {
17
+ [Fact]
18
+ public void CanConvertPermissionExFile()
19
+ {
20
+ const string beforeFileName = "v3.wxs";
21
+ const string afterFileName = "v4_expected.wxs";
22
+ var folder = TestData.Get(@"TestData\PermissionEx");
23
+
24
+ using (var fs = new DisposableFileSystem())
25
+ {
26
+ var baseFolder = fs.GetFolder(true);
27
+ var targetFile = Path.Combine(baseFolder, beforeFileName);
28
+ File.Copy(Path.Combine(folder, beforeFileName), Path.Combine(baseFolder, beforeFileName));
29
+
30
+ var messaging = new MockMessaging();
31
+ var converter = new Wix3Converter(messaging, 4);
32
+ var errors = converter.ConvertFile(targetFile, true);
33
+
34
+ Assert.Equal(8, errors);
35
+
36
+ var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n");
37
+ var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n");
38
+ Assert.Equal(expected, actual);
39
+
40
+ EnsureFixed(targetFile);
41
+ }
42
+ }
43
+
44
+ [Fact]
45
+ public void CanConvertSingleFile()
46
+ {
47
+ const string beforeFileName = "SingleFile.wxs";
48
+ const string afterFileName = "ConvertedSingleFile.wxs";
49
+ var folder = TestData.Get(@"TestData\SingleFile");
50
+
51
+ using (var fs = new DisposableFileSystem())
52
+ {
53
+ var baseFolder = fs.GetFolder(true);
54
+ var targetFile = Path.Combine(baseFolder, beforeFileName);
55
+ File.Copy(Path.Combine(folder, beforeFileName), Path.Combine(baseFolder, beforeFileName));
56
+
57
+ var messaging = new MockMessaging();
58
+ var converter = new Wix3Converter(messaging, 4);
59
+ var errors = converter.ConvertFile(targetFile, true);
60
+
61
+ Assert.Equal(5, errors);
62
+
63
+ var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n");
64
+ var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n");
65
+ Assert.Equal(expected, actual);
66
+
67
+ EnsureFixed(targetFile);
68
+ }
69
+ }
70
+
71
+ [Fact]
72
+ public void RetainsPreprocessorInstructions()
73
+ {
74
+ const string beforeFileName = "Preprocessor.wxs";
75
+ const string afterFileName = "ConvertedPreprocessor.wxs";
76
+ var folder = TestData.Get(@"TestData\Preprocessor");
77
+
78
+ using (var fs = new DisposableFileSystem())
79
+ {
80
+ var baseFolder = fs.GetFolder(true);
81
+ var targetFile = Path.Combine(baseFolder, beforeFileName);
82
+ File.Copy(Path.Combine(folder, beforeFileName), Path.Combine(baseFolder, beforeFileName));
83
+
84
+ var settingsFile = Path.Combine(folder, "wixcop.settings.xml");
85
+
86
+ var result = RunConversion(targetFile, settingsFile: settingsFile);
87
+ Assert.Equal(2, result.ExitCode);
88
+
89
+ var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n");
90
+ var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n");
91
+ Assert.Equal(expected, actual);
92
+
93
+ EnsureFixed(targetFile);
94
+ }
95
+ }
96
+
97
+ [Fact]
98
+ public void CanConvertQtExec()
99
+ {
100
+ const string beforeFileName = "v3.wxs";
101
+ const string afterFileName = "v4_expected.wxs";
102
+ var folder = TestData.Get(@"TestData\QtExec");
103
+
104
+ using (var fs = new DisposableFileSystem())
105
+ {
106
+ var baseFolder = fs.GetFolder(true);
107
+ var targetFile = Path.Combine(baseFolder, beforeFileName);
108
+ File.Copy(Path.Combine(folder, beforeFileName), Path.Combine(baseFolder, beforeFileName));
109
+
110
+ var result = RunConversion(targetFile);
111
+ Assert.Equal(2, result.ExitCode);
112
+
113
+ var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n");
114
+ var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n");
115
+ Assert.Equal(expected, actual);
116
+
117
+ EnsureFixed(targetFile);
118
+ }
119
+ }
120
+
121
+ [Fact]
122
+ public void DetectUnconvertableQtExecCmdTimeout()
123
+ {
124
+ const string beforeFileName = "v3.wxs";
125
+ const string afterFileName = "v4_expected.wxs";
126
+ var folder = TestData.Get(@"TestData\QtExec.bad");
127
+
128
+ using (var fs = new DisposableFileSystem())
129
+ {
130
+ var baseFolder = fs.GetFolder(true);
131
+ var targetFile = Path.Combine(baseFolder, beforeFileName);
132
+ File.Copy(Path.Combine(folder, beforeFileName), Path.Combine(baseFolder, beforeFileName));
133
+
134
+ var result = RunConversion(targetFile);
135
+
136
+ Assert.Equal(2, result.ExitCode);
137
+ Assert.Single(result.Messages.Where(message => message.ToString().EndsWith("(QtExecCmdTimeoutAmbiguous)")));
138
+
139
+ var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n");
140
+ var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n");
141
+ Assert.Equal(expected, actual);
142
+
143
+ // still fails because QtExecCmdTimeoutAmbiguous is unfixable
144
+ var result2 = RunConversion(targetFile);
145
+ Assert.Equal(2, result2.ExitCode);
146
+ }
147
+ }
148
+
149
+ private static WixRunnerResult RunConversion(string targetFile, bool fixErrors = true, string settingsFile = null)
150
+ {
151
+ var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider().AddConverter();
152
+
153
+ var exitCode = WixRunner.Execute(new[]
154
+ {
155
+ "convert",
156
+ fixErrors ? "-f" : null,
157
+ String.IsNullOrEmpty(settingsFile) ? null : "-set1" + settingsFile,
158
+ targetFile
159
+ }, serviceProvider, out var messages);
160
+
161
+ return new WixRunnerResult { ExitCode = exitCode, Messages = messages.ToArray() };
162
+ }
163
+
164
+ private static void EnsureFixed(string targetFile)
165
+ {
166
+ var messaging2 = new MockMessaging();
167
+ var converter2 = new Wix3Converter(messaging2, 4);
168
+ var errors2 = converter2.ConvertFile(targetFile, true);
169
+ Assert.Equal(0, errors2);
170
+ }
171
+ }
172
+}
src/test/WixToolsetTest.Converters/Mocks/MockCoreServiceProvider.cs
new
+51
@@ -0,0 +1,51 @@
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
+namespace WixToolsetTest.Converters.Mocks
4
+{
5
+ using System;
6
+ using System.Collections.Generic;
7
+ using WixToolset.Extensibility.Services;
8
+
9
+ public class MockCoreServiceProvider : IWixToolsetCoreServiceProvider
10
+ {
11
+ public Dictionary<Type, Func<IWixToolsetCoreServiceProvider, Dictionary<Type, object>, object>> CreationFunctions { get; } = new Dictionary<Type, Func<IWixToolsetCoreServiceProvider, Dictionary<Type, object>, object>>();
12
+
13
+ public Dictionary<Type, object> Singletons { get; } = new Dictionary<Type, object>()
14
+ {
15
+ { typeof(IMessaging), new MockMessaging() }
16
+ };
17
+
18
+ public void AddService(Type serviceType, Func<IWixToolsetCoreServiceProvider, Dictionary<Type, object>, object> creationFunction) => this.CreationFunctions.Add(serviceType, creationFunction);
19
+
20
+ public void AddService<T>(Func<IWixToolsetCoreServiceProvider, Dictionary<Type, object>, T> creationFunction) where T : class => this.AddService(typeof(T), creationFunction);
21
+
22
+ public T GetService<T>() where T : class => this.TryGetService(typeof(T), out var obj) ? (T)obj : null;
23
+
24
+ public object GetService(Type serviceType) => this.TryGetService(serviceType, out var service) ? service : null;
25
+
26
+ public bool TryGetService(Type serviceType, out object service)
27
+ {
28
+ if (!this.Singletons.TryGetValue(serviceType, out service))
29
+ {
30
+ if (this.CreationFunctions.TryGetValue(serviceType, out var creationFunction))
31
+ {
32
+ service = creationFunction(this, this.Singletons);
33
+ }
34
+ }
35
+
36
+ return service != null;
37
+ }
38
+
39
+ public bool TryGetService<T>(out T service) where T : class
40
+ {
41
+ service = null;
42
+
43
+ if (this.TryGetService(typeof(T), out var obj))
44
+ {
45
+ service = (T)obj;
46
+ }
47
+
48
+ return service != null;
49
+ }
50
+ }
51
+}
\ No newline at end of file
src/test/WixToolsetTest.Converters/Mocks/MockMessaging.cs
new
+40
@@ -0,0 +1,40 @@
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
+namespace WixToolsetTest.Converters.Mocks
4
+{
5
+ using System;
6
+ using System.Collections.Generic;
7
+ using System.Text;
8
+ using WixToolset.Data;
9
+ using WixToolset.Extensibility;
10
+ using WixToolset.Extensibility.Services;
11
+
12
+ public class MockMessaging : IMessaging
13
+ {
14
+ public List<Message> Messages { get; } = new List<Message>();
15
+
16
+ public bool EncounteredError { get; private set; }
17
+
18
+ public int LastErrorNumber { get; }
19
+
20
+ public bool ShowVerboseMessages { get; set; }
21
+
22
+ public bool SuppressAllWarnings { get; set; }
23
+
24
+ public bool WarningsAsError { get; set; }
25
+
26
+ public void ElevateWarningMessage(int warningNumber) => throw new NotImplementedException();
27
+
28
+ public void SetListener(IMessageListener listener) => throw new NotImplementedException();
29
+
30
+ public void SuppressWarningMessage(int warningNumber) => throw new NotImplementedException();
31
+
32
+ public void Write(Message message)
33
+ {
34
+ this.Messages.Add(message);
35
+ this.EncounteredError |= message.Level == MessageLevel.Error;
36
+ }
37
+
38
+ public void Write(string message, bool verbose = false) => throw new NotImplementedException();
39
+ }
40
+}
src/test/WixToolsetTest.Converters/TestData/PermissionEx/v3.wxs
new
+27
@@ -0,0 +1,27 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
3
+ <Fragment>
4
+ <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5
+ <Component>
6
+ <File Source="example.txt">
7
+ <util:PermissionEx User="Everyone" GenericAll="yes" />
8
+ </File>
9
+ <CreateFolder>
10
+ <util:PermissionEx User="Everyone" GenericAll="yes" />
11
+ </CreateFolder>
12
+ <ServiceInstall Name="testsvc" Type="ownProcess" Start="disabled" ErrorControl="normal">
13
+ <util:PermissionEx User="Everyone" GenericAll="yes" />
14
+ </ServiceInstall>
15
+ <Registry Action="createKey" Root="HKLM" Key="TestKey">
16
+ <util:PermissionEx User="Everyone" GenericAll="yes" />
17
+ </Registry>
18
+ <RegistryKey Id="ExampleRegistryKey" ForceCreateOnInstall="yes" Root="HKLM" Key="TestRegistryKey">
19
+ <util:PermissionEx User="Everyone" GenericAll="yes" />
20
+ </RegistryKey>
21
+ <RegistryValue Root="HKLM" Key="TestRegistryValueKey" Value="abc">
22
+ <util:PermissionEx User="Everyone" GenericAll="yes" />
23
+ </RegistryValue>
24
+ </Component>
25
+ </ComponentGroup>
26
+ </Fragment>
27
+</Wix>
src/test/WixToolsetTest.Converters/TestData/PermissionEx/v4_expected.wxs
new
+27
@@ -0,0 +1,27 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
3
+ <Fragment>
4
+ <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5
+ <Component>
6
+ <File Id="example.txt" Source="example.txt">
7
+ <util:PermissionEx User="Everyone" GenericAll="yes" Inheritable="no" />
8
+ </File>
9
+ <CreateFolder>
10
+ <util:PermissionEx User="Everyone" GenericAll="yes" />
11
+ </CreateFolder>
12
+ <ServiceInstall Name="testsvc" Type="ownProcess" Start="disabled" ErrorControl="normal">
13
+ <util:PermissionEx User="Everyone" GenericAll="yes" Inheritable="no" />
14
+ </ServiceInstall>
15
+ <Registry Action="createKey" Root="HKLM" Key="TestKey">
16
+ <util:PermissionEx User="Everyone" GenericAll="yes" Inheritable="no" />
17
+ </Registry>
18
+ <RegistryKey Id="ExampleRegistryKey" ForceCreateOnInstall="yes" Root="HKLM" Key="TestRegistryKey">
19
+ <util:PermissionEx User="Everyone" GenericAll="yes" Inheritable="no" />
20
+ </RegistryKey>
21
+ <RegistryValue Root="HKLM" Key="TestRegistryValueKey" Value="abc">
22
+ <util:PermissionEx User="Everyone" GenericAll="yes" Inheritable="no" />
23
+ </RegistryValue>
24
+ </Component>
25
+ </ComponentGroup>
26
+ </Fragment>
27
+</Wix>
src/test/WixToolsetTest.Converters/TestData/Preprocessor/ConvertedPreprocessor.wxs
new
+62
@@ -0,0 +1,62 @@
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
+
5
+
6
+<?include WixVer.wxi ?>
7
+
8
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:swid="http://wixtoolset.org/schemas/v4/wxs/tag" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
9
+ <Product Id="*" Name="!(loc.ShortProduct) v$(var.WixMajorMinor) Core" Language="1033" Manufacturer="!(loc.Company)" Version="$(var.WixMsiProductVersion)" UpgradeCode="3618724B-2523-44F9-A908-866AA619504D">
10
+ <Package Compressed="yes" InstallerVersion="200" SummaryCodepage="1252" InstallScope="perMachine" />
11
+ <swid:Tag Regid="!(loc.Regid)" InstallDirectory="INSTALLFOLDER" />
12
+
13
+ <MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed." />
14
+
15
+ <MediaTemplate CabinetTemplate="core{0}.cab" />
16
+
17
+ <Feature Id="Feature_WiX" Title="WiX Toolset" Level="1">
18
+ <Component Id="Licensing" Directory="INSTALLFOLDER">
19
+ <File Id="LICENSE.TXT" Source="LICENSE.TXT" />
20
+ </Component>
21
+
22
+ <Component Id="ProductRegistration" Directory="INSTALLFOLDER">
23
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
24
+ <RegistryValue Name="InstallFolder" Value="[INSTALLFOLDER]" Type="string" />
25
+ </RegistryKey>
26
+ </Component>
27
+
28
+ <Component Id="ProductFamilyRegistration" Directory="INSTALLFOLDER">
29
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajor).x">
30
+ <RegistryValue Name="v$(var.WixMajorMinor)" Value="[INSTALLFOLDER]" Type="string" />
31
+ </RegistryKey>
32
+ </Component>
33
+
34
+ <Component Id="ProductInformation" Directory="BinFolder">
35
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
36
+ <RegistryValue Name="InstallRoot" Value="[BinFolder]" Type="string" />
37
+ <RegistryValue Name="ProductVersion" Value="[ProductVersion]" Type="string" />
38
+ </RegistryKey>
39
+
40
+ <RemoveFolder Id="CleanupShortcutFolder" Directory="ShortcutFolder" On="uninstall" />
41
+ </Component>
42
+
43
+ <Component Directory="BinFolder">
44
+ <File Id="wixtoolset.org.ico" Source="common\wixtoolset.org.ico">
45
+ <?include ComRegistration.wxi ?>
46
+ </File>
47
+ <util:InternetShortcut Id="wixtoolset.org" Directory="ShortcutFolder" Name="WiX Home Page" Target="http://wixtoolset.org/" IconFile="file://[#wixtoolset.org.ico]" />
48
+ </Component>
49
+
50
+ <ComponentGroupRef Id="ToolsetComponents" />
51
+ <ComponentGroupRef Id="ExtensionComponents" />
52
+ <ComponentGroupRef Id="LuxComponents" />
53
+ <ComponentGroupRef Id="DocComponents" />
54
+ </Feature>
55
+
56
+ <FeatureRef Id="Feature_MSBuild" />
57
+ <FeatureRef Id="Feature_Intellisense2010" />
58
+ <FeatureRef Id="Feature_Intellisense2012" />
59
+ <FeatureRef Id="Feature_Intellisense2013" />
60
+ <FeatureRef Id="Feature_Intellisense2015" />
61
+ </Product>
62
+</Wix>
src/test/WixToolsetTest.Converters/TestData/Preprocessor/Preprocessor.wxs
new
+63
@@ -0,0 +1,63 @@
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
+
5
+
6
+<?include WixVer.wxi ?>
7
+
8
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:swid="http://schemas.microsoft.com/wix/TagExtension" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
9
+ <Product Id="*" Name="!(loc.ShortProduct) v$(var.WixMajorMinor) Core" Language="1033" Manufacturer="!(loc.Company)"
10
+ Version="$(var.WixMsiProductVersion)" UpgradeCode="3618724B-2523-44F9-A908-866AA619504D">
11
+ <Package Compressed="yes" InstallerVersion="200" SummaryCodepage="1252" InstallScope="perMachine" />
12
+ <swid:Tag Regid="!(loc.Regid)" InstallDirectory="INSTALLFOLDER" />
13
+
14
+ <MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed." />
15
+
16
+ <MediaTemplate CabinetTemplate="core{0}.cab" />
17
+
18
+ <Feature Id="Feature_WiX" Title="WiX Toolset" Level="1">
19
+ <Component Id="Licensing" Directory="INSTALLFOLDER">
20
+ <File Source="LICENSE.TXT" />
21
+ </Component>
22
+
23
+ <Component Id="ProductRegistration" Directory="INSTALLFOLDER">
24
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
25
+ <RegistryValue Name="InstallFolder" Value="[INSTALLFOLDER]" Type="string" />
26
+ </RegistryKey>
27
+ </Component>
28
+
29
+ <Component Id="ProductFamilyRegistration" Directory="INSTALLFOLDER">
30
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajor).x">
31
+ <RegistryValue Name="v$(var.WixMajorMinor)" Value="[INSTALLFOLDER]" Type="string" />
32
+ </RegistryKey>
33
+ </Component>
34
+
35
+ <Component Id="ProductInformation" Directory="BinFolder">
36
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
37
+ <RegistryValue Name="InstallRoot" Value="[BinFolder]" Type="string"/>
38
+ <RegistryValue Name="ProductVersion" Value="[ProductVersion]" Type="string" />
39
+ </RegistryKey>
40
+
41
+ <RemoveFolder Id="CleanupShortcutFolder" Directory="ShortcutFolder" On="uninstall" />
42
+ </Component>
43
+
44
+ <Component Directory="BinFolder">
45
+ <File Source="common\wixtoolset.org.ico">
46
+ <?include ComRegistration.wxi ?>
47
+ </File>
48
+ <util:InternetShortcut Id="wixtoolset.org" Directory="ShortcutFolder" Name="WiX Home Page" Target="http://wixtoolset.org/" IconFile="file://[#wixtoolset.org.ico]" />
49
+ </Component>
50
+
51
+ <ComponentGroupRef Id="ToolsetComponents" />
52
+ <ComponentGroupRef Id="ExtensionComponents" />
53
+ <ComponentGroupRef Id="LuxComponents" />
54
+ <ComponentGroupRef Id="DocComponents" />
55
+ </Feature>
56
+
57
+ <FeatureRef Id="Feature_MSBuild" />
58
+ <FeatureRef Id="Feature_Intellisense2010" />
59
+ <FeatureRef Id="Feature_Intellisense2012" />
60
+ <FeatureRef Id="Feature_Intellisense2013" />
61
+ <FeatureRef Id="Feature_Intellisense2015" />
62
+ </Product>
63
+</Wix>
src/test/WixToolsetTest.Converters/TestData/Preprocessor/wixcop.settings.xml
new
+9
@@ -0,0 +1,9 @@
1
+<?xml version="1.0"?>
2
+<Settings>
3
+ <IgnoreErrors>
4
+ <Test Id="WhitespacePrecedingNodeWrong"/>
5
+ <Test Id="WhitespacePrecedingEndElementWrong"/>
6
+ </IgnoreErrors>
7
+ <ErrorsAsWarnings/>
8
+ <ExemptFiles/>
9
+</Settings>
\ No newline at end of file
src/test/WixToolsetTest.Converters/TestData/QtExec.bad/v3.wxs
new
+65
@@ -0,0 +1,65 @@
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
+
5
+
6
+<?include WixVer.wxi ?>
7
+
8
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:swid="http://schemas.microsoft.com/wix/TagExtension" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
9
+ <Product Id="*" Name="!(loc.ShortProduct) v$(var.WixMajorMinor) Core" Language="1033" Manufacturer="!(loc.Company)"
10
+ Version="$(var.WixMsiProductVersion)" UpgradeCode="3618724B-2523-44F9-A908-866AA619504D">
11
+ <Package Compressed="yes" InstallerVersion="200" SummaryCodepage="1252" InstallScope="perMachine" />
12
+ <swid:Tag Regid="!(loc.Regid)" InstallDirectory="INSTALLFOLDER" />
13
+
14
+ <MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed." />
15
+
16
+ <MediaTemplate CabinetTemplate="core{0}.cab" />
17
+
18
+ <Property Id="QtExecCmdTimeout" Value="600000" />
19
+ <CustomAction Id="InstallVSTemplateCommand" Property="QtExecCmdLine" Value=""[VSENVPRODUCT80]\devenv.exe" /setup" />
20
+ <CustomAction Id="InstallVSTemplate" BinaryKey="WixCA" DllEntry="CAQuietExec" Return="asyncWait" />
21
+
22
+ <Feature Id="Feature_WiX" Title="WiX Toolset" Level="1">
23
+ <Component Id="Licensing" Directory="INSTALLFOLDER">
24
+ <File Source="LICENSE.TXT" />
25
+ </Component>
26
+
27
+ <Component Id="ProductRegistration" Directory="INSTALLFOLDER">
28
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
29
+ <RegistryValue Name="InstallFolder" Value="[INSTALLFOLDER]" Type="string" />
30
+ </RegistryKey>
31
+ </Component>
32
+
33
+ <Component Id="ProductFamilyRegistration" Directory="INSTALLFOLDER">
34
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajor).x">
35
+ <RegistryValue Name="v$(var.WixMajorMinor)" Value="[INSTALLFOLDER]" Type="string" />
36
+ </RegistryKey>
37
+ </Component>
38
+
39
+ <Component Id="ProductInformation" Directory="BinFolder">
40
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
41
+ <RegistryValue Name="InstallRoot" Value="[BinFolder]" Type="string"/>
42
+ <RegistryValue Name="ProductVersion" Value="[ProductVersion]" Type="string" />
43
+ </RegistryKey>
44
+
45
+ <RemoveFolder Id="CleanupShortcutFolder" Directory="ShortcutFolder" On="uninstall" />
46
+ </Component>
47
+
48
+ <Component Directory="BinFolder">
49
+ <File Source="common\wixtoolset.org.ico" />
50
+ <util:InternetShortcut Id="wixtoolset.org" Directory="ShortcutFolder" Name="WiX Home Page" Target="http://wixtoolset.org/" IconFile="file://[#wixtoolset.org.ico]" />
51
+ </Component>
52
+
53
+ <ComponentGroupRef Id="ToolsetComponents" />
54
+ <ComponentGroupRef Id="ExtensionComponents" />
55
+ <ComponentGroupRef Id="LuxComponents" />
56
+ <ComponentGroupRef Id="DocComponents" />
57
+ </Feature>
58
+
59
+ <FeatureRef Id="Feature_MSBuild" />
60
+ <FeatureRef Id="Feature_Intellisense2010" />
61
+ <FeatureRef Id="Feature_Intellisense2012" />
62
+ <FeatureRef Id="Feature_Intellisense2013" />
63
+ <FeatureRef Id="Feature_Intellisense2015" />
64
+ </Product>
65
+</Wix>
src/test/WixToolsetTest.Converters/TestData/QtExec.bad/v4_expected.wxs
new
+64
@@ -0,0 +1,64 @@
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
+
5
+
6
+<?include WixVer.wxi ?>
7
+
8
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:swid="http://wixtoolset.org/schemas/v4/wxs/tag" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
9
+ <Product Id="*" Name="!(loc.ShortProduct) v$(var.WixMajorMinor) Core" Language="1033" Manufacturer="!(loc.Company)" Version="$(var.WixMsiProductVersion)" UpgradeCode="3618724B-2523-44F9-A908-866AA619504D">
10
+ <Package Compressed="yes" InstallerVersion="200" SummaryCodepage="1252" InstallScope="perMachine" />
11
+ <swid:Tag Regid="!(loc.Regid)" InstallDirectory="INSTALLFOLDER" />
12
+
13
+ <MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed." />
14
+
15
+ <MediaTemplate CabinetTemplate="core{0}.cab" />
16
+
17
+ <Property Id="QtExecCmdTimeout" Value="600000" />
18
+ <CustomAction Id="InstallVSTemplateCommand" Property="WixQuietExecCmdLine" Value=""[VSENVPRODUCT80]\devenv.exe" /setup" />
19
+ <CustomAction Id="InstallVSTemplate" BinaryKey="Wix4UtilCA_X86" DllEntry="WixQuietExec" Return="asyncWait" />
20
+
21
+ <Feature Id="Feature_WiX" Title="WiX Toolset" Level="1">
22
+ <Component Id="Licensing" Directory="INSTALLFOLDER">
23
+ <File Id="LICENSE.TXT" Source="LICENSE.TXT" />
24
+ </Component>
25
+
26
+ <Component Id="ProductRegistration" Directory="INSTALLFOLDER">
27
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
28
+ <RegistryValue Name="InstallFolder" Value="[INSTALLFOLDER]" Type="string" />
29
+ </RegistryKey>
30
+ </Component>
31
+
32
+ <Component Id="ProductFamilyRegistration" Directory="INSTALLFOLDER">
33
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajor).x">
34
+ <RegistryValue Name="v$(var.WixMajorMinor)" Value="[INSTALLFOLDER]" Type="string" />
35
+ </RegistryKey>
36
+ </Component>
37
+
38
+ <Component Id="ProductInformation" Directory="BinFolder">
39
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
40
+ <RegistryValue Name="InstallRoot" Value="[BinFolder]" Type="string" />
41
+ <RegistryValue Name="ProductVersion" Value="[ProductVersion]" Type="string" />
42
+ </RegistryKey>
43
+
44
+ <RemoveFolder Id="CleanupShortcutFolder" Directory="ShortcutFolder" On="uninstall" />
45
+ </Component>
46
+
47
+ <Component Directory="BinFolder">
48
+ <File Id="wixtoolset.org.ico" Source="common\wixtoolset.org.ico" />
49
+ <util:InternetShortcut Id="wixtoolset.org" Directory="ShortcutFolder" Name="WiX Home Page" Target="http://wixtoolset.org/" IconFile="file://[#wixtoolset.org.ico]" />
50
+ </Component>
51
+
52
+ <ComponentGroupRef Id="ToolsetComponents" />
53
+ <ComponentGroupRef Id="ExtensionComponents" />
54
+ <ComponentGroupRef Id="LuxComponents" />
55
+ <ComponentGroupRef Id="DocComponents" />
56
+ </Feature>
57
+
58
+ <FeatureRef Id="Feature_MSBuild" />
59
+ <FeatureRef Id="Feature_Intellisense2010" />
60
+ <FeatureRef Id="Feature_Intellisense2012" />
61
+ <FeatureRef Id="Feature_Intellisense2013" />
62
+ <FeatureRef Id="Feature_Intellisense2015" />
63
+ </Product>
64
+</Wix>
src/test/WixToolsetTest.Converters/TestData/QtExec/v3.wxs
new
+64
@@ -0,0 +1,64 @@
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
+
5
+
6
+<?include WixVer.wxi ?>
7
+
8
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:swid="http://schemas.microsoft.com/wix/TagExtension" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
9
+ <Product Id="*" Name="!(loc.ShortProduct) v$(var.WixMajorMinor) Core" Language="1033" Manufacturer="!(loc.Company)"
10
+ Version="$(var.WixMsiProductVersion)" UpgradeCode="3618724B-2523-44F9-A908-866AA619504D">
11
+ <Package Compressed="yes" InstallerVersion="200" SummaryCodepage="1252" InstallScope="perMachine" />
12
+ <swid:Tag Regid="!(loc.Regid)" InstallDirectory="INSTALLFOLDER" />
13
+
14
+ <MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed." />
15
+
16
+ <MediaTemplate CabinetTemplate="core{0}.cab" />
17
+
18
+ <CustomAction Id="InstallVSTemplateCommand" Property="QtExecCmdLine" Value=""[VSENVPRODUCT80]\devenv.exe" /setup" />
19
+ <CustomAction Id="InstallVSTemplate" BinaryKey="WixCA" DllEntry="CAQuietExec" Return="asyncWait" />
20
+
21
+ <Feature Id="Feature_WiX" Title="WiX Toolset" Level="1">
22
+ <Component Id="Licensing" Directory="INSTALLFOLDER">
23
+ <File Source="LICENSE.TXT" />
24
+ </Component>
25
+
26
+ <Component Id="ProductRegistration" Directory="INSTALLFOLDER">
27
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
28
+ <RegistryValue Name="InstallFolder" Value="[INSTALLFOLDER]" Type="string" />
29
+ </RegistryKey>
30
+ </Component>
31
+
32
+ <Component Id="ProductFamilyRegistration" Directory="INSTALLFOLDER">
33
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajor).x">
34
+ <RegistryValue Name="v$(var.WixMajorMinor)" Value="[INSTALLFOLDER]" Type="string" />
35
+ </RegistryKey>
36
+ </Component>
37
+
38
+ <Component Id="ProductInformation" Directory="BinFolder">
39
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
40
+ <RegistryValue Name="InstallRoot" Value="[BinFolder]" Type="string"/>
41
+ <RegistryValue Name="ProductVersion" Value="[ProductVersion]" Type="string" />
42
+ </RegistryKey>
43
+
44
+ <RemoveFolder Id="CleanupShortcutFolder" Directory="ShortcutFolder" On="uninstall" />
45
+ </Component>
46
+
47
+ <Component Directory="BinFolder">
48
+ <File Source="common\wixtoolset.org.ico" />
49
+ <util:InternetShortcut Id="wixtoolset.org" Directory="ShortcutFolder" Name="WiX Home Page" Target="http://wixtoolset.org/" IconFile="file://[#wixtoolset.org.ico]" />
50
+ </Component>
51
+
52
+ <ComponentGroupRef Id="ToolsetComponents" />
53
+ <ComponentGroupRef Id="ExtensionComponents" />
54
+ <ComponentGroupRef Id="LuxComponents" />
55
+ <ComponentGroupRef Id="DocComponents" />
56
+ </Feature>
57
+
58
+ <FeatureRef Id="Feature_MSBuild" />
59
+ <FeatureRef Id="Feature_Intellisense2010" />
60
+ <FeatureRef Id="Feature_Intellisense2012" />
61
+ <FeatureRef Id="Feature_Intellisense2013" />
62
+ <FeatureRef Id="Feature_Intellisense2015" />
63
+ </Product>
64
+</Wix>
src/test/WixToolsetTest.Converters/TestData/QtExec/v4_expected.wxs
new
+63
@@ -0,0 +1,63 @@
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
+
5
+
6
+<?include WixVer.wxi ?>
7
+
8
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:swid="http://wixtoolset.org/schemas/v4/wxs/tag" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
9
+ <Product Id="*" Name="!(loc.ShortProduct) v$(var.WixMajorMinor) Core" Language="1033" Manufacturer="!(loc.Company)" Version="$(var.WixMsiProductVersion)" UpgradeCode="3618724B-2523-44F9-A908-866AA619504D">
10
+ <Package Compressed="yes" InstallerVersion="200" SummaryCodepage="1252" InstallScope="perMachine" />
11
+ <swid:Tag Regid="!(loc.Regid)" InstallDirectory="INSTALLFOLDER" />
12
+
13
+ <MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed." />
14
+
15
+ <MediaTemplate CabinetTemplate="core{0}.cab" />
16
+
17
+ <CustomAction Id="InstallVSTemplateCommand" Property="WixQuietExecCmdLine" Value=""[VSENVPRODUCT80]\devenv.exe" /setup" />
18
+ <CustomAction Id="InstallVSTemplate" BinaryKey="Wix4UtilCA_X86" DllEntry="WixQuietExec" Return="asyncWait" />
19
+
20
+ <Feature Id="Feature_WiX" Title="WiX Toolset" Level="1">
21
+ <Component Id="Licensing" Directory="INSTALLFOLDER">
22
+ <File Id="LICENSE.TXT" Source="LICENSE.TXT" />
23
+ </Component>
24
+
25
+ <Component Id="ProductRegistration" Directory="INSTALLFOLDER">
26
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
27
+ <RegistryValue Name="InstallFolder" Value="[INSTALLFOLDER]" Type="string" />
28
+ </RegistryKey>
29
+ </Component>
30
+
31
+ <Component Id="ProductFamilyRegistration" Directory="INSTALLFOLDER">
32
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajor).x">
33
+ <RegistryValue Name="v$(var.WixMajorMinor)" Value="[INSTALLFOLDER]" Type="string" />
34
+ </RegistryKey>
35
+ </Component>
36
+
37
+ <Component Id="ProductInformation" Directory="BinFolder">
38
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
39
+ <RegistryValue Name="InstallRoot" Value="[BinFolder]" Type="string" />
40
+ <RegistryValue Name="ProductVersion" Value="[ProductVersion]" Type="string" />
41
+ </RegistryKey>
42
+
43
+ <RemoveFolder Id="CleanupShortcutFolder" Directory="ShortcutFolder" On="uninstall" />
44
+ </Component>
45
+
46
+ <Component Directory="BinFolder">
47
+ <File Id="wixtoolset.org.ico" Source="common\wixtoolset.org.ico" />
48
+ <util:InternetShortcut Id="wixtoolset.org" Directory="ShortcutFolder" Name="WiX Home Page" Target="http://wixtoolset.org/" IconFile="file://[#wixtoolset.org.ico]" />
49
+ </Component>
50
+
51
+ <ComponentGroupRef Id="ToolsetComponents" />
52
+ <ComponentGroupRef Id="ExtensionComponents" />
53
+ <ComponentGroupRef Id="LuxComponents" />
54
+ <ComponentGroupRef Id="DocComponents" />
55
+ </Feature>
56
+
57
+ <FeatureRef Id="Feature_MSBuild" />
58
+ <FeatureRef Id="Feature_Intellisense2010" />
59
+ <FeatureRef Id="Feature_Intellisense2012" />
60
+ <FeatureRef Id="Feature_Intellisense2013" />
61
+ <FeatureRef Id="Feature_Intellisense2015" />
62
+ </Product>
63
+</Wix>
src/test/WixToolsetTest.Converters/TestData/SingleFile/ConvertedSingleFile.wxs
new
+60
@@ -0,0 +1,60 @@
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
+
5
+
6
+<?include WixVer.wxi ?>
7
+
8
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:swid="http://wixtoolset.org/schemas/v4/wxs/tag" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
9
+ <Product Id="*" Name="!(loc.ShortProduct) v$(var.WixMajorMinor) Core" Language="1033" Manufacturer="!(loc.Company)" Version="$(var.WixMsiProductVersion)" UpgradeCode="3618724B-2523-44F9-A908-866AA619504D">
10
+ <Package Compressed="yes" InstallerVersion="200" SummaryCodepage="1252" InstallScope="perMachine" />
11
+ <swid:Tag Regid="!(loc.Regid)" InstallDirectory="INSTALLFOLDER" />
12
+
13
+ <MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed." />
14
+
15
+ <MediaTemplate CabinetTemplate="core{0}.cab" />
16
+
17
+ <Feature Id="Feature_WiX" Title="WiX Toolset" Level="1">
18
+ <Component Id="Licensing" Directory="INSTALLFOLDER">
19
+ <File Id="LICENSE.TXT" Source="LICENSE.TXT" />
20
+ </Component>
21
+
22
+ <Component Id="ProductRegistration" Directory="INSTALLFOLDER">
23
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
24
+ <RegistryValue Name="InstallFolder" Value="[INSTALLFOLDER]" Type="string" />
25
+ </RegistryKey>
26
+ </Component>
27
+
28
+ <Component Id="ProductFamilyRegistration" Directory="INSTALLFOLDER">
29
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajor).x">
30
+ <RegistryValue Name="v$(var.WixMajorMinor)" Value="[INSTALLFOLDER]" Type="string" />
31
+ </RegistryKey>
32
+ </Component>
33
+
34
+ <Component Id="ProductInformation" Directory="BinFolder">
35
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
36
+ <RegistryValue Name="InstallRoot" Value="[BinFolder]" Type="string" />
37
+ <RegistryValue Name="ProductVersion" Value="[ProductVersion]" Type="string" />
38
+ </RegistryKey>
39
+
40
+ <RemoveFolder Id="CleanupShortcutFolder" Directory="ShortcutFolder" On="uninstall" />
41
+ </Component>
42
+
43
+ <Component Directory="BinFolder">
44
+ <File Id="wixtoolset.org.ico" Source="common\wixtoolset.org.ico" />
45
+ <util:InternetShortcut Id="wixtoolset.org" Directory="ShortcutFolder" Name="WiX Home Page" Target="http://wixtoolset.org/" IconFile="file://[#wixtoolset.org.ico]" />
46
+ </Component>
47
+
48
+ <ComponentGroupRef Id="ToolsetComponents" />
49
+ <ComponentGroupRef Id="ExtensionComponents" />
50
+ <ComponentGroupRef Id="LuxComponents" />
51
+ <ComponentGroupRef Id="DocComponents" />
52
+ </Feature>
53
+
54
+ <FeatureRef Id="Feature_MSBuild" />
55
+ <FeatureRef Id="Feature_Intellisense2010" />
56
+ <FeatureRef Id="Feature_Intellisense2012" />
57
+ <FeatureRef Id="Feature_Intellisense2013" />
58
+ <FeatureRef Id="Feature_Intellisense2015" />
59
+ </Product>
60
+</Wix>
src/test/WixToolsetTest.Converters/TestData/SingleFile/SingleFile.wxs
new
+61
@@ -0,0 +1,61 @@
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
+
5
+
6
+<?include WixVer.wxi ?>
7
+
8
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:swid="http://schemas.microsoft.com/wix/TagExtension" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
9
+ <Product Id="*" Name="!(loc.ShortProduct) v$(var.WixMajorMinor) Core" Language="1033" Manufacturer="!(loc.Company)"
10
+ Version="$(var.WixMsiProductVersion)" UpgradeCode="3618724B-2523-44F9-A908-866AA619504D">
11
+ <Package Compressed="yes" InstallerVersion="200" SummaryCodepage="1252" InstallScope="perMachine" />
12
+ <swid:Tag Regid="!(loc.Regid)" InstallDirectory="INSTALLFOLDER" />
13
+
14
+ <MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed." />
15
+
16
+ <MediaTemplate CabinetTemplate="core{0}.cab" />
17
+
18
+ <Feature Id="Feature_WiX" Title="WiX Toolset" Level="1">
19
+ <Component Id="Licensing" Directory="INSTALLFOLDER">
20
+ <File Source="LICENSE.TXT" />
21
+ </Component>
22
+
23
+ <Component Id="ProductRegistration" Directory="INSTALLFOLDER">
24
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
25
+ <RegistryValue Name="InstallFolder" Value="[INSTALLFOLDER]" Type="string" />
26
+ </RegistryKey>
27
+ </Component>
28
+
29
+ <Component Id="ProductFamilyRegistration" Directory="INSTALLFOLDER">
30
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajor).x">
31
+ <RegistryValue Name="v$(var.WixMajorMinor)" Value="[INSTALLFOLDER]" Type="string" />
32
+ </RegistryKey>
33
+ </Component>
34
+
35
+ <Component Id="ProductInformation" Directory="BinFolder">
36
+ <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows Installer XML\$(var.WixMajorMinor)">
37
+ <RegistryValue Name="InstallRoot" Value="[BinFolder]" Type="string"/>
38
+ <RegistryValue Name="ProductVersion" Value="[ProductVersion]" Type="string" />
39
+ </RegistryKey>
40
+
41
+ <RemoveFolder Id="CleanupShortcutFolder" Directory="ShortcutFolder" On="uninstall" />
42
+ </Component>
43
+
44
+ <Component Directory="BinFolder">
45
+ <File Source="common\wixtoolset.org.ico" />
46
+ <util:InternetShortcut Id="wixtoolset.org" Directory="ShortcutFolder" Name="WiX Home Page" Target="http://wixtoolset.org/" IconFile="file://[#wixtoolset.org.ico]" />
47
+ </Component>
48
+
49
+ <ComponentGroupRef Id="ToolsetComponents" />
50
+ <ComponentGroupRef Id="ExtensionComponents" />
51
+ <ComponentGroupRef Id="LuxComponents" />
52
+ <ComponentGroupRef Id="DocComponents" />
53
+ </Feature>
54
+
55
+ <FeatureRef Id="Feature_MSBuild" />
56
+ <FeatureRef Id="Feature_Intellisense2010" />
57
+ <FeatureRef Id="Feature_Intellisense2012" />
58
+ <FeatureRef Id="Feature_Intellisense2013" />
59
+ <FeatureRef Id="Feature_Intellisense2015" />
60
+ </Product>
61
+</Wix>
src/test/WixToolsetTest.Converters/WixToolsetTest.Converters.csproj
+15
@@ -11,12 +11,27 @@
11
<NoWarn>NU1701</NoWarn>
12
</PropertyGroup>
13
14
+ <ItemGroup>
15
+ <Content Include="TestData\PermissionEx\v3.wxs" CopyToOutputDirectory="PreserveNewest" />
16
+ <Content Include="TestData\PermissionEx\v4_expected.wxs" CopyToOutputDirectory="PreserveNewest" />
17
+ <Content Include="TestData\Preprocessor\ConvertedPreprocessor.wxs" CopyToOutputDirectory="PreserveNewest" />
18
+ <Content Include="TestData\Preprocessor\Preprocessor.wxs" CopyToOutputDirectory="PreserveNewest" />
19
+ <Content Include="TestData\Preprocessor\wixcop.settings.xml" CopyToOutputDirectory="PreserveNewest" />
20
+ <Content Include="TestData\QtExec\v3.wxs" CopyToOutputDirectory="PreserveNewest" />
21
+ <Content Include="TestData\QtExec\v4_expected.wxs" CopyToOutputDirectory="PreserveNewest" />
22
+ <Content Include="TestData\QtExec.bad\v3.wxs" CopyToOutputDirectory="PreserveNewest" />
23
+ <Content Include="TestData\QtExec.bad\v4_expected.wxs" CopyToOutputDirectory="PreserveNewest" />
24
+ <Content Include="TestData\SingleFile\ConvertedSingleFile.wxs" CopyToOutputDirectory="PreserveNewest" />
25
+ <Content Include="TestData\SingleFile\SingleFile.wxs" CopyToOutputDirectory="PreserveNewest" />
26
+ </ItemGroup>
27
+
28
<ItemGroup>
29
<ProjectReference Include="..\..\WixToolset.Converters\WixToolset.Converters.csproj" />
30
</ItemGroup>
31
32
<ItemGroup>
33
<PackageReference Include="WixBuildTools.TestSupport" Version="4.0.*" />
34
+ <PackageReference Include="WixToolset.Core.TestPackage" Version="4.0.*" />
35
</ItemGroup>
36
37
<ItemGroup>