@joebigelow / wix-1 / commits / 022beff2

Integrate patch related changes in Burn headers.

Sean Hall committed Feb 22, 2021 at 20:25 UTC 022beff26b46c7808eefacfebccfc1fcb5aa5256
21 files changed +271 -158
appveyor.cmd
+1 -1
@@ -19,7 +19,7 @@ dotnet test -c %_C% --no-build src\test\WixToolsetTest.Mba.Core\WixToolsetTest.M
19
20 msbuild -t:Pack -p:Configuration=%_C% src\balutil\balutil.vcxproj || exit /b
21 msbuild -t:Pack -p:Configuration=%_C% src\bextutil\bextutil.vcxproj || exit /b
22 -msbuild -t:Pack -p:Configuration=%_C% src\WixToolset.Mba.Core\WixToolset.Mba.Core.csproj || exit /b
22 +msbuild -t:Pack -p:Configuration=%_C% -p:NoBuild=true src\WixToolset.Mba.Core\WixToolset.Mba.Core.csproj || exit /b
23
24 @popd
25 @endlocal
\ No newline at end of file
src/WixToolset.Mba.Core/BootstrapperApplication.cs
+42 -18
@@ -68,7 +68,7 @@ namespace WixToolset.Mba.Core
68 public event EventHandler<DetectRelatedMsiPackageEventArgs> DetectRelatedMsiPackage;
69
70 /// <inheritdoc/>
71 - public event EventHandler<DetectTargetMsiPackageEventArgs> DetectTargetMsiPackage;
71 + public event EventHandler<DetectPatchTargetEventArgs> DetectPatchTarget;
72
73 /// <inheritdoc/>
74 public event EventHandler<DetectMsiFeatureEventArgs> DetectMsiFeature;
@@ -89,7 +89,7 @@ namespace WixToolset.Mba.Core
89 public event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin;
90
91 /// <inheritdoc/>
92 - public event EventHandler<PlanTargetMsiPackageEventArgs> PlanTargetMsiPackage;
92 + public event EventHandler<PlanPatchTargetEventArgs> PlanPatchTarget;
93
94 /// <inheritdoc/>
95 public event EventHandler<PlanMsiFeatureEventArgs> PlanMsiFeature;
@@ -100,6 +100,9 @@ namespace WixToolset.Mba.Core
100 /// <inheritdoc/>
101 public event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete;
102
103 + /// <inheritdoc/>
104 + public event EventHandler<PlannedPackageEventArgs> PlannedPackage;
105 +
106 /// <inheritdoc/>
107 public event EventHandler<PlanCompleteEventArgs> PlanComplete;
108
@@ -392,12 +395,12 @@ namespace WixToolset.Mba.Core
395 }
396
397 /// <summary>
395 - /// Called by the engine, raises the <see cref="DetectTargetMsiPackage"/> event.
398 + /// Called by the engine, raises the <see cref="DetectPatchTarget"/> event.
399 /// </summary>
400 /// <param name="args">Additional arguments for this event.</param>
398 - protected virtual void OnDetectTargetMsiPackage(DetectTargetMsiPackageEventArgs args)
401 + protected virtual void OnDetectPatchTarget(DetectPatchTargetEventArgs args)
402 {
400 - EventHandler<DetectTargetMsiPackageEventArgs> handler = this.DetectTargetMsiPackage;
403 + EventHandler<DetectPatchTargetEventArgs> handler = this.DetectPatchTarget;
404 if (null != handler)
405 {
406 handler(this, args);
@@ -483,12 +486,12 @@ namespace WixToolset.Mba.Core
486 }
487
488 /// <summary>
486 - /// Called by the engine, raises the <see cref="PlanTargetMsiPackage"/> event.
489 + /// Called by the engine, raises the <see cref="PlanPatchTarget"/> event.
490 /// </summary>
491 /// <param name="args">Additional arguments for this event.</param>
489 - protected virtual void OnPlanTargetMsiPackage(PlanTargetMsiPackageEventArgs args)
492 + protected virtual void OnPlanPatchTarget(PlanPatchTargetEventArgs args)
493 {
491 - EventHandler<PlanTargetMsiPackageEventArgs> handler = this.PlanTargetMsiPackage;
494 + EventHandler<PlanPatchTargetEventArgs> handler = this.PlanPatchTarget;
495 if (null != handler)
496 {
497 handler(this, args);
@@ -534,6 +537,19 @@ namespace WixToolset.Mba.Core
537 }
538 }
539
540 + /// <summary>
541 + /// Called by the engine, raises the <see cref="PlannedPackage"/> event.
542 + /// </summary>
543 + /// <param name="args">Additional arguments for this event.</param>
544 + protected virtual void OnPlannedPackage(PlannedPackageEventArgs args)
545 + {
546 + EventHandler<PlannedPackageEventArgs> handler = this.PlannedPackage;
547 + if (null != handler)
548 + {
549 + handler(this, args);
550 + }
551 + }
552 +
553 /// <summary>
554 /// Called by the engine, raises the <see cref="PlanComplete"/> event.
555 /// </summary>
@@ -1170,10 +1186,10 @@ namespace WixToolset.Mba.Core
1186 return args.HResult;
1187 }
1188
1173 - int IBootstrapperApplication.OnDetectTargetMsiPackage(string wzPackageId, string wzProductCode, PackageState patchState, ref bool fCancel)
1189 + int IBootstrapperApplication.OnDetectPatchTarget(string wzPackageId, string wzProductCode, PackageState patchState, ref bool fCancel)
1190 {
1175 - DetectTargetMsiPackageEventArgs args = new DetectTargetMsiPackageEventArgs(wzPackageId, wzProductCode, patchState, fCancel);
1176 - this.OnDetectTargetMsiPackage(args);
1191 + DetectPatchTargetEventArgs args = new DetectPatchTargetEventArgs(wzPackageId, wzProductCode, patchState, fCancel);
1192 + this.OnDetectPatchTarget(args);
1193
1194 fCancel = args.Cancel;
1195 return args.HResult;
@@ -1223,9 +1239,9 @@ namespace WixToolset.Mba.Core
1239 return args.HResult;
1240 }
1241
1226 - int IBootstrapperApplication.OnPlanPackageBegin(string wzPackageId, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel)
1242 + int IBootstrapperApplication.OnPlanPackageBegin(string wzPackageId, PackageState state, bool fInstallCondition, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel)
1243 {
1228 - PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, recommendedState, pRequestedState, fCancel);
1244 + PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, state, fInstallCondition, recommendedState, pRequestedState, fCancel);
1245 this.OnPlanPackageBegin(args);
1246
1247 pRequestedState = args.State;
@@ -1233,10 +1249,10 @@ namespace WixToolset.Mba.Core
1249 return args.HResult;
1250 }
1251
1236 - int IBootstrapperApplication.OnPlanTargetMsiPackage(string wzPackageId, string wzProductCode, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel)
1252 + int IBootstrapperApplication.OnPlanPatchTarget(string wzPackageId, string wzProductCode, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel)
1253 {
1238 - PlanTargetMsiPackageEventArgs args = new PlanTargetMsiPackageEventArgs(wzPackageId, wzProductCode, recommendedState, pRequestedState, fCancel);
1239 - this.OnPlanTargetMsiPackage(args);
1254 + PlanPatchTargetEventArgs args = new PlanPatchTargetEventArgs(wzPackageId, wzProductCode, recommendedState, pRequestedState, fCancel);
1255 + this.OnPlanPatchTarget(args);
1256
1257 pRequestedState = args.State;
1258 fCancel = args.Cancel;
@@ -1265,14 +1281,22 @@ namespace WixToolset.Mba.Core
1281 return args.HResult;
1282 }
1283
1268 - int IBootstrapperApplication.OnPlanPackageComplete(string wzPackageId, int hrStatus, PackageState state, RequestState requested, ActionState execute, ActionState rollback)
1284 + int IBootstrapperApplication.OnPlanPackageComplete(string wzPackageId, int hrStatus, RequestState requested)
1285 {
1270 - var args = new PlanPackageCompleteEventArgs(wzPackageId, hrStatus, state, requested, execute, rollback);
1286 + var args = new PlanPackageCompleteEventArgs(wzPackageId, hrStatus, requested);
1287 this.OnPlanPackageComplete(args);
1288
1289 return args.HResult;
1290 }
1291
1292 + int IBootstrapperApplication.OnPlannedPackage(string wzPackageId, ActionState execute, ActionState rollback)
1293 + {
1294 + var args = new PlannedPackageEventArgs(wzPackageId, execute, rollback);
1295 + this.OnPlannedPackage(args);
1296 +
1297 + return args.HResult;
1298 + }
1299 +
1300 int IBootstrapperApplication.OnPlanComplete(int hrStatus)
1301 {
1302 PlanCompleteEventArgs args = new PlanCompleteEventArgs(hrStatus);
src/WixToolset.Mba.Core/EventArgs.cs
+77 -49
@@ -547,18 +547,18 @@ namespace WixToolset.Mba.Core
547 }
548
549 /// <summary>
550 - /// Additional arguments used when a target MSI package has been detected.
550 + /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectPatchTarget"/>
551 /// </summary>
552 - public class DetectTargetMsiPackageEventArgs : CancellableHResultEventArgs
552 + public class DetectPatchTargetEventArgs : CancellableHResultEventArgs
553 {
554 /// <summary>
555 - /// Creates a new instance of the <see cref="DetectMsiFeatureEventArgs"/> class.
555 + ///
556 /// </summary>
557 - /// <param name="packageId">Detected package identifier.</param>
558 - /// <param name="productCode">Detected product code.</param>
559 - /// <param name="state">Package state detected.</param>
560 - /// <param name="cancelRecommendation">The recommendation from the engine.</param>
561 - public DetectTargetMsiPackageEventArgs(string packageId, string productCode, PackageState state, bool cancelRecommendation)
557 + /// <param name="packageId"></param>
558 + /// <param name="productCode"></param>
559 + /// <param name="state"></param>
560 + /// <param name="cancelRecommendation"></param>
561 + public DetectPatchTargetEventArgs(string packageId, string productCode, PackageState state, bool cancelRecommendation)
562 : base(cancelRecommendation)
563 {
564 this.PackageId = packageId;
@@ -567,17 +567,17 @@ namespace WixToolset.Mba.Core
567 }
568
569 /// <summary>
570 - /// Gets the identity of the target's package detected.
570 + /// Gets the identity of the patch's package.
571 /// </summary>
572 public string PackageId { get; private set; }
573
574 /// <summary>
575 - /// Gets the product code of the target MSI detected.
575 + /// Gets the product code of the target.
576 /// </summary>
577 public string ProductCode { get; private set; }
578
579 /// <summary>
580 - /// Gets the detected patch package state.
580 + /// Gets the detected patch state for the target.
581 /// </summary>
582 public PackageState State { get; private set; }
583 }
@@ -732,22 +732,26 @@ namespace WixToolset.Mba.Core
732 }
733
734 /// <summary>
735 - /// Additional arguments used when the engine has begun planning the installation of a specific package.
735 + /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanPackageBegin"/>
736 /// </summary>
737 [Serializable]
738 public class PlanPackageBeginEventArgs : CancellableHResultEventArgs
739 {
740 /// <summary>
741 - /// Creates a new instance of the <see cref="PlanPackageBeginEventArgs"/> class.
741 + ///
742 /// </summary>
743 - /// <param name="packageId">The identity of the package to plan for.</param>
744 - /// <param name="recommendedState">The recommended requested state for the package.</param>
745 - /// <param name="state">The requested state for the package.</param>
746 - /// <param name="cancelRecommendation">The recommendation from the engine.</param>
747 - public PlanPackageBeginEventArgs(string packageId, RequestState recommendedState, RequestState state, bool cancelRecommendation)
743 + /// <param name="packageId"></param>
744 + /// <param name="currentState"></param>
745 + /// <param name="installCondition"></param>
746 + /// <param name="recommendedState"></param>
747 + /// <param name="state"></param>
748 + /// <param name="cancelRecommendation"></param>
749 + public PlanPackageBeginEventArgs(string packageId, PackageState currentState, bool installCondition, RequestState recommendedState, RequestState state, bool cancelRecommendation)
750 : base(cancelRecommendation)
751 {
752 this.PackageId = packageId;
753 + this.CurrentState = currentState;
754 + this.InstallCondition = installCondition;
755 this.RecommendedState = recommendedState;
756 this.State = state;
757 }
@@ -757,6 +761,16 @@ namespace WixToolset.Mba.Core
761 /// </summary>
762 public string PackageId { get; private set; }
763
764 + /// <summary>
765 + /// Gets the current state of the package.
766 + /// </summary>
767 + public PackageState CurrentState { get; private set; }
768 +
769 + /// <summary>
770 + /// Gets the evaluated result of the package's install condition.
771 + /// </summary>
772 + public bool InstallCondition { get; private set; }
773 +
774 /// <summary>
775 /// Gets the recommended requested state for the package.
776 /// </summary>
@@ -769,20 +783,20 @@ namespace WixToolset.Mba.Core
783 }
784
785 /// <summary>
772 - /// Additional arguments used when engine is about to plan a MSP applied to a target MSI package.
786 + /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanPatchTarget"/>
787 /// </summary>
788 [Serializable]
775 - public class PlanTargetMsiPackageEventArgs : CancellableHResultEventArgs
789 + public class PlanPatchTargetEventArgs : CancellableHResultEventArgs
790 {
791 /// <summary>
778 - /// Creates a new instance of the <see cref="PlanMsiFeatureEventArgs"/> class.
792 + ///
793 /// </summary>
780 - /// <param name="packageId">Package identifier of the patch being planned.</param>
781 - /// <param name="productCode">Product code identifier being planned.</param>
782 - /// <param name="recommendedState">Recommended package state of the patch being planned.</param>
783 - /// <param name="state">Package state of the patch being planned.</param>
784 - /// <param name="cancelRecommendation">The recommendation from the engine.</param>
785 - public PlanTargetMsiPackageEventArgs(string packageId, string productCode, RequestState recommendedState, RequestState state, bool cancelRecommendation)
794 + /// <param name="packageId"></param>
795 + /// <param name="productCode"></param>
796 + /// <param name="recommendedState"></param>
797 + /// <param name="state"></param>
798 + /// <param name="cancelRecommendation"></param>
799 + public PlanPatchTargetEventArgs(string packageId, string productCode, RequestState recommendedState, RequestState state, bool cancelRecommendation)
800 : base(cancelRecommendation)
801 {
802 this.PackageId = packageId;
@@ -792,22 +806,22 @@ namespace WixToolset.Mba.Core
806 }
807
808 /// <summary>
795 - /// Gets the identity of the patch package to plan.
809 + /// Gets the identity of the patch's package.
810 /// </summary>
811 public string PackageId { get; private set; }
812
813 /// <summary>
800 - /// Gets the identity of the patch's target MSI to plan.
814 + /// Gets the product code of the target.
815 /// </summary>
816 public string ProductCode { get; private set; }
817
818 /// <summary>
805 - /// Gets the recommended state of the patch to use by planning.
819 + /// Gets the recommended state of the patch to use by planning for the target.
820 /// </summary>
821 public RequestState RecommendedState { get; private set; }
822
823 /// <summary>
810 - /// Gets or sets the state of the patch to use by planning.
824 + /// Gets or sets the state of the patch to use by planning for the target.
825 /// </summary>
826 public RequestState State { get; set; }
827 }
@@ -915,28 +929,22 @@ namespace WixToolset.Mba.Core
929 }
930
931 /// <summary>
918 - /// Additional arguments used when then engine has completed planning the installation of a specific package.
932 + /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlanPackageComplete"/>
933 /// </summary>
934 [Serializable]
935 public class PlanPackageCompleteEventArgs : StatusEventArgs
936 {
937 /// <summary>
924 - /// Creates a new instance of the <see cref="PlanPackageCompleteEventArgs"/> class.
938 + ///
939 /// </summary>
926 - /// <param name="packageId">The identity of the package planned for.</param>
927 - /// <param name="hrStatus">The return code of the operation.</param>
928 - /// <param name="state">The current state of the package.</param>
929 - /// <param name="requested">The requested state for the package</param>
930 - /// <param name="execute">The execution action to take.</param>
931 - /// <param name="rollback">The rollback action to take.</param>
932 - public PlanPackageCompleteEventArgs(string packageId, int hrStatus, PackageState state, RequestState requested, ActionState execute, ActionState rollback)
940 + /// <param name="packageId"></param>
941 + /// <param name="hrStatus"></param>
942 + /// <param name="requested"></param>
943 + public PlanPackageCompleteEventArgs(string packageId, int hrStatus, RequestState requested)
944 : base(hrStatus)
945 {
946 this.PackageId = packageId;
936 - this.State = state;
947 this.Requested = requested;
938 - this.Execute = execute;
939 - this.Rollback = rollback;
948 }
949
950 /// <summary>
@@ -945,22 +953,42 @@ namespace WixToolset.Mba.Core
953 public string PackageId { get; private set; }
954
955 /// <summary>
948 - /// Gets the current state of the package.
956 + /// Gets the requested state for the package.
957 /// </summary>
950 - public PackageState State { get; private set; }
958 + public RequestState Requested { get; private set; }
959 + }
960
961 + /// <summary>
962 + /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlannedPackage"/>
963 + /// </summary>
964 + [Serializable]
965 + public class PlannedPackageEventArgs : HResultEventArgs
966 + {
967 /// <summary>
953 - /// Gets the requested state for the package.
968 + ///
969 /// </summary>
955 - public RequestState Requested { get; private set; }
970 + /// <param name="packageId"></param>
971 + /// <param name="execute"></param>
972 + /// <param name="rollback"></param>
973 + public PlannedPackageEventArgs(string packageId, ActionState execute, ActionState rollback)
974 + {
975 + this.PackageId = packageId;
976 + this.Execute = execute;
977 + this.Rollback = rollback;
978 + }
979 +
980 + /// <summary>
981 + /// Gets the identity of the package planned for.
982 + /// </summary>
983 + public string PackageId { get; private set; }
984
985 /// <summary>
958 - /// Gets the execution action to take.
986 + /// Gets the planned execution action.
987 /// </summary>
988 public ActionState Execute { get; private set; }
989
990 /// <summary>
963 - /// Gets the rollback action to take.
991 + /// Gets the planned rollback action.
992 /// </summary>
993 public ActionState Rollback { get; private set; }
994 }
src/WixToolset.Mba.Core/IBootstrapperApplication.cs
+22 -9
@@ -194,7 +194,7 @@ namespace WixToolset.Mba.Core
194 );
195
196 /// <summary>
197 - /// See <see cref="IDefaultBootstrapperApplication.DetectTargetMsiPackage"/>.
197 + /// See <see cref="IDefaultBootstrapperApplication.DetectPatchTarget"/>.
198 /// </summary>
199 /// <param name="wzPackageId"></param>
200 /// <param name="wzProductCode"></param>
@@ -203,7 +203,7 @@ namespace WixToolset.Mba.Core
203 /// <returns></returns>
204 [PreserveSig]
205 [return: MarshalAs(UnmanagedType.I4)]
206 - int OnDetectTargetMsiPackage(
206 + int OnDetectPatchTarget(
207 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
208 [MarshalAs(UnmanagedType.LPWStr)] string wzProductCode,
209 [MarshalAs(UnmanagedType.U4)] PackageState patchState,
@@ -289,6 +289,8 @@ namespace WixToolset.Mba.Core
289 /// See <see cref="IDefaultBootstrapperApplication.PlanPackageBegin"/>.
290 /// </summary>
291 /// <param name="wzPackageId"></param>
292 + /// <param name="state"></param>
293 + /// <param name="fInstallCondition"></param>
294 /// <param name="recommendedState"></param>
295 /// <param name="pRequestedState"></param>
296 /// <param name="fCancel"></param>
@@ -297,13 +299,15 @@ namespace WixToolset.Mba.Core
299 [return: MarshalAs(UnmanagedType.I4)]
300 int OnPlanPackageBegin(
301 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
302 + [MarshalAs(UnmanagedType.U4)] PackageState state,
303 + [MarshalAs(UnmanagedType.Bool)] bool fInstallCondition,
304 [MarshalAs(UnmanagedType.U4)] RequestState recommendedState,
305 [MarshalAs(UnmanagedType.U4)] ref RequestState pRequestedState,
306 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
307 );
308
309 /// <summary>
306 - /// See <see cref="IDefaultBootstrapperApplication.PlanTargetMsiPackage"/>.
310 + /// See <see cref="IDefaultBootstrapperApplication.PlanPatchTarget"/>.
311 /// </summary>
312 /// <param name="wzPackageId"></param>
313 /// <param name="wzProductCode"></param>
@@ -313,7 +317,7 @@ namespace WixToolset.Mba.Core
317 /// <returns></returns>
318 [PreserveSig]
319 [return: MarshalAs(UnmanagedType.I4)]
316 - int OnPlanTargetMsiPackage(
320 + int OnPlanPatchTarget(
321 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
322 [MarshalAs(UnmanagedType.LPWStr)] string wzProductCode,
323 [MarshalAs(UnmanagedType.U4)] RequestState recommendedState,
@@ -368,18 +372,27 @@ namespace WixToolset.Mba.Core
372 /// </summary>
373 /// <param name="wzPackageId"></param>
374 /// <param name="hrStatus"></param>
371 - /// <param name="state"></param>
375 /// <param name="requested"></param>
373 - /// <param name="execute"></param>
374 - /// <param name="rollback"></param>
376 /// <returns></returns>
377 [PreserveSig]
378 [return: MarshalAs(UnmanagedType.I4)]
379 int OnPlanPackageComplete(
380 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
381 int hrStatus,
381 - [MarshalAs(UnmanagedType.U4)] PackageState state,
382 - [MarshalAs(UnmanagedType.U4)] RequestState requested,
382 + [MarshalAs(UnmanagedType.U4)] RequestState requested
383 + );
384 +
385 + /// <summary>
386 + /// See <see cref="IDefaultBootstrapperApplication.PlannedPackage"/>.
387 + /// </summary>
388 + /// <param name="wzPackageId"></param>
389 + /// <param name="execute"></param>
390 + /// <param name="rollback"></param>
391 + /// <returns></returns>
392 + [PreserveSig]
393 + [return: MarshalAs(UnmanagedType.I4)]
394 + int OnPlannedPackage(
395 + [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
396 [MarshalAs(UnmanagedType.U4)] ActionState execute,
397 [MarshalAs(UnmanagedType.U4)] ActionState rollback
398 );
src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs
+16 -11
@@ -114,6 +114,11 @@ namespace WixToolset.Mba.Core
114 /// </summary>
115 event EventHandler<DetectPackageCompleteEventArgs> DetectPackageComplete;
116
117 + /// <summary>
118 + /// Fired when the engine detects a target product for an MSP package.
119 + /// </summary>
120 + event EventHandler<DetectPatchTargetEventArgs> DetectPatchTarget;
121 +
122 /// <summary>
123 /// Fired when a related bundle has been detected for a bundle.
124 /// </summary>
@@ -124,11 +129,6 @@ namespace WixToolset.Mba.Core
129 /// </summary>
130 event EventHandler<DetectRelatedMsiPackageEventArgs> DetectRelatedMsiPackage;
131
127 - /// <summary>
128 - /// Fired when an MSP package detects a target MSI has been detected.
129 - /// </summary>
130 - event EventHandler<DetectTargetMsiPackageEventArgs> DetectTargetMsiPackage;
131 -
132 /// <summary>
133 /// Fired when the update detection has found a potential update candidate.
134 /// </summary>
@@ -229,6 +229,11 @@ namespace WixToolset.Mba.Core
229 /// </summary>
230 event EventHandler<PlanCompleteEventArgs> PlanComplete;
231
232 + /// <summary>
233 + /// Fired when the engine has completed planning a package.
234 + /// </summary>
235 + event EventHandler<PlannedPackageEventArgs> PlannedPackage;
236 +
237 /// <summary>
238 /// Fired when the engine is about to plan a feature in an MSI package.
239 /// </summary>
@@ -240,24 +245,24 @@ namespace WixToolset.Mba.Core
245 event EventHandler<PlanMsiPackageEventArgs> PlanMsiPackage;
246
247 /// <summary>
243 - /// Fired when the engine has begun planning the installation of a specific package.
248 + /// Fired when the engine has begun getting the BA's input for planning a package.
249 /// </summary>
250 event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin;
251
252 /// <summary>
248 - /// Fired when the engine has completed planning the installation of a specific package.
253 + /// Fired when the engine has completed getting the BA's input for planning a package.
254 /// </summary>
255 event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete;
256
257 /// <summary>
253 - /// Fired when the engine has begun planning for a related bundle.
258 + /// Fired when the engine is about to plan a target of an MSP package.
259 /// </summary>
255 - event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle;
260 + event EventHandler<PlanPatchTargetEventArgs> PlanPatchTarget;
261
262 /// <summary>
258 - /// Fired when the engine is about to plan the target MSI of a MSP package.
263 + /// Fired when the engine has begun planning for a related bundle.
264 /// </summary>
260 - event EventHandler<PlanTargetMsiPackageEventArgs> PlanTargetMsiPackage;
265 + event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle;
266
267 /// <summary>
268 /// Fired when the engine has changed progress for the bundle installation.
src/balutil/balutil.vcxproj
+4 -4
@@ -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. -->
3
4 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 - <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props')" />
6 - <Import Project="..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props')" />
5 + <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props')" />
6 + <Import Project="..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props')" />
7
8 <ItemGroup Label="ProjectConfigurations">
9 <ProjectConfiguration Include="Debug|ARM64">
@@ -98,8 +98,8 @@
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>
100 </PropertyGroup>
101 - <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props'))" />
102 - <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props'))" />
101 + <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props'))" />
102 + <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props'))" />
103 <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'))" />
104 </Target>
105 </Project>
src/balutil/inc/BAFunctions.h
+3 -2
@@ -23,12 +23,12 @@ enum BA_FUNCTIONS_MESSAGE
23 BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLE,
24 BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGEBEGIN,
25 BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDMSIPACKAGE,
26 - BA_FUNCTIONS_MESSAGE_ONDETECTTARGETMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTTARGETMSIPACKAGE,
26 + BA_FUNCTIONS_MESSAGE_ONDETECTPATCHTARGET = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPATCHTARGET,
27 BA_FUNCTIONS_MESSAGE_ONDETECTMSIFEATURE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTMSIFEATURE,
28 BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGECOMPLETE,
29 BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLE,
30 BA_FUNCTIONS_MESSAGE_ONPLANPACKAGEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN,
31 - BA_FUNCTIONS_MESSAGE_ONPLANTARGETMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANTARGETMSIPACKAGE,
31 + BA_FUNCTIONS_MESSAGE_ONPLANPATCHTARGET = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPATCHTARGET,
32 BA_FUNCTIONS_MESSAGE_ONPLANMSIFEATURE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIFEATURE,
33 BA_FUNCTIONS_MESSAGE_ONPLANPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGECOMPLETE,
34 BA_FUNCTIONS_MESSAGE_ONAPPLYBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYBEGIN,
@@ -72,6 +72,7 @@ enum BA_FUNCTIONS_MESSAGE
72 BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE,
73 BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN,
74 BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE,
75 + BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE,
76
77 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024,
78 BA_FUNCTIONS_MESSAGE_WNDPROC,
src/balutil/inc/BalBaseBAFunctions.h
+12 -4
@@ -177,7 +177,7 @@ public: // IBootstrapperApplication
177 return S_OK;
178 }
179
180 - virtual STDMETHODIMP OnDetectTargetMsiPackage(
180 + virtual STDMETHODIMP OnDetectPatchTarget(
181 __in_z LPCWSTR /*wzPackageId*/,
182 __in_z LPCWSTR /*wzProductCode*/,
183 __in BOOTSTRAPPER_PACKAGE_STATE /*patchState*/,
@@ -234,6 +234,8 @@ public: // IBootstrapperApplication
234
235 virtual STDMETHODIMP OnPlanPackageBegin(
236 __in_z LPCWSTR /*wzPackageId*/,
237 + __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
238 + __in BOOL /*fInstallCondition*/,
239 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
240 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/,
241 __inout BOOL* /*pfCancel*/
@@ -242,7 +244,7 @@ public: // IBootstrapperApplication
244 return S_OK;
245 }
246
245 - virtual STDMETHODIMP OnPlanTargetMsiPackage(
247 + virtual STDMETHODIMP OnPlanPatchTarget(
248 __in_z LPCWSTR /*wzPackageId*/,
249 __in_z LPCWSTR /*wzProductCode*/,
250 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
@@ -280,8 +282,14 @@ public: // IBootstrapperApplication
282 virtual STDMETHODIMP OnPlanPackageComplete(
283 __in_z LPCWSTR /*wzPackageId*/,
284 __in HRESULT /*hrStatus*/,
283 - __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
284 - __in BOOTSTRAPPER_REQUEST_STATE /*requested*/,
285 + __in BOOTSTRAPPER_REQUEST_STATE /*requested*/
286 + )
287 + {
288 + return S_OK;
289 + }
290 +
291 + virtual STDMETHODIMP OnPlannedPackage(
292 + __in_z LPCWSTR /*wzPackageId*/,
293 __in BOOTSTRAPPER_ACTION_STATE /*execute*/,
294 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/
295 )
src/balutil/inc/BalBaseBAFunctionsProc.h
+3 -2
@@ -58,12 +58,12 @@ static HRESULT WINAPI BalBaseBAFunctionsProc(
58 case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLE:
59 case BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGEBEGIN:
60 case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDMSIPACKAGE:
61 - case BA_FUNCTIONS_MESSAGE_ONDETECTTARGETMSIPACKAGE:
61 + case BA_FUNCTIONS_MESSAGE_ONDETECTPATCHTARGET:
62 case BA_FUNCTIONS_MESSAGE_ONDETECTMSIFEATURE:
63 case BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGECOMPLETE:
64 case BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLE:
65 case BA_FUNCTIONS_MESSAGE_ONPLANPACKAGEBEGIN:
66 - case BA_FUNCTIONS_MESSAGE_ONPLANTARGETMSIPACKAGE:
66 + case BA_FUNCTIONS_MESSAGE_ONPLANPATCHTARGET:
67 case BA_FUNCTIONS_MESSAGE_ONPLANMSIFEATURE:
68 case BA_FUNCTIONS_MESSAGE_ONPLANPACKAGECOMPLETE:
69 case BA_FUNCTIONS_MESSAGE_ONAPPLYBEGIN:
@@ -107,6 +107,7 @@ static HRESULT WINAPI BalBaseBAFunctionsProc(
107 case BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE:
108 case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN:
109 case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE:
110 + case BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE:
111 hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext);
112 break;
113 case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED:
src/balutil/inc/BalBaseBootstrapperApplication.h
+12 -4
@@ -181,7 +181,7 @@ public: // IBootstrapperApplication
181 return S_OK;
182 }
183
184 - virtual STDMETHODIMP OnDetectTargetMsiPackage(
184 + virtual STDMETHODIMP OnDetectPatchTarget(
185 __in_z LPCWSTR /*wzPackageId*/,
186 __in_z LPCWSTR /*wzProductCode*/,
187 __in BOOTSTRAPPER_PACKAGE_STATE /*patchState*/,
@@ -242,6 +242,8 @@ public: // IBootstrapperApplication
242
243 virtual STDMETHODIMP OnPlanPackageBegin(
244 __in_z LPCWSTR /*wzPackageId*/,
245 + __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
246 + __in BOOL /*fInstallCondition*/,
247 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
248 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/,
249 __inout BOOL* pfCancel
@@ -251,7 +253,7 @@ public: // IBootstrapperApplication
253 return S_OK;
254 }
255
254 - virtual STDMETHODIMP OnPlanTargetMsiPackage(
256 + virtual STDMETHODIMP OnPlanPatchTarget(
257 __in_z LPCWSTR /*wzPackageId*/,
258 __in_z LPCWSTR /*wzProductCode*/,
259 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
@@ -292,8 +294,14 @@ public: // IBootstrapperApplication
294 virtual STDMETHODIMP OnPlanPackageComplete(
295 __in_z LPCWSTR /*wzPackageId*/,
296 __in HRESULT /*hrStatus*/,
295 - __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
296 - __in BOOTSTRAPPER_REQUEST_STATE /*requested*/,
297 + __in BOOTSTRAPPER_REQUEST_STATE /*requested*/
298 + )
299 + {
300 + return S_OK;
301 + }
302 +
303 + virtual STDMETHODIMP OnPlannedPackage(
304 + __in_z LPCWSTR /*wzPackageId*/,
305 __in BOOTSTRAPPER_ACTION_STATE /*execute*/,
306 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/
307 )
src/balutil/inc/BalBaseBootstrapperApplicationProc.h
+26 -14
@@ -135,13 +135,13 @@ static HRESULT BalBaseBAProcOnDetectRelatedMsiPackage(
135 return pBA->OnDetectRelatedMsiPackage(pArgs->wzPackageId, pArgs->wzUpgradeCode, pArgs->wzProductCode, pArgs->fPerMachine, pArgs->wzVersion, pArgs->operation, &pResults->fCancel);
136 }
137
138 -static HRESULT BalBaseBAProcOnDetectTargetMsiPackage(
138 +static HRESULT BalBaseBAProcOnDetectPatchTarget(
139 __in IBootstrapperApplication* pBA,
140 - __in BA_ONDETECTTARGETMSIPACKAGE_ARGS* pArgs,
141 - __inout BA_ONDETECTTARGETMSIPACKAGE_RESULTS* pResults
140 + __in BA_ONDETECTPATCHTARGET_ARGS* pArgs,
141 + __inout BA_ONDETECTPATCHTARGET_RESULTS* pResults
142 )
143 {
144 - return pBA->OnDetectTargetMsiPackage(pArgs->wzPackageId, pArgs->wzProductCode, pArgs->patchState, &pResults->fCancel);
144 + return pBA->OnDetectPatchTarget(pArgs->wzPackageId, pArgs->wzProductCode, pArgs->patchState, &pResults->fCancel);
145 }
146
147 static HRESULT BalBaseBAProcOnDetectMsiFeature(
@@ -177,16 +177,16 @@ static HRESULT BalBaseBAProcOnPlanPackageBegin(
177 __inout BA_ONPLANPACKAGEBEGIN_RESULTS* pResults
178 )
179 {
180 - return pBA->OnPlanPackageBegin(pArgs->wzPackageId, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel);
180 + return pBA->OnPlanPackageBegin(pArgs->wzPackageId, pArgs->state, pArgs->fInstallCondition, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel);
181 }
182
183 -static HRESULT BalBaseBAProcOnPlanTargetMsiPackage(
183 +static HRESULT BalBaseBAProcOnPlanPatchTarget(
184 __in IBootstrapperApplication* pBA,
185 - __in BA_ONPLANTARGETMSIPACKAGE_ARGS* pArgs,
186 - __inout BA_ONPLANTARGETMSIPACKAGE_RESULTS* pResults
185 + __in BA_ONPLANPATCHTARGET_ARGS* pArgs,
186 + __inout BA_ONPLANPATCHTARGET_RESULTS* pResults
187 )
188 {
189 - return pBA->OnPlanTargetMsiPackage(pArgs->wzPackageId, pArgs->wzProductCode, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel);
189 + return pBA->OnPlanPatchTarget(pArgs->wzPackageId, pArgs->wzProductCode, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel);
190 }
191
192 static HRESULT BalBaseBAProcOnPlanMsiFeature(
@@ -204,7 +204,16 @@ static HRESULT BalBaseBAProcOnPlanPackageComplete(
204 __inout BA_ONPLANPACKAGECOMPLETE_RESULTS* /*pResults*/
205 )
206 {
207 - return pBA->OnPlanPackageComplete(pArgs->wzPackageId, pArgs->hrStatus, pArgs->state, pArgs->requested, pArgs->execute, pArgs->rollback);
207 + return pBA->OnPlanPackageComplete(pArgs->wzPackageId, pArgs->hrStatus, pArgs->requested);
208 +}
209 +
210 +static HRESULT BalBaseBAProcOnPlannedPackage(
211 + __in IBootstrapperApplication* pBA,
212 + __in BA_ONPLANNEDPACKAGE_ARGS* pArgs,
213 + __inout BA_ONPLANNEDPACKAGE_RESULTS* /*pResults*/
214 + )
215 +{
216 + return pBA->OnPlannedPackage(pArgs->wzPackageId, pArgs->execute, pArgs->rollback);
217 }
218
219 static HRESULT BalBaseBAProcOnApplyBegin(
@@ -638,8 +647,8 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
647 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDMSIPACKAGE:
648 hr = BalBaseBAProcOnDetectRelatedMsiPackage(pBA, reinterpret_cast<BA_ONDETECTRELATEDMSIPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTRELATEDMSIPACKAGE_RESULTS*>(pvResults));
649 break;
641 - case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTTARGETMSIPACKAGE:
642 - hr = BalBaseBAProcOnDetectTargetMsiPackage(pBA, reinterpret_cast<BA_ONDETECTTARGETMSIPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTTARGETMSIPACKAGE_RESULTS*>(pvResults));
650 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPATCHTARGET:
651 + hr = BalBaseBAProcOnDetectPatchTarget(pBA, reinterpret_cast<BA_ONDETECTPATCHTARGET_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTPATCHTARGET_RESULTS*>(pvResults));
652 break;
653 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTMSIFEATURE:
654 hr = BalBaseBAProcOnDetectMsiFeature(pBA, reinterpret_cast<BA_ONDETECTMSIFEATURE_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTMSIFEATURE_RESULTS*>(pvResults));
@@ -653,8 +662,8 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
662 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN:
663 hr = BalBaseBAProcOnPlanPackageBegin(pBA, reinterpret_cast<BA_ONPLANPACKAGEBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANPACKAGEBEGIN_RESULTS*>(pvResults));
664 break;
656 - case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANTARGETMSIPACKAGE:
657 - hr = BalBaseBAProcOnPlanTargetMsiPackage(pBA, reinterpret_cast<BA_ONPLANTARGETMSIPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANTARGETMSIPACKAGE_RESULTS*>(pvResults));
665 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPATCHTARGET:
666 + hr = BalBaseBAProcOnPlanPatchTarget(pBA, reinterpret_cast<BA_ONPLANPATCHTARGET_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANPATCHTARGET_RESULTS*>(pvResults));
667 break;
668 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIFEATURE:
669 hr = BalBaseBAProcOnPlanMsiFeature(pBA, reinterpret_cast<BA_ONPLANMSIFEATURE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANMSIFEATURE_RESULTS*>(pvResults));
@@ -784,6 +793,9 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
793 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE:
794 hr = BalBaseBAProcOnSystemRestorePointComplete(pBA, reinterpret_cast<BA_ONSYSTEMRESTOREPOINTCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONSYSTEMRESTOREPOINTCOMPLETE_RESULTS*>(pvResults));
795 break;
796 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE:
797 + hr = BalBaseBAProcOnPlannedPackage(pBA, reinterpret_cast<BA_ONPLANNEDPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANNEDPACKAGE_RESULTS*>(pvResults));
798 + break;
799 }
800 }
801
src/balutil/inc/IBootstrapperApplication.h
+18 -11
@@ -91,9 +91,9 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
91 __inout BOOL* pfCancel
92 ) = 0;
93
94 - // OnDetectTargetMsiPackage - called when the engine detects a target MSI package for
95 - // an MSP package.
96 - STDMETHOD(OnDetectTargetMsiPackage)(
94 + // OnDetectPatchTarget - called when the engine detects a target product
95 + // for an MSP package.
96 + STDMETHOD(OnDetectPatchTarget)(
97 __in_z LPCWSTR wzPackageId,
98 __in_z LPCWSTR wzProductCode,
99 __in BOOTSTRAPPER_PACKAGE_STATE patchState,
@@ -137,17 +137,20 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
137 __inout BOOL* pfCancel
138 ) = 0;
139
140 - // OnPlanPackageBegin - called when the engine begins planning a package.
140 + // OnPlanPackageBegin - called when the engine has begun getting the BA's input
141 + // for planning a package.
142 STDMETHOD(OnPlanPackageBegin)(
143 __in_z LPCWSTR wzPackageId,
144 + __in BOOTSTRAPPER_PACKAGE_STATE state,
145 + __in BOOL fInstallCondition,
146 __in BOOTSTRAPPER_REQUEST_STATE recommendedState,
147 __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState,
148 __inout BOOL* pfCancel
149 ) = 0;
150
148 - // OnPlanTargetMsiPackage - called when the engine plans an MSP package
149 - // to apply to an MSI package.
150 - STDMETHOD(OnPlanTargetMsiPackage)(
151 + // OnPlanPatchTarget - called when the engine is about to plan a target
152 + // of an MSP package.
153 + STDMETHOD(OnPlanPatchTarget)(
154 __in_z LPCWSTR wzPackageId,
155 __in_z LPCWSTR wzProductCode,
156 __in BOOTSTRAPPER_REQUEST_STATE recommendedState,
@@ -177,13 +180,17 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
180 __inout BOOL* pfDisableExternalUiHandler
181 ) = 0;
182
180 - // OnPlanPackageComplete - called after the engine plans a package.
181 - //
183 + // OnPlanPackageComplete - called after the engine has completed getting the BA's input
184 + // for planning a package.
185 STDMETHOD(OnPlanPackageComplete)(
186 __in_z LPCWSTR wzPackageId,
187 __in HRESULT hrStatus,
185 - __in BOOTSTRAPPER_PACKAGE_STATE state,
186 - __in BOOTSTRAPPER_REQUEST_STATE requested,
188 + __in BOOTSTRAPPER_REQUEST_STATE requested
189 + ) = 0;
190 +
191 + // OnPlannedPackage - called after the engine has completed planning a package.
192 + STDMETHOD(OnPlannedPackage)(
193 + __in_z LPCWSTR wzPackageId,
194 __in BOOTSTRAPPER_ACTION_STATE execute,
195 __in BOOTSTRAPPER_ACTION_STATE rollback
196 ) = 0;
src/balutil/packages.config
+2 -2
@@ -1,6 +1,6 @@
1 <?xml version="1.0" encoding="utf-8"?>
2 <packages>
3 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" />
4 - <package id="WixToolset.BootstrapperCore.Native" version="4.0.75" targetFramework="native" />
5 - <package id="WixToolset.DUtil" version="4.0.59" targetFramework="native" />
4 + <package id="WixToolset.BootstrapperCore.Native" version="4.0.89" targetFramework="native" />
5 + <package id="WixToolset.DUtil" version="4.0.62" targetFramework="native" />
6 </packages>
\ No newline at end of file
src/bextutil/bextutil.vcxproj
+4 -4
@@ -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. -->
3
4 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 - <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props')" />
6 - <Import Project="..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props')" />
5 + <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props')" />
6 + <Import Project="..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props')" />
7
8 <ItemGroup Label="ProjectConfigurations">
9 <ProjectConfiguration Include="Debug|ARM64">
@@ -87,8 +87,8 @@
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>
89 </PropertyGroup>
90 - <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props'))" />
91 - <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props'))" />
90 + <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props'))" />
91 + <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props'))" />
92 <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'))" />
93 </Target>
94 </Project>
src/bextutil/packages.config
+2 -2
@@ -1,6 +1,6 @@
1 <?xml version="1.0" encoding="utf-8"?>
2 <packages>
3 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" />
4 - <package id="WixToolset.BootstrapperCore.Native" version="4.0.75" targetFramework="native" />
5 - <package id="WixToolset.DUtil" version="4.0.59" targetFramework="native" />
4 + <package id="WixToolset.BootstrapperCore.Native" version="4.0.89" targetFramework="native" />
5 + <package id="WixToolset.DUtil" version="4.0.62" targetFramework="native" />
6 </packages>
\ No newline at end of file
src/mbanative/mbanative.vcxproj
+7 -5
@@ -5,8 +5,8 @@
5 <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.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.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\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props')" />
9 - <Import Project="..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props')" />
8 + <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props')" />
9 + <Import Project="..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props')" />
10
11 <ItemGroup Label="ProjectConfigurations">
12 <ProjectConfiguration Include="Debug|ARM64">
@@ -79,7 +79,9 @@
79 </ItemGroup>
80
81 <ItemGroup>
82 - <ProjectReference Include="..\balutil\balutil.vcxproj" />
82 + <ProjectReference Include="..\balutil\balutil.vcxproj">
83 + <Project>{EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}</Project>
84 + </ProjectReference>
85 </ItemGroup>
86
87 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
@@ -94,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'))" />
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'))" />
97 - <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props'))" />
98 - <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props'))" />
99 + <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props'))" />
100 + <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props'))" />
101 </Target>
102 </Project>
\ No newline at end of file
src/mbanative/packages.config
+2 -2
@@ -4,6 +4,6 @@
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" />
6 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" />
7 - <package id="WixToolset.BootstrapperCore.Native" version="4.0.75" targetFramework="native" />
8 - <package id="WixToolset.DUtil" version="4.0.59" targetFramework="native" />
7 + <package id="WixToolset.BootstrapperCore.Native" version="4.0.89" targetFramework="native" />
8 + <package id="WixToolset.DUtil" version="4.0.62" targetFramework="native" />
9 </packages>
\ No newline at end of file
src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
+7 -5
@@ -4,8 +4,8 @@
4
5 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6 <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\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props')" />
8 - <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props')" />
7 + <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props')" />
8 + <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props')" />
9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32">
11 <Configuration>Debug</Configuration>
@@ -57,7 +57,9 @@
57 </Reference>
58 </ItemGroup>
59 <ItemGroup>
60 - <ProjectReference Include="..\..\balutil\balutil.vcxproj" />
60 + <ProjectReference Include="..\..\balutil\balutil.vcxproj">
61 + <Project>{EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}</Project>
62 + </ProjectReference>
63 </ItemGroup>
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')" />
@@ -67,7 +69,7 @@
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'))" />
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'))" />
70 - <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props'))" />
71 - <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props'))" />
72 + <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props'))" />
73 + <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props'))" />
74 </Target>
75 </Project>
src/test/BalUtilUnitTest/packages.config
+2 -2
@@ -10,6 +10,6 @@
10 <package id="xunit.runner.visualstudio" version="2.4.1" />
11 <package id="WixBuildTools.TestSupport" version="4.0.47" />
12 <package id="WixBuildTools.TestSupport.Native" version="4.0.47" />
13 - <package id="WixToolset.BootstrapperCore.Native" version="4.0.75" targetFramework="native" />
14 - <package id="WixToolset.DUtil" version="4.0.59" targetFramework="native" />
13 + <package id="WixToolset.BootstrapperCore.Native" version="4.0.89" targetFramework="native" />
14 + <package id="WixToolset.DUtil" version="4.0.62" targetFramework="native" />
15 </packages>
\ No newline at end of file
src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
+7 -5
@@ -4,8 +4,8 @@
4
5 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6 <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\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props')" />
8 - <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props')" />
7 + <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props')" />
8 + <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props')" />
9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32">
11 <Configuration>Debug</Configuration>
@@ -56,7 +56,9 @@
56 </Reference>
57 </ItemGroup>
58 <ItemGroup>
59 - <ProjectReference Include="..\..\balutil\balutil.vcxproj" />
59 + <ProjectReference Include="..\..\balutil\balutil.vcxproj">
60 + <Project>{06027492-1CB9-48BC-B31E-C1F9356ED07E}</Project>
61 + </ProjectReference>
62 </ItemGroup>
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')" />
@@ -66,7 +68,7 @@
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'))" />
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'))" />
69 - <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.props'))" />
70 - <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.props'))" />
71 + <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.89\build\WixToolset.BootstrapperCore.Native.props'))" />
72 + <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.62\build\WixToolset.DUtil.props'))" />
73 </Target>
74 </Project>
src/test/BextUtilUnitTest/packages.config
+2 -2
@@ -10,6 +10,6 @@
10 <package id="xunit.runner.visualstudio" version="2.4.1" />
11 <package id="WixBuildTools.TestSupport" version="4.0.47" />
12 <package id="WixBuildTools.TestSupport.Native" version="4.0.47" />
13 - <package id="WixToolset.BootstrapperCore.Native" version="4.0.75" targetFramework="native" />
14 - <package id="WixToolset.DUtil" version="4.0.59" targetFramework="native" />
13 + <package id="WixToolset.BootstrapperCore.Native" version="4.0.89" targetFramework="native" />
14 + <package id="WixToolset.DUtil" version="4.0.62" targetFramework="native" />
15 </packages>
\ No newline at end of file