aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-04-27 22:26:16 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-04-29 14:40:09 -0500
commit8deeffb615244c62a0c94ea99d01ece88b1caf09 (patch)
treef28b80cc68fbcbd1a987d101bfdd305cec2a7fea
parent11fe2c881d182f9caff28bd9ff08c2e4fe513989 (diff)
downloadwix-8deeffb615244c62a0c94ea99d01ece88b1caf09.tar.gz
wix-8deeffb615244c62a0c94ea99d01ece88b1caf09.tar.bz2
wix-8deeffb615244c62a0c94ea99d01ece88b1caf09.zip
Integrate size_t and OnPlanPackageBegin changes in Burn headers.
-rw-r--r--src/WixToolset.Mba.Core/BootstrapperApplication.cs12
-rw-r--r--src/WixToolset.Mba.Core/Engine.cs36
-rw-r--r--src/WixToolset.Mba.Core/EventArgs.cs70
-rw-r--r--src/WixToolset.Mba.Core/IBootstrapperApplication.cs69
-rw-r--r--src/WixToolset.Mba.Core/IBootstrapperEngine.cs24
-rw-r--r--src/WixToolset.Mba.Core/IPackageInfo.cs2
-rw-r--r--src/WixToolset.Mba.Core/PackageInfo.cs35
-rw-r--r--src/balutil/BalBootstrapperEngine.cpp10
-rw-r--r--src/balutil/balcondition.cpp6
-rw-r--r--src/balutil/balinfo.cpp12
-rw-r--r--src/balutil/balutil.cpp10
-rw-r--r--src/balutil/balutil.vcxproj8
-rw-r--r--src/balutil/inc/BalBaseBAFunctions.h12
-rw-r--r--src/balutil/inc/BalBaseBootstrapperApplication.h12
-rw-r--r--src/balutil/inc/BalBaseBootstrapperApplicationProc.h6
-rw-r--r--src/balutil/inc/IBootstrapperApplication.h12
-rw-r--r--src/balutil/inc/IBootstrapperEngine.h10
-rw-r--r--src/balutil/inc/balinfo.h9
-rw-r--r--src/balutil/inc/balutil.h2
-rw-r--r--src/balutil/packages.config4
-rw-r--r--src/bextutil/BextBundleExtensionEngine.cpp8
-rw-r--r--src/bextutil/bextutil.vcxproj8
-rw-r--r--src/bextutil/inc/IBundleExtensionEngine.h10
-rw-r--r--src/bextutil/packages.config4
-rw-r--r--src/mbanative/mbanative.vcxproj8
-rw-r--r--src/mbanative/packages.config4
-rw-r--r--src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj20
-rw-r--r--src/test/BalUtilUnitTest/packages.config8
-rw-r--r--src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj20
-rw-r--r--src/test/BextUtilUnitTest/packages.config8
30 files changed, 244 insertions, 215 deletions
diff --git a/src/WixToolset.Mba.Core/BootstrapperApplication.cs b/src/WixToolset.Mba.Core/BootstrapperApplication.cs
index 0a8f3af8..072d3ef0 100644
--- a/src/WixToolset.Mba.Core/BootstrapperApplication.cs
+++ b/src/WixToolset.Mba.Core/BootstrapperApplication.cs
@@ -1343,9 +1343,9 @@ namespace WixToolset.Mba.Core
1343 return args.HResult; 1343 return args.HResult;
1344 } 1344 }
1345 1345
1346 int IBootstrapperApplication.OnDetectPackageComplete(string wzPackageId, int hrStatus, PackageState state) 1346 int IBootstrapperApplication.OnDetectPackageComplete(string wzPackageId, int hrStatus, PackageState state, bool fCached)
1347 { 1347 {
1348 DetectPackageCompleteEventArgs args = new DetectPackageCompleteEventArgs(wzPackageId, hrStatus, state); 1348 DetectPackageCompleteEventArgs args = new DetectPackageCompleteEventArgs(wzPackageId, hrStatus, state, fCached);
1349 this.OnDetectPackageComplete(args); 1349 this.OnDetectPackageComplete(args);
1350 1350
1351 return args.HResult; 1351 return args.HResult;
@@ -1378,9 +1378,9 @@ namespace WixToolset.Mba.Core
1378 return args.HResult; 1378 return args.HResult;
1379 } 1379 }
1380 1380
1381 int IBootstrapperApplication.OnPlanPackageBegin(string wzPackageId, PackageState state, bool fInstallCondition, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel) 1381 int IBootstrapperApplication.OnPlanPackageBegin(string wzPackageId, PackageState state, bool fCached, BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition, RequestState recommendedState, BOOTSTRAPPER_CACHE_TYPE recommendedCacheType, ref RequestState pRequestedState, ref BOOTSTRAPPER_CACHE_TYPE pRequestedCacheType, ref bool fCancel)
1382 { 1382 {
1383 PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, state, fInstallCondition, recommendedState, pRequestedState, fCancel); 1383 PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, state, fCached, installCondition, recommendedState, recommendedCacheType, pRequestedState, pRequestedCacheType, fCancel);
1384 this.OnPlanPackageBegin(args); 1384 this.OnPlanPackageBegin(args);
1385 1385
1386 pRequestedState = args.State; 1386 pRequestedState = args.State;
@@ -1428,9 +1428,9 @@ namespace WixToolset.Mba.Core
1428 return args.HResult; 1428 return args.HResult;
1429 } 1429 }
1430 1430
1431 int IBootstrapperApplication.OnPlannedPackage(string wzPackageId, ActionState execute, ActionState rollback) 1431 int IBootstrapperApplication.OnPlannedPackage(string wzPackageId, ActionState execute, ActionState rollback, bool fPlannedCache, bool fPlannedUncache)
1432 { 1432 {
1433 var args = new PlannedPackageEventArgs(wzPackageId, execute, rollback); 1433 var args = new PlannedPackageEventArgs(wzPackageId, execute, rollback, fPlannedCache, fPlannedUncache);
1434 this.OnPlannedPackage(args); 1434 this.OnPlannedPackage(args);
1435 1435
1436 return args.HResult; 1436 return args.HResult;
diff --git a/src/WixToolset.Mba.Core/Engine.cs b/src/WixToolset.Mba.Core/Engine.cs
index e07ecd8b..aed420d5 100644
--- a/src/WixToolset.Mba.Core/Engine.cs
+++ b/src/WixToolset.Mba.Core/Engine.cs
@@ -62,7 +62,7 @@ namespace WixToolset.Mba.Core
62 /// <inheritdoc/> 62 /// <inheritdoc/>
63 public bool ContainsVariable(string name) 63 public bool ContainsVariable(string name)
64 { 64 {
65 int capacity = 0; 65 IntPtr capacity = new IntPtr(0);
66 int ret = this.engine.GetVariableString(name, IntPtr.Zero, ref capacity); 66 int ret = this.engine.GetVariableString(name, IntPtr.Zero, ref capacity);
67 return NativeMethods.E_NOTFOUND != ret; 67 return NativeMethods.E_NOTFOUND != ret;
68 } 68 }
@@ -101,14 +101,15 @@ namespace WixToolset.Mba.Core
101 /// <inheritdoc/> 101 /// <inheritdoc/>
102 public string EscapeString(string input) 102 public string EscapeString(string input)
103 { 103 {
104 int capacity = InitialBufferSize; 104 IntPtr capacity = new IntPtr(InitialBufferSize);
105 StringBuilder sb = new StringBuilder(capacity); 105 StringBuilder sb = new StringBuilder(capacity.ToInt32());
106 106
107 // Get the size of the buffer. 107 // Get the size of the buffer.
108 int ret = this.engine.EscapeString(input, sb, ref capacity); 108 int ret = this.engine.EscapeString(input, sb, ref capacity);
109 if (NativeMethods.E_INSUFFICIENT_BUFFER == ret || NativeMethods.E_MOREDATA == ret) 109 if (NativeMethods.E_INSUFFICIENT_BUFFER == ret || NativeMethods.E_MOREDATA == ret)
110 { 110 {
111 sb.Capacity = ++capacity; // Add one for the null terminator. 111 capacity = new IntPtr(capacity.ToInt32() + 1); // Add one for the null terminator.
112 sb.Capacity = capacity.ToInt32();
112 ret = this.engine.EscapeString(input, sb, ref capacity); 113 ret = this.engine.EscapeString(input, sb, ref capacity);
113 } 114 }
114 115
@@ -132,14 +133,15 @@ namespace WixToolset.Mba.Core
132 /// <inheritdoc/> 133 /// <inheritdoc/>
133 public string FormatString(string format) 134 public string FormatString(string format)
134 { 135 {
135 int capacity = InitialBufferSize; 136 IntPtr capacity = new IntPtr(InitialBufferSize);
136 StringBuilder sb = new StringBuilder(capacity); 137 StringBuilder sb = new StringBuilder(capacity.ToInt32());
137 138
138 // Get the size of the buffer. 139 // Get the size of the buffer.
139 int ret = this.engine.FormatString(format, sb, ref capacity); 140 int ret = this.engine.FormatString(format, sb, ref capacity);
140 if (NativeMethods.E_INSUFFICIENT_BUFFER == ret || NativeMethods.E_MOREDATA == ret) 141 if (NativeMethods.E_INSUFFICIENT_BUFFER == ret || NativeMethods.E_MOREDATA == ret)
141 { 142 {
142 sb.Capacity = ++capacity; // Add one for the null terminator. 143 capacity = new IntPtr(capacity.ToInt32() + 1); // Add one for the null terminator.
144 sb.Capacity = capacity.ToInt32();
143 ret = this.engine.FormatString(format, sb, ref capacity); 145 ret = this.engine.FormatString(format, sb, ref capacity);
144 } 146 }
145 147
@@ -343,9 +345,9 @@ namespace WixToolset.Mba.Core
343 /// <exception cref="Exception">An error occurred getting the variable.</exception> 345 /// <exception cref="Exception">An error occurred getting the variable.</exception>
344 internal IntPtr getStringVariable(string name, out int length) 346 internal IntPtr getStringVariable(string name, out int length)
345 { 347 {
346 int capacity = InitialBufferSize; 348 IntPtr capacity = new IntPtr(InitialBufferSize);
347 bool success = false; 349 bool success = false;
348 IntPtr pValue = Marshal.AllocCoTaskMem(capacity * UnicodeEncoding.CharSize); 350 IntPtr pValue = Marshal.AllocCoTaskMem(capacity.ToInt32() * UnicodeEncoding.CharSize);
349 try 351 try
350 { 352 {
351 // Get the size of the buffer. 353 // Get the size of the buffer.
@@ -353,7 +355,7 @@ namespace WixToolset.Mba.Core
353 if (NativeMethods.E_INSUFFICIENT_BUFFER == ret || NativeMethods.E_MOREDATA == ret) 355 if (NativeMethods.E_INSUFFICIENT_BUFFER == ret || NativeMethods.E_MOREDATA == ret)
354 { 356 {
355 // Don't need to add 1 for the null terminator, the engine already includes that. 357 // Don't need to add 1 for the null terminator, the engine already includes that.
356 pValue = Marshal.ReAllocCoTaskMem(pValue, capacity * UnicodeEncoding.CharSize); 358 pValue = Marshal.ReAllocCoTaskMem(pValue, capacity.ToInt32() * UnicodeEncoding.CharSize);
357 ret = this.engine.GetVariableString(name, pValue, ref capacity); 359 ret = this.engine.GetVariableString(name, pValue, ref capacity);
358 } 360 }
359 361
@@ -363,9 +365,10 @@ namespace WixToolset.Mba.Core
363 } 365 }
364 366
365 // The engine only returns the exact length of the string if the buffer was too small, so calculate it ourselves. 367 // The engine only returns the exact length of the string if the buffer was too small, so calculate it ourselves.
366 for (length = 0; length < capacity; ++length) 368 int maxLength = capacity.ToInt32();
369 for (length = 0; length < maxLength; ++length)
367 { 370 {
368 if(0 == Marshal.ReadInt16(pValue, length * UnicodeEncoding.CharSize)) 371 if (0 == Marshal.ReadInt16(pValue, length * UnicodeEncoding.CharSize))
369 { 372 {
370 break; 373 break;
371 } 374 }
@@ -392,9 +395,9 @@ namespace WixToolset.Mba.Core
392 /// <exception cref="Exception">An error occurred getting the variable.</exception> 395 /// <exception cref="Exception">An error occurred getting the variable.</exception>
393 internal IntPtr getVersionVariable(string name, out int length) 396 internal IntPtr getVersionVariable(string name, out int length)
394 { 397 {
395 int capacity = InitialBufferSize; 398 IntPtr capacity = new IntPtr(InitialBufferSize);
396 bool success = false; 399 bool success = false;
397 IntPtr pValue = Marshal.AllocCoTaskMem(capacity * UnicodeEncoding.CharSize); 400 IntPtr pValue = Marshal.AllocCoTaskMem(capacity.ToInt32() * UnicodeEncoding.CharSize);
398 try 401 try
399 { 402 {
400 // Get the size of the buffer. 403 // Get the size of the buffer.
@@ -402,7 +405,7 @@ namespace WixToolset.Mba.Core
402 if (NativeMethods.E_INSUFFICIENT_BUFFER == ret || NativeMethods.E_MOREDATA == ret) 405 if (NativeMethods.E_INSUFFICIENT_BUFFER == ret || NativeMethods.E_MOREDATA == ret)
403 { 406 {
404 // Don't need to add 1 for the null terminator, the engine already includes that. 407 // Don't need to add 1 for the null terminator, the engine already includes that.
405 pValue = Marshal.ReAllocCoTaskMem(pValue, capacity * UnicodeEncoding.CharSize); 408 pValue = Marshal.ReAllocCoTaskMem(pValue, capacity.ToInt32() * UnicodeEncoding.CharSize);
406 ret = this.engine.GetVariableVersion(name, pValue, ref capacity); 409 ret = this.engine.GetVariableVersion(name, pValue, ref capacity);
407 } 410 }
408 411
@@ -412,7 +415,8 @@ namespace WixToolset.Mba.Core
412 } 415 }
413 416
414 // The engine only returns the exact length of the string if the buffer was too small, so calculate it ourselves. 417 // The engine only returns the exact length of the string if the buffer was too small, so calculate it ourselves.
415 for (length = 0; length < capacity; ++length) 418 int maxLength = capacity.ToInt32();
419 for (length = 0; length < maxLength; ++length)
416 { 420 {
417 if (0 == Marshal.ReadInt16(pValue, length * UnicodeEncoding.CharSize)) 421 if (0 == Marshal.ReadInt16(pValue, length * UnicodeEncoding.CharSize))
418 { 422 {
diff --git a/src/WixToolset.Mba.Core/EventArgs.cs b/src/WixToolset.Mba.Core/EventArgs.cs
index e64f6d2c..8ef8af14 100644
--- a/src/WixToolset.Mba.Core/EventArgs.cs
+++ b/src/WixToolset.Mba.Core/EventArgs.cs
@@ -617,22 +617,18 @@ namespace WixToolset.Mba.Core
617 } 617 }
618 618
619 /// <summary> 619 /// <summary>
620 /// Additional arguments used when the detection for a specific package has completed. 620 /// Additional arguments for <see cref="IDefaultBootstrapperApplication.DetectPackageComplete"/>.
621 /// </summary> 621 /// </summary>
622 [Serializable] 622 [Serializable]
623 public class DetectPackageCompleteEventArgs : StatusEventArgs 623 public class DetectPackageCompleteEventArgs : StatusEventArgs
624 { 624 {
625 /// <summary> 625 /// <summary />
626 /// Creates a new instance of the <see cref="DetectPackageCompleteEventArgs"/> class. 626 public DetectPackageCompleteEventArgs(string packageId, int hrStatus, PackageState state, bool cached)
627 /// </summary>
628 /// <param name="packageId">The identity of the package detected.</param>
629 /// <param name="hrStatus">The return code of the operation.</param>
630 /// <param name="state">The state of the specified package.</param>
631 public DetectPackageCompleteEventArgs(string packageId, int hrStatus, PackageState state)
632 : base(hrStatus) 627 : base(hrStatus)
633 { 628 {
634 this.PackageId = packageId; 629 this.PackageId = packageId;
635 this.State = state; 630 this.State = state;
631 this.Cached = cached;
636 } 632 }
637 633
638 /// <summary> 634 /// <summary>
@@ -644,6 +640,11 @@ namespace WixToolset.Mba.Core
644 /// Gets the state of the specified package. 640 /// Gets the state of the specified package.
645 /// </summary> 641 /// </summary>
646 public PackageState State { get; private set; } 642 public PackageState State { get; private set; }
643
644 /// <summary>
645 /// Gets whether any part of the package is cached.
646 /// </summary>
647 public bool Cached { get; private set; }
647 } 648 }
648 649
649 /// <summary> 650 /// <summary>
@@ -725,23 +726,18 @@ namespace WixToolset.Mba.Core
725 [Serializable] 726 [Serializable]
726 public class PlanPackageBeginEventArgs : CancellableHResultEventArgs 727 public class PlanPackageBeginEventArgs : CancellableHResultEventArgs
727 { 728 {
728 /// <summary> 729 /// <summary />
729 /// 730 public PlanPackageBeginEventArgs(string packageId, PackageState currentState, bool cached, BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition, RequestState recommendedState, BOOTSTRAPPER_CACHE_TYPE recommendedCacheType, RequestState state, BOOTSTRAPPER_CACHE_TYPE cacheType, bool cancelRecommendation)
730 /// </summary>
731 /// <param name="packageId"></param>
732 /// <param name="currentState"></param>
733 /// <param name="installCondition"></param>
734 /// <param name="recommendedState"></param>
735 /// <param name="state"></param>
736 /// <param name="cancelRecommendation"></param>
737 public PlanPackageBeginEventArgs(string packageId, PackageState currentState, bool installCondition, RequestState recommendedState, RequestState state, bool cancelRecommendation)
738 : base(cancelRecommendation) 731 : base(cancelRecommendation)
739 { 732 {
740 this.PackageId = packageId; 733 this.PackageId = packageId;
741 this.CurrentState = currentState; 734 this.CurrentState = currentState;
735 this.Cached = cached;
742 this.InstallCondition = installCondition; 736 this.InstallCondition = installCondition;
743 this.RecommendedState = recommendedState; 737 this.RecommendedState = recommendedState;
738 this.RecommendedCacheType = recommendedCacheType;
744 this.State = state; 739 this.State = state;
740 this.CacheType = cacheType;
745 } 741 }
746 742
747 /// <summary> 743 /// <summary>
@@ -755,9 +751,14 @@ namespace WixToolset.Mba.Core
755 public PackageState CurrentState { get; private set; } 751 public PackageState CurrentState { get; private set; }
756 752
757 /// <summary> 753 /// <summary>
754 /// Gets whether any part of the package is cached.
755 /// </summary>
756 public bool Cached { get; private set; }
757
758 /// <summary>
758 /// Gets the evaluated result of the package's install condition. 759 /// Gets the evaluated result of the package's install condition.
759 /// </summary> 760 /// </summary>
760 public bool InstallCondition { get; private set; } 761 public BOOTSTRAPPER_PACKAGE_CONDITION_RESULT InstallCondition { get; private set; }
761 762
762 /// <summary> 763 /// <summary>
763 /// Gets the recommended requested state for the package. 764 /// Gets the recommended requested state for the package.
@@ -765,9 +766,19 @@ namespace WixToolset.Mba.Core
765 public RequestState RecommendedState { get; private set; } 766 public RequestState RecommendedState { get; private set; }
766 767
767 /// <summary> 768 /// <summary>
769 /// The authored cache type of the package.
770 /// </summary>
771 public BOOTSTRAPPER_CACHE_TYPE RecommendedCacheType { get; private set; }
772
773 /// <summary>
768 /// Gets or sets the requested state for the package. 774 /// Gets or sets the requested state for the package.
769 /// </summary> 775 /// </summary>
770 public RequestState State { get; set; } 776 public RequestState State { get; set; }
777
778 /// <summary>
779 /// Gets or sets the requested cache type for the package.
780 /// </summary>
781 public BOOTSTRAPPER_CACHE_TYPE CacheType { get; set; }
771 } 782 }
772 783
773 /// <summary> 784 /// <summary>
@@ -936,17 +947,14 @@ namespace WixToolset.Mba.Core
936 [Serializable] 947 [Serializable]
937 public class PlannedPackageEventArgs : HResultEventArgs 948 public class PlannedPackageEventArgs : HResultEventArgs
938 { 949 {
939 /// <summary> 950 /// <summary />
940 /// 951 public PlannedPackageEventArgs(string packageId, ActionState execute, ActionState rollback, bool cache, bool uncache)
941 /// </summary>
942 /// <param name="packageId"></param>
943 /// <param name="execute"></param>
944 /// <param name="rollback"></param>
945 public PlannedPackageEventArgs(string packageId, ActionState execute, ActionState rollback)
946 { 952 {
947 this.PackageId = packageId; 953 this.PackageId = packageId;
948 this.Execute = execute; 954 this.Execute = execute;
949 this.Rollback = rollback; 955 this.Rollback = rollback;
956 this.Cache = cache;
957 this.Uncache = uncache;
950 } 958 }
951 959
952 /// <summary> 960 /// <summary>
@@ -963,6 +971,16 @@ namespace WixToolset.Mba.Core
963 /// Gets the planned rollback action. 971 /// Gets the planned rollback action.
964 /// </summary> 972 /// </summary>
965 public ActionState Rollback { get; private set; } 973 public ActionState Rollback { get; private set; }
974
975 /// <summary>
976 /// Gets whether the package will be cached.
977 /// </summary>
978 public bool Cache { get; private set; }
979
980 /// <summary>
981 /// Gets whether the package will be removed from the package cache.
982 /// </summary>
983 public bool Uncache { get; private set; }
966 } 984 }
967 985
968 /// <summary> 986 /// <summary>
diff --git a/src/WixToolset.Mba.Core/IBootstrapperApplication.cs b/src/WixToolset.Mba.Core/IBootstrapperApplication.cs
index 2195fd4b..530fb1a9 100644
--- a/src/WixToolset.Mba.Core/IBootstrapperApplication.cs
+++ b/src/WixToolset.Mba.Core/IBootstrapperApplication.cs
@@ -251,16 +251,13 @@ namespace WixToolset.Mba.Core
251 /// <summary> 251 /// <summary>
252 /// See <see cref="IDefaultBootstrapperApplication.DetectPackageComplete"/>. 252 /// See <see cref="IDefaultBootstrapperApplication.DetectPackageComplete"/>.
253 /// </summary> 253 /// </summary>
254 /// <param name="wzPackageId"></param>
255 /// <param name="hrStatus"></param>
256 /// <param name="state"></param>
257 /// <returns></returns>
258 [PreserveSig] 254 [PreserveSig]
259 [return: MarshalAs(UnmanagedType.I4)] 255 [return: MarshalAs(UnmanagedType.I4)]
260 int OnDetectPackageComplete( 256 int OnDetectPackageComplete(
261 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, 257 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
262 int hrStatus, 258 int hrStatus,
263 [MarshalAs(UnmanagedType.U4)] PackageState state 259 [MarshalAs(UnmanagedType.U4)] PackageState state,
260 [MarshalAs(UnmanagedType.Bool)] bool fCached
264 ); 261 );
265 262
266 /// <summary> 263 /// <summary>
@@ -309,21 +306,17 @@ namespace WixToolset.Mba.Core
309 /// <summary> 306 /// <summary>
310 /// See <see cref="IDefaultBootstrapperApplication.PlanPackageBegin"/>. 307 /// See <see cref="IDefaultBootstrapperApplication.PlanPackageBegin"/>.
311 /// </summary> 308 /// </summary>
312 /// <param name="wzPackageId"></param>
313 /// <param name="state"></param>
314 /// <param name="fInstallCondition"></param>
315 /// <param name="recommendedState"></param>
316 /// <param name="pRequestedState"></param>
317 /// <param name="fCancel"></param>
318 /// <returns></returns>
319 [PreserveSig] 309 [PreserveSig]
320 [return: MarshalAs(UnmanagedType.I4)] 310 [return: MarshalAs(UnmanagedType.I4)]
321 int OnPlanPackageBegin( 311 int OnPlanPackageBegin(
322 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, 312 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
323 [MarshalAs(UnmanagedType.U4)] PackageState state, 313 [MarshalAs(UnmanagedType.U4)] PackageState state,
324 [MarshalAs(UnmanagedType.Bool)] bool fInstallCondition, 314 [MarshalAs(UnmanagedType.Bool)] bool fCached,
315 [MarshalAs(UnmanagedType.U4)] BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition,
325 [MarshalAs(UnmanagedType.U4)] RequestState recommendedState, 316 [MarshalAs(UnmanagedType.U4)] RequestState recommendedState,
317 [MarshalAs(UnmanagedType.U4)] BOOTSTRAPPER_CACHE_TYPE recommendedCacheType,
326 [MarshalAs(UnmanagedType.U4)] ref RequestState pRequestedState, 318 [MarshalAs(UnmanagedType.U4)] ref RequestState pRequestedState,
319 [MarshalAs(UnmanagedType.U4)] ref BOOTSTRAPPER_CACHE_TYPE pRequestedCacheType,
327 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel 320 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
328 ); 321 );
329 322
@@ -406,16 +399,14 @@ namespace WixToolset.Mba.Core
406 /// <summary> 399 /// <summary>
407 /// See <see cref="IDefaultBootstrapperApplication.PlannedPackage"/>. 400 /// See <see cref="IDefaultBootstrapperApplication.PlannedPackage"/>.
408 /// </summary> 401 /// </summary>
409 /// <param name="wzPackageId"></param>
410 /// <param name="execute"></param>
411 /// <param name="rollback"></param>
412 /// <returns></returns>
413 [PreserveSig] 402 [PreserveSig]
414 [return: MarshalAs(UnmanagedType.I4)] 403 [return: MarshalAs(UnmanagedType.I4)]
415 int OnPlannedPackage( 404 int OnPlannedPackage(
416 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, 405 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
417 [MarshalAs(UnmanagedType.U4)] ActionState execute, 406 [MarshalAs(UnmanagedType.U4)] ActionState execute,
418 [MarshalAs(UnmanagedType.U4)] ActionState rollback 407 [MarshalAs(UnmanagedType.U4)] ActionState rollback,
408 [MarshalAs(UnmanagedType.Bool)] bool fPlannedCache,
409 [MarshalAs(UnmanagedType.Bool)] bool fPlannedUncache
419 ); 410 );
420 411
421 /// <summary> 412 /// <summary>
@@ -1642,6 +1633,27 @@ namespace WixToolset.Mba.Core
1642 } 1633 }
1643 1634
1644 /// <summary> 1635 /// <summary>
1636 /// The cache strategy to be used for the package.
1637 /// </summary>
1638 public enum BOOTSTRAPPER_CACHE_TYPE
1639 {
1640 /// <summary>
1641 /// The package will be cached in order to securely run the package, but will always be cleaned from the cache at the end.
1642 /// </summary>
1643 Remove,
1644
1645 /// <summary>
1646 /// The package will be cached in order to run the package, and then kept in the cache until the package is uninstalled.
1647 /// </summary>
1648 Keep,
1649
1650 /// <summary>
1651 /// The package will always be cached and stay in the cache, unless the package and bundle are both being uninstalled.
1652 /// </summary>
1653 Force,
1654 }
1655
1656 /// <summary>
1645 /// The available actions for <see cref="IDefaultBootstrapperApplication.CacheAcquireComplete"/>. 1657 /// The available actions for <see cref="IDefaultBootstrapperApplication.CacheAcquireComplete"/>.
1646 /// </summary> 1658 /// </summary>
1647 public enum BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION 1659 public enum BOOTSTRAPPER_CACHEACQUIRECOMPLETE_ACTION
@@ -1737,6 +1749,27 @@ namespace WixToolset.Mba.Core
1737 } 1749 }
1738 1750
1739 /// <summary> 1751 /// <summary>
1752 /// The result of evaluating a condition from a package.
1753 /// </summary>
1754 public enum BOOTSTRAPPER_PACKAGE_CONDITION_RESULT
1755 {
1756 /// <summary>
1757 /// No condition was authored.
1758 /// </summary>
1759 Default,
1760
1761 /// <summary>
1762 /// Evaluated to false.
1763 /// </summary>
1764 False,
1765
1766 /// <summary>
1767 /// Evaluated to true.
1768 /// </summary>
1769 True,
1770 }
1771
1772 /// <summary>
1740 /// The available actions for <see cref="IDefaultBootstrapperApplication.CacheAcquireResolving"/>. 1773 /// The available actions for <see cref="IDefaultBootstrapperApplication.CacheAcquireResolving"/>.
1741 /// </summary> 1774 /// </summary>
1742 public enum BOOTSTRAPPER_RESOLVESOURCE_ACTION 1775 public enum BOOTSTRAPPER_RESOLVESOURCE_ACTION
diff --git a/src/WixToolset.Mba.Core/IBootstrapperEngine.cs b/src/WixToolset.Mba.Core/IBootstrapperEngine.cs
index 78753a42..4e19bf0f 100644
--- a/src/WixToolset.Mba.Core/IBootstrapperEngine.cs
+++ b/src/WixToolset.Mba.Core/IBootstrapperEngine.cs
@@ -39,57 +39,41 @@ namespace WixToolset.Mba.Core
39 /// <summary> 39 /// <summary>
40 /// See <see cref="IEngine.GetVariableString(string)"/>. 40 /// See <see cref="IEngine.GetVariableString(string)"/>.
41 /// </summary> 41 /// </summary>
42 /// <param name="wzVariable"></param>
43 /// <param name="wzValue"></param>
44 /// <param name="pcchValue"></param>
45 /// <returns></returns>
46 [PreserveSig] 42 [PreserveSig]
47 int GetVariableString( 43 int GetVariableString(
48 [MarshalAs(UnmanagedType.LPWStr)] string wzVariable, 44 [MarshalAs(UnmanagedType.LPWStr)] string wzVariable,
49 IntPtr wzValue, 45 IntPtr wzValue,
50 [MarshalAs(UnmanagedType.U4)] ref int pcchValue 46 ref IntPtr pcchValue
51 ); 47 );
52 48
53 /// <summary> 49 /// <summary>
54 /// See <see cref="IEngine.GetVariableVersion(string)"/>. 50 /// See <see cref="IEngine.GetVariableVersion(string)"/>.
55 /// </summary> 51 /// </summary>
56 /// <param name="wzVariable"></param>
57 /// <param name="wzValue"></param>
58 /// <param name="pcchValue"></param>
59 /// <returns></returns>
60 [PreserveSig] 52 [PreserveSig]
61 int GetVariableVersion( 53 int GetVariableVersion(
62 [MarshalAs(UnmanagedType.LPWStr)] string wzVariable, 54 [MarshalAs(UnmanagedType.LPWStr)] string wzVariable,
63 IntPtr wzValue, 55 IntPtr wzValue,
64 [MarshalAs(UnmanagedType.U4)] ref int pcchValue 56 ref IntPtr pcchValue
65 ); 57 );
66 58
67 /// <summary> 59 /// <summary>
68 /// See <see cref="IEngine.FormatString(string)"/>. 60 /// See <see cref="IEngine.FormatString(string)"/>.
69 /// </summary> 61 /// </summary>
70 /// <param name="wzIn"></param>
71 /// <param name="wzOut"></param>
72 /// <param name="pcchOut"></param>
73 /// <returns></returns>
74 [PreserveSig] 62 [PreserveSig]
75 int FormatString( 63 int FormatString(
76 [MarshalAs(UnmanagedType.LPWStr)] string wzIn, 64 [MarshalAs(UnmanagedType.LPWStr)] string wzIn,
77 [MarshalAs(UnmanagedType.LPWStr), Out] StringBuilder wzOut, 65 [MarshalAs(UnmanagedType.LPWStr), Out] StringBuilder wzOut,
78 [MarshalAs(UnmanagedType.U4)] ref int pcchOut 66 ref IntPtr pcchOut
79 ); 67 );
80 68
81 /// <summary> 69 /// <summary>
82 /// See <see cref="IEngine.EscapeString(string)"/>. 70 /// See <see cref="IEngine.EscapeString(string)"/>.
83 /// </summary> 71 /// </summary>
84 /// <param name="wzIn"></param>
85 /// <param name="wzOut"></param>
86 /// <param name="pcchOut"></param>
87 /// <returns></returns>
88 [PreserveSig] 72 [PreserveSig]
89 int EscapeString( 73 int EscapeString(
90 [MarshalAs(UnmanagedType.LPWStr)] string wzIn, 74 [MarshalAs(UnmanagedType.LPWStr)] string wzIn,
91 [MarshalAs(UnmanagedType.LPWStr), Out] StringBuilder wzOut, 75 [MarshalAs(UnmanagedType.LPWStr), Out] StringBuilder wzOut,
92 [MarshalAs(UnmanagedType.U4)] ref int pcchOut 76 ref IntPtr pcchOut
93 ); 77 );
94 78
95 /// <summary> 79 /// <summary>
diff --git a/src/WixToolset.Mba.Core/IPackageInfo.cs b/src/WixToolset.Mba.Core/IPackageInfo.cs
index 0d7e549e..a1d99b10 100644
--- a/src/WixToolset.Mba.Core/IPackageInfo.cs
+++ b/src/WixToolset.Mba.Core/IPackageInfo.cs
@@ -10,7 +10,7 @@ namespace WixToolset.Mba.Core
10 /// <summary> 10 /// <summary>
11 /// 11 ///
12 /// </summary> 12 /// </summary>
13 CacheType CacheType { get; } 13 BOOTSTRAPPER_CACHE_TYPE CacheType { get; }
14 14
15 /// <summary> 15 /// <summary>
16 /// Place for the BA to store it's own custom data for this package. 16 /// Place for the BA to store it's own custom data for this package.
diff --git a/src/WixToolset.Mba.Core/PackageInfo.cs b/src/WixToolset.Mba.Core/PackageInfo.cs
index 75a0fd53..567a7cdd 100644
--- a/src/WixToolset.Mba.Core/PackageInfo.cs
+++ b/src/WixToolset.Mba.Core/PackageInfo.cs
@@ -10,27 +10,6 @@ namespace WixToolset.Mba.Core
10 /// <summary> 10 /// <summary>
11 /// 11 ///
12 /// </summary> 12 /// </summary>
13 public enum CacheType
14 {
15 /// <summary>
16 ///
17 /// </summary>
18 No,
19
20 /// <summary>
21 ///
22 /// </summary>
23 Yes,
24
25 /// <summary>
26 ///
27 /// </summary>
28 Always,
29 }
30
31 /// <summary>
32 ///
33 /// </summary>
34 public enum PackageType 13 public enum PackageType
35 { 14 {
36 /// <summary> 15 /// <summary>
@@ -113,7 +92,7 @@ namespace WixToolset.Mba.Core
113 public string InstallCondition { get; internal set; } 92 public string InstallCondition { get; internal set; }
114 93
115 /// <inheritdoc/> 94 /// <inheritdoc/>
116 public CacheType CacheType { get; internal set; } 95 public BOOTSTRAPPER_CACHE_TYPE CacheType { get; internal set; }
117 96
118 /// <inheritdoc/> 97 /// <inheritdoc/>
119 public bool PrereqPackage { get; internal set; } 98 public bool PrereqPackage { get; internal set; }
@@ -198,7 +177,7 @@ namespace WixToolset.Mba.Core
198 /// <param name="node"></param> 177 /// <param name="node"></param>
199 /// <param name="attributeName"></param> 178 /// <param name="attributeName"></param>
200 /// <returns></returns> 179 /// <returns></returns>
201 public static CacheType? GetCacheTypeAttribute(XPathNavigator node, string attributeName) 180 public static BOOTSTRAPPER_CACHE_TYPE? GetCacheTypeAttribute(XPathNavigator node, string attributeName)
202 { 181 {
203 string attributeValue = BootstrapperApplicationData.GetAttribute(node, attributeName); 182 string attributeValue = BootstrapperApplicationData.GetAttribute(node, attributeName);
204 183
@@ -207,17 +186,17 @@ namespace WixToolset.Mba.Core
207 return null; 186 return null;
208 } 187 }
209 188
210 if (attributeValue.Equals("yes", StringComparison.InvariantCulture)) 189 if (attributeValue.Equals("keep", StringComparison.InvariantCulture))
211 { 190 {
212 return CacheType.Yes; 191 return BOOTSTRAPPER_CACHE_TYPE.Keep;
213 } 192 }
214 else if (attributeValue.Equals("always", StringComparison.InvariantCulture)) 193 else if (attributeValue.Equals("force", StringComparison.InvariantCulture))
215 { 194 {
216 return CacheType.Always; 195 return BOOTSTRAPPER_CACHE_TYPE.Force;
217 } 196 }
218 else 197 else
219 { 198 {
220 return CacheType.No; 199 return BOOTSTRAPPER_CACHE_TYPE.Remove;
221 } 200 }
222 } 201 }
223 202
diff --git a/src/balutil/BalBootstrapperEngine.cpp b/src/balutil/BalBootstrapperEngine.cpp
index dda98cb9..301b88a5 100644
--- a/src/balutil/BalBootstrapperEngine.cpp
+++ b/src/balutil/BalBootstrapperEngine.cpp
@@ -107,7 +107,7 @@ public: // IBootstrapperEngine
107 virtual STDMETHODIMP GetVariableString( 107 virtual STDMETHODIMP GetVariableString(
108 __in_z LPCWSTR wzVariable, 108 __in_z LPCWSTR wzVariable,
109 __out_ecount_opt(*pcchValue) LPWSTR wzValue, 109 __out_ecount_opt(*pcchValue) LPWSTR wzValue,
110 __inout DWORD* pcchValue 110 __inout SIZE_T* pcchValue
111 ) 111 )
112 { 112 {
113 HRESULT hr = S_OK; 113 HRESULT hr = S_OK;
@@ -134,7 +134,7 @@ public: // IBootstrapperEngine
134 virtual STDMETHODIMP GetVariableVersion( 134 virtual STDMETHODIMP GetVariableVersion(
135 __in_z LPCWSTR wzVariable, 135 __in_z LPCWSTR wzVariable,
136 __out_ecount_opt(*pcchValue) LPWSTR wzValue, 136 __out_ecount_opt(*pcchValue) LPWSTR wzValue,
137 __inout DWORD* pcchValue 137 __inout SIZE_T* pcchValue
138 ) 138 )
139 { 139 {
140 HRESULT hr = S_OK; 140 HRESULT hr = S_OK;
@@ -161,7 +161,7 @@ public: // IBootstrapperEngine
161 virtual STDMETHODIMP FormatString( 161 virtual STDMETHODIMP FormatString(
162 __in_z LPCWSTR wzIn, 162 __in_z LPCWSTR wzIn,
163 __out_ecount_opt(*pcchOut) LPWSTR wzOut, 163 __out_ecount_opt(*pcchOut) LPWSTR wzOut,
164 __inout DWORD* pcchOut 164 __inout SIZE_T* pcchOut
165 ) 165 )
166 { 166 {
167 HRESULT hr = S_OK; 167 HRESULT hr = S_OK;
@@ -188,7 +188,7 @@ public: // IBootstrapperEngine
188 virtual STDMETHODIMP EscapeString( 188 virtual STDMETHODIMP EscapeString(
189 __in_z LPCWSTR wzIn, 189 __in_z LPCWSTR wzIn,
190 __out_ecount_opt(*pcchOut) LPWSTR wzOut, 190 __out_ecount_opt(*pcchOut) LPWSTR wzOut,
191 __inout DWORD* pcchOut 191 __inout SIZE_T* pcchOut
192 ) 192 )
193 { 193 {
194 HRESULT hr = S_OK; 194 HRESULT hr = S_OK;
@@ -485,7 +485,7 @@ public: // IBootstrapperEngine
485 } 485 }
486 486
487 virtual STDMETHODIMP Apply( 487 virtual STDMETHODIMP Apply(
488 __in_opt HWND hwndParent 488 __in HWND hwndParent
489 ) 489 )
490 { 490 {
491 BAENGINE_APPLY_ARGS args = { }; 491 BAENGINE_APPLY_ARGS args = { };
diff --git a/src/balutil/balcondition.cpp b/src/balutil/balcondition.cpp
index 11d3e218..8b05508f 100644
--- a/src/balutil/balcondition.cpp
+++ b/src/balutil/balcondition.cpp
@@ -78,7 +78,7 @@ DAPI_(HRESULT) BalConditionEvaluate(
78 ) 78 )
79{ 79{
80 HRESULT hr = S_OK; 80 HRESULT hr = S_OK;
81 DWORD_PTR cchMessage = 0; 81 SIZE_T cchMessage = 0;
82 82
83 hr = pEngine->EvaluateCondition(pCondition->sczCondition, pfResult); 83 hr = pEngine->EvaluateCondition(pCondition->sczCondition, pfResult);
84 ExitOnFailure(hr, "Failed to evaluate condition with bootstrapper engine."); 84 ExitOnFailure(hr, "Failed to evaluate condition with bootstrapper engine.");
@@ -91,7 +91,7 @@ DAPI_(HRESULT) BalConditionEvaluate(
91 ExitOnFailure(hr, "Failed to get length of message."); 91 ExitOnFailure(hr, "Failed to get length of message.");
92 } 92 }
93 93
94 hr = pEngine->FormatString(pCondition->sczMessage, *psczMessage, reinterpret_cast<DWORD*>(&cchMessage)); 94 hr = pEngine->FormatString(pCondition->sczMessage, *psczMessage, &cchMessage);
95 if (E_MOREDATA == hr) 95 if (E_MOREDATA == hr)
96 { 96 {
97 ++cchMessage; 97 ++cchMessage;
@@ -99,7 +99,7 @@ DAPI_(HRESULT) BalConditionEvaluate(
99 hr = StrAllocSecure(psczMessage, cchMessage); 99 hr = StrAllocSecure(psczMessage, cchMessage);
100 ExitOnFailure(hr, "Failed to allocate string for condition's formatted message."); 100 ExitOnFailure(hr, "Failed to allocate string for condition's formatted message.");
101 101
102 hr = pEngine->FormatString(pCondition->sczMessage, *psczMessage, reinterpret_cast<DWORD*>(&cchMessage)); 102 hr = pEngine->FormatString(pCondition->sczMessage, *psczMessage, &cchMessage);
103 } 103 }
104 ExitOnFailure(hr, "Failed to format condition's message."); 104 ExitOnFailure(hr, "Failed to format condition's message.");
105 } 105 }
diff --git a/src/balutil/balinfo.cpp b/src/balutil/balinfo.cpp
index 492c8e08..3abb9286 100644
--- a/src/balutil/balinfo.cpp
+++ b/src/balutil/balinfo.cpp
@@ -261,17 +261,17 @@ static HRESULT ParsePackagesFromXml(
261 hr = XmlGetAttributeEx(pNode, L"Cache", &scz); 261 hr = XmlGetAttributeEx(pNode, L"Cache", &scz);
262 ExitOnFailure(hr, "Failed to get cache type for package."); 262 ExitOnFailure(hr, "Failed to get cache type for package.");
263 263
264 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"no", -1)) 264 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"remove", -1))
265 { 265 {
266 prgPackages[iPackage].cacheType = BAL_INFO_CACHE_TYPE_NO; 266 prgPackages[iPackage].cacheType = BOOTSTRAPPER_CACHE_TYPE_REMOVE;
267 } 267 }
268 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"yes", -1)) 268 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"keep", -1))
269 { 269 {
270 prgPackages[iPackage].cacheType = BAL_INFO_CACHE_TYPE_YES; 270 prgPackages[iPackage].cacheType = BOOTSTRAPPER_CACHE_TYPE_KEEP;
271 } 271 }
272 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"always", -1)) 272 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"force", -1))
273 { 273 {
274 prgPackages[iPackage].cacheType = BAL_INFO_CACHE_TYPE_ALWAYS; 274 prgPackages[iPackage].cacheType = BOOTSTRAPPER_CACHE_TYPE_FORCE;
275 } 275 }
276 276
277 ++iPackage; 277 ++iPackage;
diff --git a/src/balutil/balutil.cpp b/src/balutil/balutil.cpp
index faca70f5..7a638219 100644
--- a/src/balutil/balutil.cpp
+++ b/src/balutil/balutil.cpp
@@ -96,7 +96,7 @@ DAPI_(HRESULT) BalFormatString(
96 ) 96 )
97{ 97{
98 HRESULT hr = S_OK; 98 HRESULT hr = S_OK;
99 DWORD cch = 0; 99 SIZE_T cch = 0;
100 100
101 if (!vpEngine) 101 if (!vpEngine)
102 { 102 {
@@ -106,7 +106,7 @@ DAPI_(HRESULT) BalFormatString(
106 106
107 if (*psczOut) 107 if (*psczOut)
108 { 108 {
109 hr = StrMaxLength(*psczOut, reinterpret_cast<DWORD_PTR*>(&cch)); 109 hr = StrMaxLength(*psczOut, &cch);
110 ExitOnFailure(hr, "Failed to determine length of value."); 110 ExitOnFailure(hr, "Failed to determine length of value.");
111 } 111 }
112 112
@@ -172,7 +172,7 @@ DAPI_(BOOL) BalVariableExists(
172 ) 172 )
173{ 173{
174 HRESULT hr = S_OK; 174 HRESULT hr = S_OK;
175 DWORD cch = 0; 175 SIZE_T cch = 0;
176 176
177 if (!vpEngine) 177 if (!vpEngine)
178 { 178 {
@@ -194,7 +194,7 @@ DAPI_(HRESULT) BalGetStringVariable(
194 ) 194 )
195{ 195{
196 HRESULT hr = S_OK; 196 HRESULT hr = S_OK;
197 DWORD cch = 0; 197 SIZE_T cch = 0;
198 198
199 if (!vpEngine) 199 if (!vpEngine)
200 { 200 {
@@ -204,7 +204,7 @@ DAPI_(HRESULT) BalGetStringVariable(
204 204
205 if (*psczValue) 205 if (*psczValue)
206 { 206 {
207 hr = StrMaxLength(*psczValue, reinterpret_cast<DWORD_PTR*>(&cch)); 207 hr = StrMaxLength(*psczValue, &cch);
208 ExitOnFailure(hr, "Failed to determine length of value."); 208 ExitOnFailure(hr, "Failed to determine length of value.");
209 } 209 }
210 210
diff --git a/src/balutil/balutil.vcxproj b/src/balutil/balutil.vcxproj
index a47e994f..73153d5e 100644
--- a/src/balutil/balutil.vcxproj
+++ b/src/balutil/balutil.vcxproj
@@ -2,8 +2,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. --> 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 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props')" /> 5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props')" />
6 <Import Project="..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" /> 6 <Import Project="..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" />
7 7
8 <ItemGroup Label="ProjectConfigurations"> 8 <ItemGroup Label="ProjectConfigurations">
9 <ProjectConfiguration Include="Debug|ARM64"> 9 <ProjectConfiguration Include="Debug|ARM64">
@@ -98,8 +98,8 @@
98 <PropertyGroup> 98 <PropertyGroup>
99 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 99 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
100 </PropertyGroup> 100 </PropertyGroup>
101 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props'))" /> 101 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props'))" />
102 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" /> 102 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" />
103 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props'))" /> 103 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props'))" />
104 </Target> 104 </Target>
105</Project> \ No newline at end of file 105</Project> \ No newline at end of file
diff --git a/src/balutil/inc/BalBaseBAFunctions.h b/src/balutil/inc/BalBaseBAFunctions.h
index 054bfb26..ee2e452f 100644
--- a/src/balutil/inc/BalBaseBAFunctions.h
+++ b/src/balutil/inc/BalBaseBAFunctions.h
@@ -222,7 +222,8 @@ public: // IBootstrapperApplication
222 virtual STDMETHODIMP OnDetectPackageComplete( 222 virtual STDMETHODIMP OnDetectPackageComplete(
223 __in_z LPCWSTR /*wzPackageId*/, 223 __in_z LPCWSTR /*wzPackageId*/,
224 __in HRESULT /*hrStatus*/, 224 __in HRESULT /*hrStatus*/,
225 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/ 225 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
226 __in BOOL /*fCached*/
226 ) 227 )
227 { 228 {
228 return S_OK; 229 return S_OK;
@@ -257,9 +258,12 @@ public: // IBootstrapperApplication
257 virtual STDMETHODIMP OnPlanPackageBegin( 258 virtual STDMETHODIMP OnPlanPackageBegin(
258 __in_z LPCWSTR /*wzPackageId*/, 259 __in_z LPCWSTR /*wzPackageId*/,
259 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, 260 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
260 __in BOOL /*fInstallCondition*/, 261 __in BOOL /*fCached*/,
262 __in BOOTSTRAPPER_PACKAGE_CONDITION_RESULT /*installCondition*/,
261 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/, 263 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
264 __in BOOTSTRAPPER_CACHE_TYPE /*recommendedCacheType*/,
262 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/, 265 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/,
266 __inout BOOTSTRAPPER_CACHE_TYPE* /*pRequestedCacheType*/,
263 __inout BOOL* /*pfCancel*/ 267 __inout BOOL* /*pfCancel*/
264 ) 268 )
265 { 269 {
@@ -313,7 +317,9 @@ public: // IBootstrapperApplication
313 virtual STDMETHODIMP OnPlannedPackage( 317 virtual STDMETHODIMP OnPlannedPackage(
314 __in_z LPCWSTR /*wzPackageId*/, 318 __in_z LPCWSTR /*wzPackageId*/,
315 __in BOOTSTRAPPER_ACTION_STATE /*execute*/, 319 __in BOOTSTRAPPER_ACTION_STATE /*execute*/,
316 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/ 320 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/,
321 __in BOOL /*fPlannedCache*/,
322 __in BOOL /*fPlannedUncache*/
317 ) 323 )
318 { 324 {
319 return S_OK; 325 return S_OK;
diff --git a/src/balutil/inc/BalBaseBootstrapperApplication.h b/src/balutil/inc/BalBaseBootstrapperApplication.h
index 812025eb..bf21c4a5 100644
--- a/src/balutil/inc/BalBaseBootstrapperApplication.h
+++ b/src/balutil/inc/BalBaseBootstrapperApplication.h
@@ -228,7 +228,8 @@ public: // IBootstrapperApplication
228 virtual STDMETHODIMP OnDetectPackageComplete( 228 virtual STDMETHODIMP OnDetectPackageComplete(
229 __in_z LPCWSTR /*wzPackageId*/, 229 __in_z LPCWSTR /*wzPackageId*/,
230 __in HRESULT /*hrStatus*/, 230 __in HRESULT /*hrStatus*/,
231 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/ 231 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
232 __in BOOL /*fCached*/
232 ) 233 )
233 { 234 {
234 return S_OK; 235 return S_OK;
@@ -265,9 +266,12 @@ public: // IBootstrapperApplication
265 virtual STDMETHODIMP OnPlanPackageBegin( 266 virtual STDMETHODIMP OnPlanPackageBegin(
266 __in_z LPCWSTR /*wzPackageId*/, 267 __in_z LPCWSTR /*wzPackageId*/,
267 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, 268 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
268 __in BOOL /*fInstallCondition*/, 269 __in BOOL /*fCached*/,
270 __in BOOTSTRAPPER_PACKAGE_CONDITION_RESULT /*installCondition*/,
269 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/, 271 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
272 __in BOOTSTRAPPER_CACHE_TYPE /*recommendedCacheType*/,
270 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/, 273 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/,
274 __inout BOOTSTRAPPER_CACHE_TYPE* /*pRequestedCacheType*/,
271 __inout BOOL* pfCancel 275 __inout BOOL* pfCancel
272 ) 276 )
273 { 277 {
@@ -325,7 +329,9 @@ public: // IBootstrapperApplication
325 virtual STDMETHODIMP OnPlannedPackage( 329 virtual STDMETHODIMP OnPlannedPackage(
326 __in_z LPCWSTR /*wzPackageId*/, 330 __in_z LPCWSTR /*wzPackageId*/,
327 __in BOOTSTRAPPER_ACTION_STATE /*execute*/, 331 __in BOOTSTRAPPER_ACTION_STATE /*execute*/,
328 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/ 332 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/,
333 __in BOOL /*fPlannedCache*/,
334 __in BOOL /*fPlannedUncache*/
329 ) 335 )
330 { 336 {
331 return S_OK; 337 return S_OK;
diff --git a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
index 10769529..7fe3ffd8 100644
--- a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
+++ b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
@@ -159,7 +159,7 @@ static HRESULT BalBaseBAProcOnDetectPackageComplete(
159 __inout BA_ONDETECTPACKAGECOMPLETE_RESULTS* /*pResults*/ 159 __inout BA_ONDETECTPACKAGECOMPLETE_RESULTS* /*pResults*/
160 ) 160 )
161{ 161{
162 return pBA->OnDetectPackageComplete(pArgs->wzPackageId, pArgs->hrStatus, pArgs->state); 162 return pBA->OnDetectPackageComplete(pArgs->wzPackageId, pArgs->hrStatus, pArgs->state, pArgs->fCached);
163} 163}
164 164
165static HRESULT BalBaseBAProcOnPlanRelatedBundle( 165static HRESULT BalBaseBAProcOnPlanRelatedBundle(
@@ -177,7 +177,7 @@ static HRESULT BalBaseBAProcOnPlanPackageBegin(
177 __inout BA_ONPLANPACKAGEBEGIN_RESULTS* pResults 177 __inout BA_ONPLANPACKAGEBEGIN_RESULTS* pResults
178 ) 178 )
179{ 179{
180 return pBA->OnPlanPackageBegin(pArgs->wzPackageId, pArgs->state, pArgs->fInstallCondition, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel); 180 return pBA->OnPlanPackageBegin(pArgs->wzPackageId, pArgs->state, pArgs->fCached, pArgs->installCondition, pArgs->recommendedState, pArgs->recommendedCacheType, &pResults->requestedState, &pResults->requestedCacheType, &pResults->fCancel);
181} 181}
182 182
183static HRESULT BalBaseBAProcOnPlanPatchTarget( 183static HRESULT BalBaseBAProcOnPlanPatchTarget(
@@ -213,7 +213,7 @@ static HRESULT BalBaseBAProcOnPlannedPackage(
213 __inout BA_ONPLANNEDPACKAGE_RESULTS* /*pResults*/ 213 __inout BA_ONPLANNEDPACKAGE_RESULTS* /*pResults*/
214 ) 214 )
215{ 215{
216 return pBA->OnPlannedPackage(pArgs->wzPackageId, pArgs->execute, pArgs->rollback); 216 return pBA->OnPlannedPackage(pArgs->wzPackageId, pArgs->execute, pArgs->rollback, pArgs->fPlannedCache, pArgs->fPlannedUncache);
217} 217}
218 218
219static HRESULT BalBaseBAProcOnApplyBegin( 219static HRESULT BalBaseBAProcOnApplyBegin(
diff --git a/src/balutil/inc/IBootstrapperApplication.h b/src/balutil/inc/IBootstrapperApplication.h
index 7d6a7164..c284cb49 100644
--- a/src/balutil/inc/IBootstrapperApplication.h
+++ b/src/balutil/inc/IBootstrapperApplication.h
@@ -135,7 +135,8 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
135 STDMETHOD(OnDetectPackageComplete)( 135 STDMETHOD(OnDetectPackageComplete)(
136 __in_z LPCWSTR wzPackageId, 136 __in_z LPCWSTR wzPackageId,
137 __in HRESULT hrStatus, 137 __in HRESULT hrStatus,
138 __in BOOTSTRAPPER_PACKAGE_STATE state 138 __in BOOTSTRAPPER_PACKAGE_STATE state,
139 __in BOOL fCached
139 ) = 0; 140 ) = 0;
140 141
141 // OnDetectPackageComplete - called after the engine completes detection. 142 // OnDetectPackageComplete - called after the engine completes detection.
@@ -164,9 +165,12 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
164 STDMETHOD(OnPlanPackageBegin)( 165 STDMETHOD(OnPlanPackageBegin)(
165 __in_z LPCWSTR wzPackageId, 166 __in_z LPCWSTR wzPackageId,
166 __in BOOTSTRAPPER_PACKAGE_STATE state, 167 __in BOOTSTRAPPER_PACKAGE_STATE state,
167 __in BOOL fInstallCondition, 168 __in BOOL fCached,
169 __in BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition,
168 __in BOOTSTRAPPER_REQUEST_STATE recommendedState, 170 __in BOOTSTRAPPER_REQUEST_STATE recommendedState,
171 __in BOOTSTRAPPER_CACHE_TYPE recommendedCacheType,
169 __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState, 172 __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState,
173 __inout BOOTSTRAPPER_CACHE_TYPE* pRequestedCacheType,
170 __inout BOOL* pfCancel 174 __inout BOOL* pfCancel
171 ) = 0; 175 ) = 0;
172 176
@@ -214,7 +218,9 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
214 STDMETHOD(OnPlannedPackage)( 218 STDMETHOD(OnPlannedPackage)(
215 __in_z LPCWSTR wzPackageId, 219 __in_z LPCWSTR wzPackageId,
216 __in BOOTSTRAPPER_ACTION_STATE execute, 220 __in BOOTSTRAPPER_ACTION_STATE execute,
217 __in BOOTSTRAPPER_ACTION_STATE rollback 221 __in BOOTSTRAPPER_ACTION_STATE rollback,
222 __in BOOL fPlannedCache,
223 __in BOOL fPlannedUncache
218 ) = 0; 224 ) = 0;
219 225
220 // OnPlanComplete - called when the engine completes planning. 226 // OnPlanComplete - called when the engine completes planning.
diff --git a/src/balutil/inc/IBootstrapperEngine.h b/src/balutil/inc/IBootstrapperEngine.h
index af6379f4..ccb07f4f 100644
--- a/src/balutil/inc/IBootstrapperEngine.h
+++ b/src/balutil/inc/IBootstrapperEngine.h
@@ -16,25 +16,25 @@ DECLARE_INTERFACE_IID_(IBootstrapperEngine, IUnknown, "6480D616-27A0-44D7-905B-8
16 STDMETHOD(GetVariableString)( 16 STDMETHOD(GetVariableString)(
17 __in_z LPCWSTR wzVariable, 17 __in_z LPCWSTR wzVariable,
18 __out_ecount_opt(*pcchValue) LPWSTR wzValue, 18 __out_ecount_opt(*pcchValue) LPWSTR wzValue,
19 __inout DWORD* pcchValue 19 __inout SIZE_T* pcchValue
20 ) = 0; 20 ) = 0;
21 21
22 STDMETHOD(GetVariableVersion)( 22 STDMETHOD(GetVariableVersion)(
23 __in_z LPCWSTR wzVariable, 23 __in_z LPCWSTR wzVariable,
24 __out_ecount_opt(*pcchValue) LPWSTR wzValue, 24 __out_ecount_opt(*pcchValue) LPWSTR wzValue,
25 __inout DWORD* pcchValue 25 __inout SIZE_T * pcchValue
26 ) = 0; 26 ) = 0;
27 27
28 STDMETHOD(FormatString)( 28 STDMETHOD(FormatString)(
29 __in_z LPCWSTR wzIn, 29 __in_z LPCWSTR wzIn,
30 __out_ecount_opt(*pcchOut) LPWSTR wzOut, 30 __out_ecount_opt(*pcchOut) LPWSTR wzOut,
31 __inout DWORD* pcchOut 31 __inout SIZE_T * pcchOut
32 ) = 0; 32 ) = 0;
33 33
34 STDMETHOD(EscapeString)( 34 STDMETHOD(EscapeString)(
35 __in_z LPCWSTR wzIn, 35 __in_z LPCWSTR wzIn,
36 __out_ecount_opt(*pcchOut) LPWSTR wzOut, 36 __out_ecount_opt(*pcchOut) LPWSTR wzOut,
37 __inout DWORD* pcchOut 37 __inout SIZE_T * pcchOut
38 ) = 0; 38 ) = 0;
39 39
40 STDMETHOD(EvaluateCondition)( 40 STDMETHOD(EvaluateCondition)(
@@ -114,7 +114,7 @@ DECLARE_INTERFACE_IID_(IBootstrapperEngine, IUnknown, "6480D616-27A0-44D7-905B-8
114 ) = 0; 114 ) = 0;
115 115
116 STDMETHOD(Apply)( 116 STDMETHOD(Apply)(
117 __in_opt HWND hwndParent 117 __in HWND hwndParent
118 ) = 0; 118 ) = 0;
119 119
120 STDMETHOD(Quit)( 120 STDMETHOD(Quit)(
diff --git a/src/balutil/inc/balinfo.h b/src/balutil/inc/balinfo.h
index 0d838ae3..8c2155e9 100644
--- a/src/balutil/inc/balinfo.h
+++ b/src/balutil/inc/balinfo.h
@@ -18,13 +18,6 @@ typedef enum BAL_INFO_PACKAGE_TYPE
18 BAL_INFO_PACKAGE_TYPE_BUNDLE_PATCH, 18 BAL_INFO_PACKAGE_TYPE_BUNDLE_PATCH,
19} BAL_INFO_PACKAGE_TYPE; 19} BAL_INFO_PACKAGE_TYPE;
20 20
21typedef enum BAL_INFO_CACHE_TYPE
22{
23 BAL_INFO_CACHE_TYPE_NO,
24 BAL_INFO_CACHE_TYPE_YES,
25 BAL_INFO_CACHE_TYPE_ALWAYS,
26} BAL_INFO_CACHE_TYPE;
27
28 21
29typedef struct _BAL_INFO_PACKAGE 22typedef struct _BAL_INFO_PACKAGE
30{ 23{
@@ -39,7 +32,7 @@ typedef struct _BAL_INFO_PACKAGE
39 LPWSTR sczUpgradeCode; 32 LPWSTR sczUpgradeCode;
40 LPWSTR sczVersion; 33 LPWSTR sczVersion;
41 LPWSTR sczInstallCondition; 34 LPWSTR sczInstallCondition;
42 BAL_INFO_CACHE_TYPE cacheType; 35 BOOTSTRAPPER_CACHE_TYPE cacheType;
43 BOOL fPrereqPackage; 36 BOOL fPrereqPackage;
44 LPWSTR sczPrereqLicenseFile; 37 LPWSTR sczPrereqLicenseFile;
45 LPWSTR sczPrereqLicenseUrl; 38 LPWSTR sczPrereqLicenseUrl;
diff --git a/src/balutil/inc/balutil.h b/src/balutil/inc/balutil.h
index affa4925..fad8a471 100644
--- a/src/balutil/inc/balutil.h
+++ b/src/balutil/inc/balutil.h
@@ -51,7 +51,7 @@ DAPI_(void) BalInitialize(
51********************************************************************/ 51********************************************************************/
52DAPI_(HRESULT) BalInitializeFromCreateArgs( 52DAPI_(HRESULT) BalInitializeFromCreateArgs(
53 __in const BOOTSTRAPPER_CREATE_ARGS* pArgs, 53 __in const BOOTSTRAPPER_CREATE_ARGS* pArgs,
54 __out IBootstrapperEngine** ppEngine 54 __out_opt IBootstrapperEngine** ppEngine
55 ); 55 );
56 56
57/******************************************************************* 57/*******************************************************************
diff --git a/src/balutil/packages.config b/src/balutil/packages.config
index de70fed1..08ea3364 100644
--- a/src/balutil/packages.config
+++ b/src/balutil/packages.config
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<packages> 2<packages>
3 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" /> 3 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" />
4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.132" targetFramework="native" /> 4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.141" targetFramework="native" />
5 <package id="WixToolset.DUtil" version="4.0.70" targetFramework="native" /> 5 <package id="WixToolset.DUtil" version="4.0.72" targetFramework="native" />
6</packages> \ No newline at end of file 6</packages> \ No newline at end of file
diff --git a/src/bextutil/BextBundleExtensionEngine.cpp b/src/bextutil/BextBundleExtensionEngine.cpp
index 9906a7f5..6043e2db 100644
--- a/src/bextutil/BextBundleExtensionEngine.cpp
+++ b/src/bextutil/BextBundleExtensionEngine.cpp
@@ -56,7 +56,7 @@ public: // IBundleExtensionEngine
56 virtual STDMETHODIMP EscapeString( 56 virtual STDMETHODIMP EscapeString(
57 __in_z LPCWSTR wzIn, 57 __in_z LPCWSTR wzIn,
58 __out_ecount_opt(*pcchOut) LPWSTR wzOut, 58 __out_ecount_opt(*pcchOut) LPWSTR wzOut,
59 __inout DWORD* pcchOut 59 __inout SIZE_T* pcchOut
60 ) 60 )
61 { 61 {
62 HRESULT hr = S_OK; 62 HRESULT hr = S_OK;
@@ -107,7 +107,7 @@ public: // IBundleExtensionEngine
107 virtual STDMETHODIMP FormatString( 107 virtual STDMETHODIMP FormatString(
108 __in_z LPCWSTR wzIn, 108 __in_z LPCWSTR wzIn,
109 __out_ecount_opt(*pcchOut) LPWSTR wzOut, 109 __out_ecount_opt(*pcchOut) LPWSTR wzOut,
110 __inout DWORD* pcchOut 110 __inout SIZE_T* pcchOut
111 ) 111 )
112 { 112 {
113 HRESULT hr = S_OK; 113 HRESULT hr = S_OK;
@@ -159,7 +159,7 @@ public: // IBundleExtensionEngine
159 virtual STDMETHODIMP GetVariableString( 159 virtual STDMETHODIMP GetVariableString(
160 __in_z LPCWSTR wzVariable, 160 __in_z LPCWSTR wzVariable,
161 __out_ecount_opt(*pcchValue) LPWSTR wzValue, 161 __out_ecount_opt(*pcchValue) LPWSTR wzValue,
162 __inout DWORD* pcchValue 162 __inout SIZE_T* pcchValue
163 ) 163 )
164 { 164 {
165 HRESULT hr = S_OK; 165 HRESULT hr = S_OK;
@@ -186,7 +186,7 @@ public: // IBundleExtensionEngine
186 virtual STDMETHODIMP GetVariableVersion( 186 virtual STDMETHODIMP GetVariableVersion(
187 __in_z LPCWSTR wzVariable, 187 __in_z LPCWSTR wzVariable,
188 __out_ecount_opt(*pcchValue) LPWSTR wzValue, 188 __out_ecount_opt(*pcchValue) LPWSTR wzValue,
189 __inout DWORD* pcchValue 189 __inout SIZE_T* pcchValue
190 ) 190 )
191 { 191 {
192 HRESULT hr = S_OK; 192 HRESULT hr = S_OK;
diff --git a/src/bextutil/bextutil.vcxproj b/src/bextutil/bextutil.vcxproj
index c8671f3b..b3ce96ba 100644
--- a/src/bextutil/bextutil.vcxproj
+++ b/src/bextutil/bextutil.vcxproj
@@ -2,8 +2,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. --> 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 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props')" /> 5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props')" />
6 <Import Project="..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" /> 6 <Import Project="..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" />
7 7
8 <ItemGroup Label="ProjectConfigurations"> 8 <ItemGroup Label="ProjectConfigurations">
9 <ProjectConfiguration Include="Debug|ARM64"> 9 <ProjectConfiguration Include="Debug|ARM64">
@@ -87,8 +87,8 @@
87 <PropertyGroup> 87 <PropertyGroup>
88 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 88 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
89 </PropertyGroup> 89 </PropertyGroup>
90 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props'))" /> 90 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props'))" />
91 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" /> 91 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" />
92 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props'))" /> 92 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props'))" />
93 </Target> 93 </Target>
94</Project> \ No newline at end of file 94</Project> \ No newline at end of file
diff --git a/src/bextutil/inc/IBundleExtensionEngine.h b/src/bextutil/inc/IBundleExtensionEngine.h
index a96e3812..63dadb06 100644
--- a/src/bextutil/inc/IBundleExtensionEngine.h
+++ b/src/bextutil/inc/IBundleExtensionEngine.h
@@ -7,18 +7,18 @@ DECLARE_INTERFACE_IID_(IBundleExtensionEngine, IUnknown, "9D027A39-F6B6-42CC-973
7 STDMETHOD(EscapeString)( 7 STDMETHOD(EscapeString)(
8 __in_z LPCWSTR wzIn, 8 __in_z LPCWSTR wzIn,
9 __out_ecount_opt(*pcchOut) LPWSTR wzOut, 9 __out_ecount_opt(*pcchOut) LPWSTR wzOut,
10 __inout DWORD * pcchOut 10 __inout SIZE_T* pcchOut
11 ) = 0; 11 ) = 0;
12 12
13 STDMETHOD(EvaluateCondition)( 13 STDMETHOD(EvaluateCondition)(
14 __in_z LPCWSTR wzCondition, 14 __in_z LPCWSTR wzCondition,
15 __out BOOL * pf 15 __out BOOL* pf
16 ) = 0; 16 ) = 0;
17 17
18 STDMETHOD(FormatString)( 18 STDMETHOD(FormatString)(
19 __in_z LPCWSTR wzIn, 19 __in_z LPCWSTR wzIn,
20 __out_ecount_opt(*pcchOut) LPWSTR wzOut, 20 __out_ecount_opt(*pcchOut) LPWSTR wzOut,
21 __inout DWORD * pcchOut 21 __inout SIZE_T* pcchOut
22 ) = 0; 22 ) = 0;
23 23
24 STDMETHOD(GetVariableNumeric)( 24 STDMETHOD(GetVariableNumeric)(
@@ -29,13 +29,13 @@ DECLARE_INTERFACE_IID_(IBundleExtensionEngine, IUnknown, "9D027A39-F6B6-42CC-973
29 STDMETHOD(GetVariableString)( 29 STDMETHOD(GetVariableString)(
30 __in_z LPCWSTR wzVariable, 30 __in_z LPCWSTR wzVariable,
31 __out_ecount_opt(*pcchValue) LPWSTR wzValue, 31 __out_ecount_opt(*pcchValue) LPWSTR wzValue,
32 __inout DWORD* pcchValue 32 __inout SIZE_T* pcchValue
33 ) = 0; 33 ) = 0;
34 34
35 STDMETHOD(GetVariableVersion)( 35 STDMETHOD(GetVariableVersion)(
36 __in_z LPCWSTR wzVariable, 36 __in_z LPCWSTR wzVariable,
37 __out_ecount_opt(*pcchValue) LPWSTR wzValue, 37 __out_ecount_opt(*pcchValue) LPWSTR wzValue,
38 __inout DWORD* pcchValue 38 __inout SIZE_T* pcchValue
39 ) = 0; 39 ) = 0;
40 40
41 STDMETHOD(Log)( 41 STDMETHOD(Log)(
diff --git a/src/bextutil/packages.config b/src/bextutil/packages.config
index de70fed1..08ea3364 100644
--- a/src/bextutil/packages.config
+++ b/src/bextutil/packages.config
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<packages> 2<packages>
3 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" /> 3 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" />
4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.132" targetFramework="native" /> 4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.141" targetFramework="native" />
5 <package id="WixToolset.DUtil" version="4.0.70" targetFramework="native" /> 5 <package id="WixToolset.DUtil" version="4.0.72" targetFramework="native" />
6</packages> \ No newline at end of file 6</packages> \ No newline at end of file
diff --git a/src/mbanative/mbanative.vcxproj b/src/mbanative/mbanative.vcxproj
index 729d5df2..f91fe3be 100644
--- a/src/mbanative/mbanative.vcxproj
+++ b/src/mbanative/mbanative.vcxproj
@@ -2,11 +2,11 @@
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. --> 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 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props')" /> 5 <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props')" />
6 <Import Project="..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props" Condition="Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props')" /> 6 <Import Project="..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props" Condition="Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props')" />
7 <Import Project="..\..\packages\Microsoft.SourceLink.Common.1.0.0\build\Microsoft.SourceLink.Common.props" Condition="Exists('..\..\packages\Microsoft.SourceLink.Common.1.0.0\build\Microsoft.SourceLink.Common.props')" /> 7 <Import Project="..\..\packages\Microsoft.SourceLink.Common.1.0.0\build\Microsoft.SourceLink.Common.props" Condition="Exists('..\..\packages\Microsoft.SourceLink.Common.1.0.0\build\Microsoft.SourceLink.Common.props')" />
8 <Import Project="..\..\packages\Microsoft.Build.Tasks.Git.1.0.0\build\Microsoft.Build.Tasks.Git.props" Condition="Exists('..\..\packages\Microsoft.Build.Tasks.Git.1.0.0\build\Microsoft.Build.Tasks.Git.props')" /> 8 <Import Project="..\..\packages\Microsoft.Build.Tasks.Git.1.0.0\build\Microsoft.Build.Tasks.Git.props" Condition="Exists('..\..\packages\Microsoft.Build.Tasks.Git.1.0.0\build\Microsoft.Build.Tasks.Git.props')" />
9 <Import Project="..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" /> 9 <Import Project="..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" />
10 10
11 <ItemGroup Label="ProjectConfigurations"> 11 <ItemGroup Label="ProjectConfigurations">
12 <ProjectConfiguration Include="Debug|ARM64"> 12 <ProjectConfiguration Include="Debug|ARM64">
@@ -96,7 +96,7 @@
96 <Error Condition="!Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props'))" /> 96 <Error Condition="!Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props'))" />
97 <Error Condition="!Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.targets'))" /> 97 <Error Condition="!Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.targets'))" />
98 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" /> 98 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" />
99 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props'))" /> 99 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props'))" />
100 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props'))" /> 100 <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props'))" />
101 </Target> 101 </Target>
102</Project> \ No newline at end of file 102</Project> \ No newline at end of file
diff --git a/src/mbanative/packages.config b/src/mbanative/packages.config
index b5ba712e..745fcae9 100644
--- a/src/mbanative/packages.config
+++ b/src/mbanative/packages.config
@@ -4,6 +4,6 @@
4 <package id="Microsoft.SourceLink.Common" version="1.0.0" targetFramework="native" developmentDependency="true" /> 4 <package id="Microsoft.SourceLink.Common" version="1.0.0" targetFramework="native" developmentDependency="true" />
5 <package id="Microsoft.SourceLink.GitHub" version="1.0.0" targetFramework="native" developmentDependency="true" /> 5 <package id="Microsoft.SourceLink.GitHub" version="1.0.0" targetFramework="native" developmentDependency="true" />
6 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" /> 6 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" />
7 <package id="WixToolset.BootstrapperCore.Native" version="4.0.132" targetFramework="native" /> 7 <package id="WixToolset.BootstrapperCore.Native" version="4.0.141" targetFramework="native" />
8 <package id="WixToolset.DUtil" version="4.0.70" targetFramework="native" /> 8 <package id="WixToolset.DUtil" version="4.0.72" targetFramework="native" />
9</packages> \ No newline at end of file 9</packages> \ No newline at end of file
diff --git a/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj b/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
index 95d7ed5f..b7bbd77d 100644
--- a/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
+++ b/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
@@ -3,9 +3,9 @@
3 3
4 4
5<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 5<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6 <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props')" /> 6 <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props')" />
7 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" /> 7 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.props')" />
8 <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" /> 8 <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" />
9 <ItemGroup Label="ProjectConfigurations"> 9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32"> 10 <ProjectConfiguration Include="Debug|Win32">
11 <Configuration>Debug</Configuration> 11 <Configuration>Debug</Configuration>
@@ -50,10 +50,10 @@
50 <Reference Include="System" /> 50 <Reference Include="System" />
51 <Reference Include="System.Core" /> 51 <Reference Include="System.Core" />
52 <Reference Include="WixBuildTools.TestSupport"> 52 <Reference Include="WixBuildTools.TestSupport">
53 <HintPath>..\..\..\packages\WixBuildTools.TestSupport.4.0.47\lib\net472\WixBuildTools.TestSupport.dll</HintPath> 53 <HintPath>..\..\..\packages\WixBuildTools.TestSupport.4.0.50\lib\net472\WixBuildTools.TestSupport.dll</HintPath>
54 </Reference> 54 </Reference>
55 <Reference Include="WixBuildTools.TestSupport.Native"> 55 <Reference Include="WixBuildTools.TestSupport.Native">
56 <HintPath>..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\lib\net472\WixBuildTools.TestSupport.Native.dll</HintPath> 56 <HintPath>..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\lib\net472\WixBuildTools.TestSupport.Native.dll</HintPath>
57 </Reference> 57 </Reference>
58 </ItemGroup> 58 </ItemGroup>
59 <ItemGroup> 59 <ItemGroup>
@@ -62,14 +62,14 @@
62 </ProjectReference> 62 </ProjectReference>
63 </ItemGroup> 63 </ItemGroup>
64 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 64 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
65 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets')" /> 65 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.targets" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.targets')" />
66 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> 66 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
67 <PropertyGroup> 67 <PropertyGroup>
68 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 68 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
69 </PropertyGroup> 69 </PropertyGroup>
70 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props'))" /> 70 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.props'))" />
71 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets'))" /> 71 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.targets'))" />
72 <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props'))" /> 72 <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props'))" />
73 <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props'))" /> 73 <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props'))" />
74 </Target> 74 </Target>
75</Project> \ No newline at end of file 75</Project> \ No newline at end of file
diff --git a/src/test/BalUtilUnitTest/packages.config b/src/test/BalUtilUnitTest/packages.config
index 49b76211..6d381fbe 100644
--- a/src/test/BalUtilUnitTest/packages.config
+++ b/src/test/BalUtilUnitTest/packages.config
@@ -1,10 +1,10 @@
1<?xml version="1.0" encoding="utf-8"?> 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. --> 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<packages> 3<packages>
4 <package id="WixBuildTools.TestSupport" version="4.0.47" /> 4 <package id="WixBuildTools.TestSupport" version="4.0.50" />
5 <package id="WixBuildTools.TestSupport.Native" version="4.0.47" /> 5 <package id="WixBuildTools.TestSupport.Native" version="4.0.50" />
6 <package id="WixToolset.BootstrapperCore.Native" version="4.0.132" targetFramework="native" /> 6 <package id="WixToolset.BootstrapperCore.Native" version="4.0.141" targetFramework="native" />
7 <package id="WixToolset.DUtil" version="4.0.70" targetFramework="native" /> 7 <package id="WixToolset.DUtil" version="4.0.72" targetFramework="native" />
8 <package id="xunit.abstractions" version="2.0.3" /> 8 <package id="xunit.abstractions" version="2.0.3" />
9 <package id="xunit.assert" version="2.4.1" /> 9 <package id="xunit.assert" version="2.4.1" />
10 <package id="xunit.core" version="2.4.1" /> 10 <package id="xunit.core" version="2.4.1" />
diff --git a/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj b/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
index 886e3c2c..f45b9b83 100644
--- a/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
+++ b/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
@@ -3,9 +3,9 @@
3 3
4 4
5<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 5<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6 <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props')" /> 6 <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props')" />
7 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" /> 7 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.props')" />
8 <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" /> 8 <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" />
9 <ItemGroup Label="ProjectConfigurations"> 9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32"> 10 <ProjectConfiguration Include="Debug|Win32">
11 <Configuration>Debug</Configuration> 11 <Configuration>Debug</Configuration>
@@ -49,10 +49,10 @@
49 <Reference Include="System" /> 49 <Reference Include="System" />
50 <Reference Include="System.Core" /> 50 <Reference Include="System.Core" />
51 <Reference Include="WixBuildTools.TestSupport"> 51 <Reference Include="WixBuildTools.TestSupport">
52 <HintPath>..\..\..\packages\WixBuildTools.TestSupport.4.0.47\lib\net472\WixBuildTools.TestSupport.dll</HintPath> 52 <HintPath>..\..\..\packages\WixBuildTools.TestSupport.4.0.50\lib\net472\WixBuildTools.TestSupport.dll</HintPath>
53 </Reference> 53 </Reference>
54 <Reference Include="WixBuildTools.TestSupport.Native"> 54 <Reference Include="WixBuildTools.TestSupport.Native">
55 <HintPath>..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\lib\net472\WixBuildTools.TestSupport.Native.dll</HintPath> 55 <HintPath>..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\lib\net472\WixBuildTools.TestSupport.Native.dll</HintPath>
56 </Reference> 56 </Reference>
57 </ItemGroup> 57 </ItemGroup>
58 <ItemGroup> 58 <ItemGroup>
@@ -61,14 +61,14 @@
61 </ProjectReference> 61 </ProjectReference>
62 </ItemGroup> 62 </ItemGroup>
63 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 63 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
64 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets')" /> 64 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.targets" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.targets')" />
65 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> 65 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
66 <PropertyGroup> 66 <PropertyGroup>
67 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 67 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
68 </PropertyGroup> 68 </PropertyGroup>
69 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props'))" /> 69 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.props'))" />
70 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets'))" /> 70 <Error Condition="!Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\build\WixBuildTools.TestSupport.Native.targets'))" />
71 <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.70\build\WixToolset.DUtil.props'))" /> 71 <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props'))" />
72 <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.132\build\WixToolset.BootstrapperCore.Native.props'))" /> 72 <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.141\build\WixToolset.BootstrapperCore.Native.props'))" />
73 </Target> 73 </Target>
74</Project> \ No newline at end of file 74</Project> \ No newline at end of file
diff --git a/src/test/BextUtilUnitTest/packages.config b/src/test/BextUtilUnitTest/packages.config
index 49b76211..6d381fbe 100644
--- a/src/test/BextUtilUnitTest/packages.config
+++ b/src/test/BextUtilUnitTest/packages.config
@@ -1,10 +1,10 @@
1<?xml version="1.0" encoding="utf-8"?> 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. --> 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<packages> 3<packages>
4 <package id="WixBuildTools.TestSupport" version="4.0.47" /> 4 <package id="WixBuildTools.TestSupport" version="4.0.50" />
5 <package id="WixBuildTools.TestSupport.Native" version="4.0.47" /> 5 <package id="WixBuildTools.TestSupport.Native" version="4.0.50" />
6 <package id="WixToolset.BootstrapperCore.Native" version="4.0.132" targetFramework="native" /> 6 <package id="WixToolset.BootstrapperCore.Native" version="4.0.141" targetFramework="native" />
7 <package id="WixToolset.DUtil" version="4.0.70" targetFramework="native" /> 7 <package id="WixToolset.DUtil" version="4.0.72" targetFramework="native" />
8 <package id="xunit.abstractions" version="2.0.3" /> 8 <package id="xunit.abstractions" version="2.0.3" />
9 <package id="xunit.assert" version="2.4.1" /> 9 <package id="xunit.assert" version="2.4.1" />
10 <package id="xunit.core" version="2.4.1" /> 10 <package id="xunit.core" version="2.4.1" />