diff options
Diffstat (limited to 'src/WixToolset.Core/Compiler_Bundle.cs')
| -rw-r--r-- | src/WixToolset.Core/Compiler_Bundle.cs | 139 |
1 files changed, 61 insertions, 78 deletions
diff --git a/src/WixToolset.Core/Compiler_Bundle.cs b/src/WixToolset.Core/Compiler_Bundle.cs index 0ed49fbc..3be7d0c5 100644 --- a/src/WixToolset.Core/Compiler_Bundle.cs +++ b/src/WixToolset.Core/Compiler_Bundle.cs | |||
| @@ -9,6 +9,7 @@ namespace WixToolset.Core | |||
| 9 | using System.IO; | 9 | using System.IO; |
| 10 | using System.Xml.Linq; | 10 | using System.Xml.Linq; |
| 11 | using WixToolset.Data; | 11 | using WixToolset.Data; |
| 12 | using WixToolset.Data.Burn; | ||
| 12 | using WixToolset.Data.Tuples; | 13 | using WixToolset.Data.Tuples; |
| 13 | using WixToolset.Extensibility; | 14 | using WixToolset.Extensibility; |
| 14 | 15 | ||
| @@ -17,15 +18,9 @@ namespace WixToolset.Core | |||
| 17 | /// </summary> | 18 | /// </summary> |
| 18 | internal partial class Compiler : ICompiler | 19 | internal partial class Compiler : ICompiler |
| 19 | { | 20 | { |
| 20 | public static readonly Identifier BurnUXContainerId = new Identifier(AccessModifier.Private, "WixUXContainer"); | 21 | private static readonly Identifier BurnUXContainerId = new Identifier(AccessModifier.Private, BurnConstants.BurnUXContainerName); |
| 21 | public static readonly Identifier BurnDefaultAttachedContainerId = new Identifier(AccessModifier.Private, "WixAttachedContainer"); | 22 | private static readonly Identifier BurnDefaultAttachedContainerId = new Identifier(AccessModifier.Private, BurnConstants.BurnDefaultAttachedContainerName); |
| 22 | public static readonly Identifier BundleLayoutOnlyPayloads = new Identifier(AccessModifier.Private, "BundleLayoutOnlyPayloads"); | 23 | private static readonly Identifier BundleLayoutOnlyPayloads = new Identifier(AccessModifier.Private, BurnConstants.BundleLayoutOnlyPayloadsName); |
| 23 | |||
| 24 | // The following constants must stay in sync with src\burn\engine\core.h | ||
| 25 | private const string BURN_BUNDLE_NAME = "WixBundleName"; | ||
| 26 | private const string BURN_BUNDLE_ORIGINAL_SOURCE = "WixBundleOriginalSource"; | ||
| 27 | private const string BURN_BUNDLE_ORIGINAL_SOURCE_FOLDER = "WixBundleOriginalSourceFolder"; | ||
| 28 | private const string BURN_BUNDLE_LAST_USED_SOURCE = "WixBundleLastUsedSource"; | ||
| 29 | 24 | ||
| 30 | /// <summary> | 25 | /// <summary> |
| 31 | /// Parses an ApprovedExeForElevation element. | 26 | /// Parses an ApprovedExeForElevation element. |
| @@ -78,11 +73,11 @@ namespace WixToolset.Core | |||
| 78 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Key")); | 73 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Key")); |
| 79 | } | 74 | } |
| 80 | 75 | ||
| 81 | var attributes = BundleApprovedExeForElevationAttributes.None; | 76 | var attributes = WixApprovedExeForElevationAttributes.None; |
| 82 | 77 | ||
| 83 | if (win64 == YesNoType.Yes) | 78 | if (win64 == YesNoType.Yes) |
| 84 | { | 79 | { |
| 85 | attributes |= BundleApprovedExeForElevationAttributes.Win64; | 80 | attributes |= WixApprovedExeForElevationAttributes.Win64; |
| 86 | } | 81 | } |
| 87 | 82 | ||
| 88 | this.Core.ParseForExtensionElements(node); | 83 | this.Core.ParseForExtensionElements(node); |
| @@ -92,7 +87,7 @@ namespace WixToolset.Core | |||
| 92 | var tuple = new WixApprovedExeForElevationTuple(sourceLineNumbers, id) | 87 | var tuple = new WixApprovedExeForElevationTuple(sourceLineNumbers, id) |
| 93 | { | 88 | { |
| 94 | Key = key, | 89 | Key = key, |
| 95 | Value = valueName, | 90 | ValueName = valueName, |
| 96 | Attributes = attributes | 91 | Attributes = attributes |
| 97 | }; | 92 | }; |
| 98 | 93 | ||
| @@ -110,8 +105,7 @@ namespace WixToolset.Core | |||
| 110 | string copyright = null; | 105 | string copyright = null; |
| 111 | string aboutUrl = null; | 106 | string aboutUrl = null; |
| 112 | var compressed = YesNoDefaultType.Default; | 107 | var compressed = YesNoDefaultType.Default; |
| 113 | var disableModify = -1; | 108 | WixBundleAttributes attributes = 0; |
| 114 | var disableRemove = YesNoType.NotSet; | ||
| 115 | string helpTelephone = null; | 109 | string helpTelephone = null; |
| 116 | string helpUrl = null; | 110 | string helpUrl = null; |
| 117 | string manufacturer = null; | 111 | string manufacturer = null; |
| @@ -152,13 +146,12 @@ namespace WixToolset.Core | |||
| 152 | switch (value) | 146 | switch (value) |
| 153 | { | 147 | { |
| 154 | case "button": | 148 | case "button": |
| 155 | disableModify = 2; | 149 | attributes |= WixBundleAttributes.SingleChangeUninstallButton; |
| 156 | break; | 150 | break; |
| 157 | case "yes": | 151 | case "yes": |
| 158 | disableModify = 1; | 152 | attributes |= WixBundleAttributes.DisableModify; |
| 159 | break; | 153 | break; |
| 160 | case "no": | 154 | case "no": |
| 161 | disableModify = 0; | ||
| 162 | break; | 155 | break; |
| 163 | default: | 156 | default: |
| 164 | this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, value, "button", "yes", "no")); | 157 | this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, value, "button", "yes", "no")); |
| @@ -166,10 +159,10 @@ namespace WixToolset.Core | |||
| 166 | } | 159 | } |
| 167 | break; | 160 | break; |
| 168 | case "DisableRemove": | 161 | case "DisableRemove": |
| 169 | disableRemove = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); | 162 | if (YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib)) |
| 170 | break; | 163 | { |
| 171 | case "DisableRepair": | 164 | attributes |= WixBundleAttributes.DisableRemove; |
| 172 | this.Core.Write(WarningMessages.DeprecatedAttribute(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName)); | 165 | } |
| 173 | break; | 166 | break; |
| 174 | case "HelpTelephone": | 167 | case "HelpTelephone": |
| 175 | helpTelephone = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 168 | helpTelephone = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
| @@ -239,13 +232,13 @@ namespace WixToolset.Core | |||
| 239 | 232 | ||
| 240 | if (String.IsNullOrEmpty(name)) | 233 | if (String.IsNullOrEmpty(name)) |
| 241 | { | 234 | { |
| 242 | logVariablePrefixAndExtension = String.Concat("WixBundleLog:Setup.log"); | 235 | logVariablePrefixAndExtension = String.Concat("WixBundleLog:Setup:.log"); |
| 243 | } | 236 | } |
| 244 | else | 237 | else |
| 245 | { | 238 | { |
| 246 | // Ensure only allowable path characters are in "name" (and change spaces to underscores). | 239 | // Ensure only allowable path characters are in "name" (and change spaces to underscores). |
| 247 | fileSystemSafeBundleName = CompilerCore.MakeValidLongFileName(name.Replace(' ', '_'), "_"); | 240 | fileSystemSafeBundleName = CompilerCore.MakeValidLongFileName(name.Replace(' ', '_'), "_"); |
| 248 | logVariablePrefixAndExtension = String.Concat("WixBundleLog:", fileSystemSafeBundleName, ".log"); | 241 | logVariablePrefixAndExtension = String.Concat("WixBundleLog:", fileSystemSafeBundleName, ":.log"); |
| 249 | } | 242 | } |
| 250 | 243 | ||
| 251 | this.activeName = String.IsNullOrEmpty(name) ? Common.GenerateGuid() : name; | 244 | this.activeName = String.IsNullOrEmpty(name) ? Common.GenerateGuid() : name; |
| @@ -351,6 +344,37 @@ namespace WixToolset.Core | |||
| 351 | 344 | ||
| 352 | if (!this.Core.EncounteredError) | 345 | if (!this.Core.EncounteredError) |
| 353 | { | 346 | { |
| 347 | var tuple = new WixBundleTuple(sourceLineNumbers) | ||
| 348 | { | ||
| 349 | UpgradeCode = upgradeCode, | ||
| 350 | Version = version, | ||
| 351 | Copyright = copyright, | ||
| 352 | Name = name, | ||
| 353 | Manufacturer = manufacturer, | ||
| 354 | Attributes = attributes, | ||
| 355 | AboutUrl = aboutUrl, | ||
| 356 | HelpUrl = helpUrl, | ||
| 357 | HelpTelephone = helpTelephone, | ||
| 358 | UpdateUrl = updateUrl, | ||
| 359 | Compressed = YesNoDefaultType.Yes == compressed ? true : YesNoDefaultType.No == compressed ? (bool?)false : null, | ||
| 360 | IconSourceFile = iconSourceFile, | ||
| 361 | SplashScreenSourceFile = splashScreenSourceFile, | ||
| 362 | Condition = condition, | ||
| 363 | Tag = tag, | ||
| 364 | Platform = this.CurrentPlatform, | ||
| 365 | ParentName = parentName, | ||
| 366 | }; | ||
| 367 | |||
| 368 | if (!String.IsNullOrEmpty(logVariablePrefixAndExtension)) | ||
| 369 | { | ||
| 370 | var split = logVariablePrefixAndExtension.Split(':'); | ||
| 371 | tuple.LogPathVariable = split[0]; | ||
| 372 | tuple.LogPrefix = split[1]; | ||
| 373 | tuple.LogExtension = split[2]; | ||
| 374 | } | ||
| 375 | |||
| 376 | this.Core.AddTuple(tuple);; | ||
| 377 | |||
| 354 | if (null != upgradeCode) | 378 | if (null != upgradeCode) |
| 355 | { | 379 | { |
| 356 | this.Core.AddTuple(new WixRelatedBundleTuple(sourceLineNumbers) | 380 | this.Core.AddTuple(new WixRelatedBundleTuple(sourceLineNumbers) |
| @@ -360,64 +384,32 @@ namespace WixToolset.Core | |||
| 360 | }); | 384 | }); |
| 361 | } | 385 | } |
| 362 | 386 | ||
| 363 | this.Core.AddTuple(new WixBundleContainerTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, Compiler.BurnDefaultAttachedContainerId)) | 387 | this.Core.AddTuple(new WixBundleContainerTuple(sourceLineNumbers, Compiler.BurnDefaultAttachedContainerId) |
| 364 | { | 388 | { |
| 365 | Name = "bundle-attached.cab", | 389 | Name = "bundle-attached.cab", |
| 366 | Type = ContainerType.Attached | 390 | Type = ContainerType.Attached |
| 367 | }); | 391 | }); |
| 368 | 392 | ||
| 369 | var bundleTuple = this.Core.CreateTuple(sourceLineNumbers, TupleDefinitionType.WixBundle); | ||
| 370 | bundleTuple.Set(0, version); | ||
| 371 | bundleTuple.Set(1, copyright); | ||
| 372 | bundleTuple.Set(2, name); | ||
| 373 | bundleTuple.Set(3, aboutUrl); | ||
| 374 | if (-1 != disableModify) | ||
| 375 | { | ||
| 376 | bundleTuple.Set(4, disableModify); | ||
| 377 | } | ||
| 378 | if (YesNoType.NotSet != disableRemove) | ||
| 379 | { | ||
| 380 | bundleTuple.Set(5, (YesNoType.Yes == disableRemove) ? 1 : 0); | ||
| 381 | } | ||
| 382 | // row.Set(6] - (deprecated) "disable repair" | ||
| 383 | bundleTuple.Set(7, helpTelephone); | ||
| 384 | bundleTuple.Set(8, helpUrl); | ||
| 385 | bundleTuple.Set(9, manufacturer); | ||
| 386 | bundleTuple.Set(10, updateUrl); | ||
| 387 | if (YesNoDefaultType.Default != compressed) | ||
| 388 | { | ||
| 389 | bundleTuple.Set(11, (YesNoDefaultType.Yes == compressed) ? 1 : 0); | ||
| 390 | } | ||
| 391 | |||
| 392 | bundleTuple.Set(12, logVariablePrefixAndExtension); | ||
| 393 | bundleTuple.Set(13, iconSourceFile); | ||
| 394 | bundleTuple.Set(14, splashScreenSourceFile); | ||
| 395 | bundleTuple.Set(15, condition); | ||
| 396 | bundleTuple.Set(16, tag); | ||
| 397 | bundleTuple.Set(17, this.CurrentPlatform.ToString()); | ||
| 398 | bundleTuple.Set(18, parentName); | ||
| 399 | bundleTuple.Set(19, upgradeCode); | ||
| 400 | |||
| 401 | // Ensure that the bundle stores the well-known persisted values. | 393 | // Ensure that the bundle stores the well-known persisted values. |
| 402 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, Compiler.BURN_BUNDLE_NAME)) | 394 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, BurnConstants.BURN_BUNDLE_NAME)) |
| 403 | { | 395 | { |
| 404 | Hidden = false, | 396 | Hidden = false, |
| 405 | Persisted = true | 397 | Persisted = true |
| 406 | }); | 398 | }); |
| 407 | 399 | ||
| 408 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, Compiler.BURN_BUNDLE_ORIGINAL_SOURCE)) | 400 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, BurnConstants.BURN_BUNDLE_ORIGINAL_SOURCE)) |
| 409 | { | 401 | { |
| 410 | Hidden = false, | 402 | Hidden = false, |
| 411 | Persisted = true | 403 | Persisted = true |
| 412 | }); | 404 | }); |
| 413 | 405 | ||
| 414 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, Compiler.BURN_BUNDLE_ORIGINAL_SOURCE_FOLDER)) | 406 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, BurnConstants.BURN_BUNDLE_ORIGINAL_SOURCE_FOLDER)) |
| 415 | { | 407 | { |
| 416 | Hidden = false, | 408 | Hidden = false, |
| 417 | Persisted = true | 409 | Persisted = true |
| 418 | }); | 410 | }); |
| 419 | 411 | ||
| 420 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, Compiler.BURN_BUNDLE_LAST_USED_SOURCE)) | 412 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, BurnConstants.BURN_BUNDLE_LAST_USED_SOURCE)) |
| 421 | { | 413 | { |
| 422 | Hidden = false, | 414 | Hidden = false, |
| 423 | Persisted = true | 415 | Persisted = true |
| @@ -473,7 +465,7 @@ namespace WixToolset.Core | |||
| 473 | 465 | ||
| 474 | this.Core.ParseForExtensionElements(node); | 466 | this.Core.ParseForExtensionElements(node); |
| 475 | 467 | ||
| 476 | return YesNoType.Yes == disableLog ? null : String.Concat(variable, ":", logPrefix, logExtension); | 468 | return YesNoType.Yes == disableLog ? null : String.Join(":", variable, logPrefix, logExtension); |
| 477 | } | 469 | } |
| 478 | 470 | ||
| 479 | /// <summary> | 471 | /// <summary> |
| @@ -1126,9 +1118,9 @@ namespace WixToolset.Core | |||
| 1126 | tuple = new WixBundlePayloadTuple(sourceLineNumbers, id) | 1118 | tuple = new WixBundlePayloadTuple(sourceLineNumbers, id) |
| 1127 | { | 1119 | { |
| 1128 | Name = String.IsNullOrEmpty(name) ? Path.GetFileName(sourceFile) : name, | 1120 | Name = String.IsNullOrEmpty(name) ? Path.GetFileName(sourceFile) : name, |
| 1129 | SourceFile = sourceFile, | 1121 | SourceFile = new IntermediateFieldPathValue { Path = sourceFile }, |
| 1130 | DownloadUrl = downloadUrl, | 1122 | DownloadUrl = downloadUrl, |
| 1131 | Compressed = compressed, | 1123 | Compressed = (compressed == YesNoDefaultType.Yes) ? true : (compressed == YesNoDefaultType.No) ? (bool?)false : null, |
| 1132 | UnresolvedSourceFile = sourceFile, // duplicate of sourceFile but in a string column so it won't get resolved to a full path during binding. | 1124 | UnresolvedSourceFile = sourceFile, // duplicate of sourceFile but in a string column so it won't get resolved to a full path during binding. |
| 1133 | DisplayName = displayName, | 1125 | DisplayName = displayName, |
| 1134 | Description = description, | 1126 | Description = description, |
| @@ -1665,14 +1657,12 @@ namespace WixToolset.Core | |||
| 1665 | var vital = YesNoType.Yes; | 1657 | var vital = YesNoType.Yes; |
| 1666 | string installCommand = null; | 1658 | string installCommand = null; |
| 1667 | string repairCommand = null; | 1659 | string repairCommand = null; |
| 1668 | var repairable = YesNoType.NotSet; | ||
| 1669 | string uninstallCommand = null; | 1660 | string uninstallCommand = null; |
| 1670 | var perMachine = YesNoDefaultType.NotSet; | 1661 | var perMachine = YesNoDefaultType.NotSet; |
| 1671 | string detectCondition = null; | 1662 | string detectCondition = null; |
| 1672 | string protocol = null; | 1663 | string protocol = null; |
| 1673 | var installSize = CompilerConstants.IntegerNotSet; | 1664 | var installSize = CompilerConstants.IntegerNotSet; |
| 1674 | string msuKB = null; | 1665 | string msuKB = null; |
| 1675 | var suppressLooseFilePayloadGeneration = YesNoType.NotSet; | ||
| 1676 | var enableSignatureVerification = YesNoType.No; | 1666 | var enableSignatureVerification = YesNoType.No; |
| 1677 | var compressed = YesNoDefaultType.Default; | 1667 | var compressed = YesNoDefaultType.Default; |
| 1678 | var displayInternalUI = YesNoType.NotSet; | 1668 | var displayInternalUI = YesNoType.NotSet; |
| @@ -1779,7 +1769,6 @@ namespace WixToolset.Core | |||
| 1779 | break; | 1769 | break; |
| 1780 | case "RepairCommand": | 1770 | case "RepairCommand": |
| 1781 | repairCommand = this.Core.GetAttributeValue(sourceLineNumbers, attrib, EmptyRule.CanBeEmpty); | 1771 | repairCommand = this.Core.GetAttributeValue(sourceLineNumbers, attrib, EmptyRule.CanBeEmpty); |
| 1782 | repairable = YesNoType.Yes; | ||
| 1783 | allowed = (packageType == WixBundlePackageType.Exe); | 1772 | allowed = (packageType == WixBundlePackageType.Exe); |
| 1784 | break; | 1773 | break; |
| 1785 | case "UninstallCommand": | 1774 | case "UninstallCommand": |
| @@ -1808,11 +1797,6 @@ namespace WixToolset.Core | |||
| 1808 | case "Compressed": | 1797 | case "Compressed": |
| 1809 | compressed = this.Core.GetAttributeYesNoDefaultValue(sourceLineNumbers, attrib); | 1798 | compressed = this.Core.GetAttributeYesNoDefaultValue(sourceLineNumbers, attrib); |
| 1810 | break; | 1799 | break; |
| 1811 | case "SuppressLooseFilePayloadGeneration": | ||
| 1812 | this.Core.Write(WarningMessages.DeprecatedAttribute(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName)); | ||
| 1813 | suppressLooseFilePayloadGeneration = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); | ||
| 1814 | allowed = (packageType == WixBundlePackageType.Msi); | ||
| 1815 | break; | ||
| 1816 | case "EnableSignatureVerification": | 1800 | case "EnableSignatureVerification": |
| 1817 | enableSignatureVerification = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); | 1801 | enableSignatureVerification = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); |
| 1818 | break; | 1802 | break; |
| @@ -2076,7 +2060,7 @@ namespace WixToolset.Core | |||
| 2076 | case WixBundlePackageType.Exe: | 2060 | case WixBundlePackageType.Exe: |
| 2077 | this.Core.AddTuple(new WixBundleExePackageTuple(sourceLineNumbers, id) | 2061 | this.Core.AddTuple(new WixBundleExePackageTuple(sourceLineNumbers, id) |
| 2078 | { | 2062 | { |
| 2079 | Attributes = (YesNoType.Yes == repairable) ? WixBundleExePackageAttributes.Repairable : 0, | 2063 | Attributes = WixBundleExePackageAttributes.None, |
| 2080 | DetectCondition = detectCondition, | 2064 | DetectCondition = detectCondition, |
| 2081 | InstallCommand = installCommand, | 2065 | InstallCommand = installCommand, |
| 2082 | RepairCommand = repairCommand, | 2066 | RepairCommand = repairCommand, |
| @@ -2090,7 +2074,6 @@ namespace WixToolset.Core | |||
| 2090 | msiAttributes |= (YesNoType.Yes == displayInternalUI) ? WixBundleMsiPackageAttributes.DisplayInternalUI : 0; | 2074 | msiAttributes |= (YesNoType.Yes == displayInternalUI) ? WixBundleMsiPackageAttributes.DisplayInternalUI : 0; |
| 2091 | msiAttributes |= (YesNoType.Yes == enableFeatureSelection) ? WixBundleMsiPackageAttributes.EnableFeatureSelection : 0; | 2075 | msiAttributes |= (YesNoType.Yes == enableFeatureSelection) ? WixBundleMsiPackageAttributes.EnableFeatureSelection : 0; |
| 2092 | msiAttributes |= (YesNoType.Yes == forcePerMachine) ? WixBundleMsiPackageAttributes.ForcePerMachine : 0; | 2076 | msiAttributes |= (YesNoType.Yes == forcePerMachine) ? WixBundleMsiPackageAttributes.ForcePerMachine : 0; |
| 2093 | msiAttributes |= (YesNoType.Yes == suppressLooseFilePayloadGeneration) ? WixBundleMsiPackageAttributes.SuppressLooseFilePayloadGeneration : 0; | ||
| 2094 | 2077 | ||
| 2095 | this.Core.AddTuple(new WixBundleMsiPackageTuple(sourceLineNumbers, id) | 2078 | this.Core.AddTuple(new WixBundleMsiPackageTuple(sourceLineNumbers, id) |
| 2096 | { | 2079 | { |
| @@ -2458,9 +2441,9 @@ namespace WixToolset.Core | |||
| 2458 | 2441 | ||
| 2459 | if (!this.Core.EncounteredError) | 2442 | if (!this.Core.EncounteredError) |
| 2460 | { | 2443 | { |
| 2461 | var tuple = new WixBundleMsiPropertyTuple(sourceLineNumbers) | 2444 | var tuple = new WixBundleMsiPropertyTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, packageId, name)) |
| 2462 | { | 2445 | { |
| 2463 | WixBundlePackageRef = packageId, | 2446 | PackageRef = packageId, |
| 2464 | Name = name, | 2447 | Name = name, |
| 2465 | Value = value | 2448 | Value = value |
| 2466 | }; | 2449 | }; |
| @@ -2514,10 +2497,10 @@ namespace WixToolset.Core | |||
| 2514 | 2497 | ||
| 2515 | if (!this.Core.EncounteredError) | 2498 | if (!this.Core.EncounteredError) |
| 2516 | { | 2499 | { |
| 2517 | this.Core.AddTuple(new WixBundleSlipstreamMspTuple(sourceLineNumbers) | 2500 | this.Core.AddTuple(new WixBundleSlipstreamMspTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, packageId, id)) |
| 2518 | { | 2501 | { |
| 2519 | WixBundlePackageRef = packageId, | 2502 | TargetPackageRef = packageId, |
| 2520 | MspWixBundlePackageRef = id | 2503 | MspPackageRef = id |
| 2521 | }); | 2504 | }); |
| 2522 | } | 2505 | } |
| 2523 | } | 2506 | } |
