If no Media or MediaTemplate is present, default to a MediaTemplate.
Bob Arnson committed
Jun 22, 2020 at 19:35 UTC
461350c09839f1e59fb3dafe1a67e74bf152f803
27 files changed
+55
-37
src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs
+12
@@ -59,6 +59,18 @@ namespace WixToolset.Core.WindowsInstaller.Bind
59
throw new WixException(ErrorMessages.MediaTableCollision(null));
60
}
61
62
+ // If neither tuple is authored, default to a media template.
63
+ if (SectionType.Product == this.Section.Type && mediaTemplateTuples.Count == 0 && mediaTuples.Count == 0)
64
+ {
65
+ var mediaTemplate = new WixMediaTemplateTuple()
66
+ {
67
+ CabinetTemplate = "cab{0}.cab",
68
+ };
69
+
70
+ this.Section.AddTuple(mediaTemplate);
71
+ mediaTemplateTuples.Add(mediaTemplate);
72
+ }
73
+
74
// When building merge module, all the files go to "#MergeModule.CABinet".
75
if (SectionType.Module == this.Section.Type)
76
{
src/WixToolset.Core/Compiler.cs
-9
@@ -5870,7 +5870,6 @@ namespace WixToolset.Core
5870
}
5871
}
5872
5873
-
5873
if (!this.Core.EncounteredError)
5874
{
5875
var patchAttributes = PatchAttributeType.None;
@@ -5957,8 +5956,6 @@ namespace WixToolset.Core
5956
}
5957
}
5958
5960
- this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Media, diskId.ToString(CultureInfo.InvariantCulture.NumberFormat));
5961
-
5959
// If this component does not have a companion file this file is a possible keypath.
5960
possibleKeyPath = null;
5961
if (null == companionFile)
@@ -7677,12 +7674,6 @@ namespace WixToolset.Core
7674
this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "SourceFile"));
7675
}
7676
7680
- if (CompilerConstants.IntegerNotSet == diskId)
7681
- {
7682
- this.Core.Write(ErrorMessages.ExpectedAttributeInElementOrParent(sourceLineNumbers, node.Name.LocalName, "DiskId", "Directory"));
7683
- diskId = CompilerConstants.IllegalInteger;
7684
- }
7685
-
7677
foreach (var child in node.Elements())
7678
{
7679
if (CompilerCore.WixNamespace == child.Name.Namespace)
src/WixToolset.Core/Linker.cs
-1
@@ -140,7 +140,6 @@ namespace WixToolset.Core
140
#endif
141
142
// First find the entry section and while processing all sections load all the symbols from all of the sections.
143
- // sections.FindEntrySectionAndLoadSymbols(false, this, expectedOutputType, out entrySection, out allSymbols);
143
var find = new FindEntrySectionAndLoadSymbolsCommand(this.Messaging, sections, this.Context.ExpectedOutputType);
144
find.Execute();
145
src/test/WixToolsetTest.CoreIntegration/CabFixture.cs
+36
@@ -49,6 +49,42 @@ namespace WixToolsetTest.CoreIntegration
49
}
50
}
51
52
+ [Fact(Skip = "Sequence number of file from merge module is 0 but should be 1.")]
53
+ public void CabinetFilesSequencedCorrectlyUsingMergeModule()
54
+ {
55
+ var folder = TestData.Get(@"TestData\SimpleMerge");
56
+
57
+ using (var fs = new DisposableFileSystem())
58
+ {
59
+ var baseFolder = fs.GetFolder();
60
+ var intermediateFolder = Path.Combine(baseFolder, "obj");
61
+ var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
62
+ var cabPath = Path.Combine(baseFolder, @"bin\cab1.cab");
63
+
64
+ var result = WixRunner.Execute(new[]
65
+ {
66
+ "build",
67
+ Path.Combine(folder, "Package.wxs"),
68
+ "-loc", Path.Combine(folder, "Package.en-us.wxl"),
69
+ "-bindpath", Path.Combine(folder, ".data"),
70
+ "-intermediateFolder", intermediateFolder,
71
+ "-o", msiPath
72
+ });
73
+
74
+ result.AssertSuccess();
75
+ Assert.True(File.Exists(cabPath));
76
+
77
+ var fileTable = Query.QueryDatabase(msiPath, new[] { "File" });
78
+ var fileRows = fileTable.Select(r => new FileRow(r)).OrderBy(f => f.Sequence).ToList();
79
+
80
+ Assert.Equal(new[] { 1 }, fileRows.Select(f => f.Sequence).ToArray());
81
+ Assert.Equal(new[] { "test.txt" }, fileRows.Select(f => f.Name).ToArray());
82
+
83
+ var files = Query.GetCabinetFiles(cabPath);
84
+ Assert.Equal(fileRows.Select(f => f.Id).ToArray(), files.Select(f => f.Name).ToArray());
85
+ }
86
+ }
87
+
88
private class FileRow
89
{
90
public FileRow(string row)
src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs
+2
-2
@@ -164,7 +164,6 @@ namespace WixToolsetTest.CoreIntegration
164
"build",
165
Path.Combine(folder, "Package.wxs"),
166
Path.Combine(folder, "PackageComponents.wxs"),
167
- "-d", "MediaTemplateCompressionLevel",
167
"-loc", Path.Combine(folder, "Package.en-us.wxl"),
168
"-bindpath", Path.Combine(folder, "data"),
169
"-intermediateFolder", intermediateFolder,
@@ -174,7 +173,8 @@ namespace WixToolsetTest.CoreIntegration
173
result.AssertSuccess();
174
175
Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
177
- Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\cab1.cab")));
176
+ Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\example1.cab")));
177
+ Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\example2.cab")));
178
Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
179
}
180
}
src/test/WixToolsetTest.CoreIntegration/TestData/Assembly/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9
<ComponentGroupRef Id="ProductComponents" />
src/test/WixToolsetTest.CoreIntegration/TestData/BadIf/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9
<ComponentGroupRef Id="ProductComponents.x86" />
src/test/WixToolsetTest.CoreIntegration/TestData/ComplexExampleExtension/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<Property Id="ExampleProperty" Value="$(ex.Test)" />
9
src/test/WixToolsetTest.CoreIntegration/TestData/Components/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9
<ComponentGroupRef Id="ProductComponents" />
src/test/WixToolsetTest.CoreIntegration/TestData/ErrorsInUI/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<CustomAction Id="CanWeReferenceAnError_YesWeCan" Error="1234" />
9
<CustomAction Id="TextErrorsWorkOKToo" Error="If you see this, something went wrong." />
src/test/WixToolsetTest.CoreIntegration/TestData/ExampleExtension/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<Property Id="ExampleProperty" Value="$(ex.Test)" />
9
src/test/WixToolsetTest.CoreIntegration/TestData/ForEach/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9
<ComponentGroupRef Id="ProductComponents.x86" />
src/test/WixToolsetTest.CoreIntegration/TestData/IncludePath/Package.wxs
-1
@@ -5,7 +5,6 @@
5
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
6
7
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
8
- <MediaTemplate />
8
9
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
10
<ComponentGroupRef Id="ProductComponents" />
src/test/WixToolsetTest.CoreIntegration/TestData/InstanceTransform/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<Property Id="INSTANCEPROPERTY" Secure="yes" />
9
src/test/WixToolsetTest.CoreIntegration/TestData/ManualUpgrade/Package.wxs
-2
@@ -12,8 +12,6 @@
12
<RemoveExistingProducts After="InstallValidate" />
13
</InstallExecuteSequence>
14
15
- <MediaTemplate />
16
-
15
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
16
<ComponentGroupRef Id="ProductComponents" />
17
</Feature>
src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/Package.wxs
+2
-1
@@ -6,7 +6,8 @@
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
8
<?ifndef MediaTemplateCompressionLevel?>
9
- <Media Id="1" Cabinet="example.cab" />
9
+ <Media Id="1" Cabinet="example1.cab" />
10
+ <Media Id="2" Cabinet="example2.cab" />
11
<?elseif $(MediaTemplateCompressionLevel) = ""?>
12
<MediaTemplate />
13
<?else?>
src/test/WixToolsetTest.CoreIntegration/TestData/MultiFileCompressed/PackageComponents.wxs
+2
-2
@@ -3,10 +3,10 @@
3
<Fragment>
4
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5
<Component>
6
- <File Source="$(env.WINDIR)\Notepad.exe" />
6
+ <File DiskId="1" Source="$(env.WINDIR)\Notepad.exe" />
7
</Component>
8
<Component>
9
- <File Source="test.txt" />
9
+ <File DiskId="2" Source="test.txt" />
10
</Component>
11
</ComponentGroup>
12
</Fragment>
src/test/WixToolsetTest.CoreIntegration/TestData/OverridableActions/Package.wxs
-1
@@ -5,7 +5,6 @@
5
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
6
7
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
8
- <MediaTemplate />
8
9
<InstallExecuteSequence>
10
<ValidateProductID Suppress="yes" />
src/test/WixToolsetTest.CoreIntegration/TestData/PatchFamilyFilter/Package.wxs
-1
@@ -5,7 +5,6 @@
5
<Package InstallScope='perMachine' />
6
7
<MajorUpgrade DowngradeErrorMessage='Newer version already installed.' />
8
- <MediaTemplate />
8
9
<Directory Id='TARGETDIR' Name='SourceDir'>
10
<Directory Id='ProgramFilesFolder'>
src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="500" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
7
- <MediaTemplate />
7
8
<Feature Id="ProductFeature" Title="MsiPackageTitle">
9
<ComponentGroupRef Id="ProductComponents" />
src/test/WixToolsetTest.CoreIntegration/TestData/ProgId/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9
<ComponentGroupRef Id="ProductComponents" />
src/test/WixToolsetTest.CoreIntegration/TestData/SetProperty/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9
<ComponentGroupRef Id="ProductComponents" />
src/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs
+1
-2
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9
<MergeRef Id="TestMsm" />
@@ -16,7 +15,7 @@
15
<Directory Id="ProgramFilesFolder">
16
<Directory Id="INSTALLFOLDER" Name="MsiPackage">
17
<!-- -->
19
- <Merge Id="TestMsm" Language="1033" SourceFile="test.msm" DiskId="1" />
18
+ <Merge Id="TestMsm" Language="1033" SourceFile="test.msm" />
19
</Directory>
20
</Directory>
21
</Directory>
src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9
<ComponentGroupRef Id="ProductComponents" />
src/test/WixToolsetTest.CoreIntegration/TestData/Variables/Package.wxs
-1
@@ -17,7 +17,6 @@
17
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
18
19
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
20
- <MediaTemplate />
20
21
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
22
<ComponentGroupRef Id="ProductComponents" />
src/test/WixToolsetTest.CoreIntegration/TestData/Wixipl/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<CustomAction Id="CAFromExtension" BinaryKey="BinFromWir" DllEntry="DoesntExist" />
9
src/test/WixToolsetTest.CoreIntegration/TestData/WixlibWithBinaries/Package.wxs
-1
@@ -4,7 +4,6 @@
4
<Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7
- <MediaTemplate />
7
8
<Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
9
<ComponentGroupRef Id="ProductComponents" />