aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-02-22 20:25:55 -0600
committerSean Hall <r.sean.hall@gmail.com>2021-02-22 20:33:08 -0600
commit022beff26b46c7808eefacfebccfc1fcb5aa5256 (patch)
tree5771c740b834ee1c14c18227418750a856d1f7b8
parente619546617d6266645561428fbbe7a05d257eeba (diff)
downloadwix-022beff26b46c7808eefacfebccfc1fcb5aa5256.tar.gz
wix-022beff26b46c7808eefacfebccfc1fcb5aa5256.tar.bz2
wix-022beff26b46c7808eefacfebccfc1fcb5aa5256.zip
Integrate patch related changes in Burn headers.
-rw-r--r--appveyor.cmd2
-rw-r--r--src/WixToolset.Mba.Core/BootstrapperApplication.cs60
-rw-r--r--src/WixToolset.Mba.Core/EventArgs.cs126
-rw-r--r--src/WixToolset.Mba.Core/IBootstrapperApplication.cs31
-rw-r--r--src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs27
-rw-r--r--src/balutil/balutil.vcxproj8
-rw-r--r--src/balutil/inc/BAFunctions.h5
-rw-r--r--src/balutil/inc/BalBaseBAFunctions.h16
-rw-r--r--src/balutil/inc/BalBaseBAFunctionsProc.h5
-rw-r--r--src/balutil/inc/BalBaseBootstrapperApplication.h16
-rw-r--r--src/balutil/inc/BalBaseBootstrapperApplicationProc.h40
-rw-r--r--src/balutil/inc/IBootstrapperApplication.h29
-rw-r--r--src/balutil/packages.config4
-rw-r--r--src/bextutil/bextutil.vcxproj8
-rw-r--r--src/bextutil/packages.config4
-rw-r--r--src/mbanative/mbanative.vcxproj12
-rw-r--r--src/mbanative/packages.config4
-rw-r--r--src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj12
-rw-r--r--src/test/BalUtilUnitTest/packages.config4
-rw-r--r--src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj12
-rw-r--r--src/test/BextUtilUnitTest/packages.config4
21 files changed, 271 insertions, 158 deletions
diff --git a/appveyor.cmd b/appveyor.cmd
index 3b170ad4..19c2d49f 100644
--- a/appveyor.cmd
+++ b/appveyor.cmd
@@ -19,7 +19,7 @@ dotnet test -c %_C% --no-build src\test\WixToolsetTest.Mba.Core\WixToolsetTest.M
19 19
20msbuild -t:Pack -p:Configuration=%_C% src\balutil\balutil.vcxproj || exit /b 20msbuild -t:Pack -p:Configuration=%_C% src\balutil\balutil.vcxproj || exit /b
21msbuild -t:Pack -p:Configuration=%_C% src\bextutil\bextutil.vcxproj || exit /b 21msbuild -t:Pack -p:Configuration=%_C% src\bextutil\bextutil.vcxproj || exit /b
22msbuild -t:Pack -p:Configuration=%_C% src\WixToolset.Mba.Core\WixToolset.Mba.Core.csproj || exit /b 22msbuild -t:Pack -p:Configuration=%_C% -p:NoBuild=true src\WixToolset.Mba.Core\WixToolset.Mba.Core.csproj || exit /b
23 23
24@popd 24@popd
25@endlocal \ No newline at end of file 25@endlocal \ No newline at end of file
diff --git a/src/WixToolset.Mba.Core/BootstrapperApplication.cs b/src/WixToolset.Mba.Core/BootstrapperApplication.cs
index 9f4f6330..43e69e81 100644
--- a/src/WixToolset.Mba.Core/BootstrapperApplication.cs
+++ b/src/WixToolset.Mba.Core/BootstrapperApplication.cs
@@ -68,7 +68,7 @@ namespace WixToolset.Mba.Core
68 public event EventHandler<DetectRelatedMsiPackageEventArgs> DetectRelatedMsiPackage; 68 public event EventHandler<DetectRelatedMsiPackageEventArgs> DetectRelatedMsiPackage;
69 69
70 /// <inheritdoc/> 70 /// <inheritdoc/>
71 public event EventHandler<DetectTargetMsiPackageEventArgs> DetectTargetMsiPackage; 71 public event EventHandler<DetectPatchTargetEventArgs> DetectPatchTarget;
72 72
73 /// <inheritdoc/> 73 /// <inheritdoc/>
74 public event EventHandler<DetectMsiFeatureEventArgs> DetectMsiFeature; 74 public event EventHandler<DetectMsiFeatureEventArgs> DetectMsiFeature;
@@ -89,7 +89,7 @@ namespace WixToolset.Mba.Core
89 public event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin; 89 public event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin;
90 90
91 /// <inheritdoc/> 91 /// <inheritdoc/>
92 public event EventHandler<PlanTargetMsiPackageEventArgs> PlanTargetMsiPackage; 92 public event EventHandler<PlanPatchTargetEventArgs> PlanPatchTarget;
93 93
94 /// <inheritdoc/> 94 /// <inheritdoc/>
95 public event EventHandler<PlanMsiFeatureEventArgs> PlanMsiFeature; 95 public event EventHandler<PlanMsiFeatureEventArgs> PlanMsiFeature;
@@ -101,6 +101,9 @@ namespace WixToolset.Mba.Core
101 public event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete; 101 public event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete;
102 102
103 /// <inheritdoc/> 103 /// <inheritdoc/>
104 public event EventHandler<PlannedPackageEventArgs> PlannedPackage;
105
106 /// <inheritdoc/>
104 public event EventHandler<PlanCompleteEventArgs> PlanComplete; 107 public event EventHandler<PlanCompleteEventArgs> PlanComplete;
105 108
106 /// <inheritdoc/> 109 /// <inheritdoc/>
@@ -392,12 +395,12 @@ namespace WixToolset.Mba.Core
392 } 395 }
393 396
394 /// <summary> 397 /// <summary>
395 /// Called by the engine, raises the <see cref="DetectTargetMsiPackage"/> event. 398 /// Called by the engine, raises the <see cref="DetectPatchTarget"/> event.
396 /// </summary> 399 /// </summary>
397 /// <param name="args">Additional arguments for this event.</param> 400 /// <param name="args">Additional arguments for this event.</param>
398 protected virtual void OnDetectTargetMsiPackage(DetectTargetMsiPackageEventArgs args) 401 protected virtual void OnDetectPatchTarget(DetectPatchTargetEventArgs args)
399 { 402 {
400 EventHandler<DetectTargetMsiPackageEventArgs> handler = this.DetectTargetMsiPackage; 403 EventHandler<DetectPatchTargetEventArgs> handler = this.DetectPatchTarget;
401 if (null != handler) 404 if (null != handler)
402 { 405 {
403 handler(this, args); 406 handler(this, args);
@@ -483,12 +486,12 @@ namespace WixToolset.Mba.Core
483 } 486 }
484 487
485 /// <summary> 488 /// <summary>
486 /// Called by the engine, raises the <see cref="PlanTargetMsiPackage"/> event. 489 /// Called by the engine, raises the <see cref="PlanPatchTarget"/> event.
487 /// </summary> 490 /// </summary>
488 /// <param name="args">Additional arguments for this event.</param> 491 /// <param name="args">Additional arguments for this event.</param>
489 protected virtual void OnPlanTargetMsiPackage(PlanTargetMsiPackageEventArgs args) 492 protected virtual void OnPlanPatchTarget(PlanPatchTargetEventArgs args)
490 { 493 {
491 EventHandler<PlanTargetMsiPackageEventArgs> handler = this.PlanTargetMsiPackage; 494 EventHandler<PlanPatchTargetEventArgs> handler = this.PlanPatchTarget;
492 if (null != handler) 495 if (null != handler)
493 { 496 {
494 handler(this, args); 497 handler(this, args);
@@ -535,6 +538,19 @@ namespace WixToolset.Mba.Core
535 } 538 }
536 539
537 /// <summary> 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>
538 /// Called by the engine, raises the <see cref="PlanComplete"/> event. 554 /// Called by the engine, raises the <see cref="PlanComplete"/> event.
539 /// </summary> 555 /// </summary>
540 /// <param name="args">Additional arguments for this event.</param> 556 /// <param name="args">Additional arguments for this event.</param>
@@ -1170,10 +1186,10 @@ namespace WixToolset.Mba.Core
1170 return args.HResult; 1186 return args.HResult;
1171 } 1187 }
1172 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)
1174 { 1190 {
1175 DetectTargetMsiPackageEventArgs args = new DetectTargetMsiPackageEventArgs(wzPackageId, wzProductCode, patchState, fCancel); 1191 DetectPatchTargetEventArgs args = new DetectPatchTargetEventArgs(wzPackageId, wzProductCode, patchState, fCancel);
1176 this.OnDetectTargetMsiPackage(args); 1192 this.OnDetectPatchTarget(args);
1177 1193
1178 fCancel = args.Cancel; 1194 fCancel = args.Cancel;
1179 return args.HResult; 1195 return args.HResult;
@@ -1223,9 +1239,9 @@ namespace WixToolset.Mba.Core
1223 return args.HResult; 1239 return args.HResult;
1224 } 1240 }
1225 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)
1227 { 1243 {
1228 PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, recommendedState, pRequestedState, fCancel); 1244 PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, state, fInstallCondition, recommendedState, pRequestedState, fCancel);
1229 this.OnPlanPackageBegin(args); 1245 this.OnPlanPackageBegin(args);
1230 1246
1231 pRequestedState = args.State; 1247 pRequestedState = args.State;
@@ -1233,10 +1249,10 @@ namespace WixToolset.Mba.Core
1233 return args.HResult; 1249 return args.HResult;
1234 } 1250 }
1235 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)
1237 { 1253 {
1238 PlanTargetMsiPackageEventArgs args = new PlanTargetMsiPackageEventArgs(wzPackageId, wzProductCode, recommendedState, pRequestedState, fCancel); 1254 PlanPatchTargetEventArgs args = new PlanPatchTargetEventArgs(wzPackageId, wzProductCode, recommendedState, pRequestedState, fCancel);
1239 this.OnPlanTargetMsiPackage(args); 1255 this.OnPlanPatchTarget(args);
1240 1256
1241 pRequestedState = args.State; 1257 pRequestedState = args.State;
1242 fCancel = args.Cancel; 1258 fCancel = args.Cancel;
@@ -1265,14 +1281,22 @@ namespace WixToolset.Mba.Core
1265 return args.HResult; 1281 return args.HResult;
1266 } 1282 }
1267 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)
1269 { 1285 {
1270 var args = new PlanPackageCompleteEventArgs(wzPackageId, hrStatus, state, requested, execute, rollback); 1286 var args = new PlanPackageCompleteEventArgs(wzPackageId, hrStatus, requested);
1271 this.OnPlanPackageComplete(args); 1287 this.OnPlanPackageComplete(args);
1272 1288
1273 return args.HResult; 1289 return args.HResult;
1274 } 1290 }
1275 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
1276 int IBootstrapperApplication.OnPlanComplete(int hrStatus) 1300 int IBootstrapperApplication.OnPlanComplete(int hrStatus)
1277 { 1301 {
1278 PlanCompleteEventArgs args = new PlanCompleteEventArgs(hrStatus); 1302 PlanCompleteEventArgs args = new PlanCompleteEventArgs(hrStatus);
diff --git a/src/WixToolset.Mba.Core/EventArgs.cs b/src/WixToolset.Mba.Core/EventArgs.cs
index 2f21b50e..953e31ee 100644
--- a/src/WixToolset.Mba.Core/EventArgs.cs
+++ b/src/WixToolset.Mba.Core/EventArgs.cs
@@ -547,18 +547,18 @@ namespace WixToolset.Mba.Core
547 } 547 }
548 548
549 /// <summary> 549 /// <summary>
550 /// Additional arguments used when a target MSI package has been detected. 550 /// Event arguments for <see cref="IDefaultBootstrapperApplication.DetectPatchTarget"/>
551 /// </summary> 551 /// </summary>
552 public class DetectTargetMsiPackageEventArgs : CancellableHResultEventArgs 552 public class DetectPatchTargetEventArgs : CancellableHResultEventArgs
553 { 553 {
554 /// <summary> 554 /// <summary>
555 /// Creates a new instance of the <see cref="DetectMsiFeatureEventArgs"/> class. 555 ///
556 /// </summary> 556 /// </summary>
557 /// <param name="packageId">Detected package identifier.</param> 557 /// <param name="packageId"></param>
558 /// <param name="productCode">Detected product code.</param> 558 /// <param name="productCode"></param>
559 /// <param name="state">Package state detected.</param> 559 /// <param name="state"></param>
560 /// <param name="cancelRecommendation">The recommendation from the engine.</param> 560 /// <param name="cancelRecommendation"></param>
561 public DetectTargetMsiPackageEventArgs(string packageId, string productCode, PackageState state, bool cancelRecommendation) 561 public DetectPatchTargetEventArgs(string packageId, string productCode, PackageState state, bool cancelRecommendation)
562 : base(cancelRecommendation) 562 : base(cancelRecommendation)
563 { 563 {
564 this.PackageId = packageId; 564 this.PackageId = packageId;
@@ -567,17 +567,17 @@ namespace WixToolset.Mba.Core
567 } 567 }
568 568
569 /// <summary> 569 /// <summary>
570 /// Gets the identity of the target's package detected. 570 /// Gets the identity of the patch's package.
571 /// </summary> 571 /// </summary>
572 public string PackageId { get; private set; } 572 public string PackageId { get; private set; }
573 573
574 /// <summary> 574 /// <summary>
575 /// Gets the product code of the target MSI detected. 575 /// Gets the product code of the target.
576 /// </summary> 576 /// </summary>
577 public string ProductCode { get; private set; } 577 public string ProductCode { get; private set; }
578 578
579 /// <summary> 579 /// <summary>
580 /// Gets the detected patch package state. 580 /// Gets the detected patch state for the target.
581 /// </summary> 581 /// </summary>
582 public PackageState State { get; private set; } 582 public PackageState State { get; private set; }
583 } 583 }
@@ -732,22 +732,26 @@ namespace WixToolset.Mba.Core
732 } 732 }
733 733
734 /// <summary> 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> 736 /// </summary>
737 [Serializable] 737 [Serializable]
738 public class PlanPackageBeginEventArgs : CancellableHResultEventArgs 738 public class PlanPackageBeginEventArgs : CancellableHResultEventArgs
739 { 739 {
740 /// <summary> 740 /// <summary>
741 /// Creates a new instance of the <see cref="PlanPackageBeginEventArgs"/> class. 741 ///
742 /// </summary> 742 /// </summary>
743 /// <param name="packageId">The identity of the package to plan for.</param> 743 /// <param name="packageId"></param>
744 /// <param name="recommendedState">The recommended requested state for the package.</param> 744 /// <param name="currentState"></param>
745 /// <param name="state">The requested state for the package.</param> 745 /// <param name="installCondition"></param>
746 /// <param name="cancelRecommendation">The recommendation from the engine.</param> 746 /// <param name="recommendedState"></param>
747 public PlanPackageBeginEventArgs(string packageId, RequestState recommendedState, RequestState state, bool cancelRecommendation) 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)
748 : base(cancelRecommendation) 750 : base(cancelRecommendation)
749 { 751 {
750 this.PackageId = packageId; 752 this.PackageId = packageId;
753 this.CurrentState = currentState;
754 this.InstallCondition = installCondition;
751 this.RecommendedState = recommendedState; 755 this.RecommendedState = recommendedState;
752 this.State = state; 756 this.State = state;
753 } 757 }
@@ -758,6 +762,16 @@ namespace WixToolset.Mba.Core
758 public string PackageId { get; private set; } 762 public string PackageId { get; private set; }
759 763
760 /// <summary> 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>
761 /// Gets the recommended requested state for the package. 775 /// Gets the recommended requested state for the package.
762 /// </summary> 776 /// </summary>
763 public RequestState RecommendedState { get; private set; } 777 public RequestState RecommendedState { get; private set; }
@@ -769,20 +783,20 @@ namespace WixToolset.Mba.Core
769 } 783 }
770 784
771 /// <summary> 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"/>
773 /// </summary> 787 /// </summary>
774 [Serializable] 788 [Serializable]
775 public class PlanTargetMsiPackageEventArgs : CancellableHResultEventArgs 789 public class PlanPatchTargetEventArgs : CancellableHResultEventArgs
776 { 790 {
777 /// <summary> 791 /// <summary>
778 /// Creates a new instance of the <see cref="PlanMsiFeatureEventArgs"/> class. 792 ///
779 /// </summary> 793 /// </summary>
780 /// <param name="packageId">Package identifier of the patch being planned.</param> 794 /// <param name="packageId"></param>
781 /// <param name="productCode">Product code identifier being planned.</param> 795 /// <param name="productCode"></param>
782 /// <param name="recommendedState">Recommended package state of the patch being planned.</param> 796 /// <param name="recommendedState"></param>
783 /// <param name="state">Package state of the patch being planned.</param> 797 /// <param name="state"></param>
784 /// <param name="cancelRecommendation">The recommendation from the engine.</param> 798 /// <param name="cancelRecommendation"></param>
785 public PlanTargetMsiPackageEventArgs(string packageId, string productCode, RequestState recommendedState, RequestState state, bool cancelRecommendation) 799 public PlanPatchTargetEventArgs(string packageId, string productCode, RequestState recommendedState, RequestState state, bool cancelRecommendation)
786 : base(cancelRecommendation) 800 : base(cancelRecommendation)
787 { 801 {
788 this.PackageId = packageId; 802 this.PackageId = packageId;
@@ -792,22 +806,22 @@ namespace WixToolset.Mba.Core
792 } 806 }
793 807
794 /// <summary> 808 /// <summary>
795 /// Gets the identity of the patch package to plan. 809 /// Gets the identity of the patch's package.
796 /// </summary> 810 /// </summary>
797 public string PackageId { get; private set; } 811 public string PackageId { get; private set; }
798 812
799 /// <summary> 813 /// <summary>
800 /// Gets the identity of the patch's target MSI to plan. 814 /// Gets the product code of the target.
801 /// </summary> 815 /// </summary>
802 public string ProductCode { get; private set; } 816 public string ProductCode { get; private set; }
803 817
804 /// <summary> 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.
806 /// </summary> 820 /// </summary>
807 public RequestState RecommendedState { get; private set; } 821 public RequestState RecommendedState { get; private set; }
808 822
809 /// <summary> 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.
811 /// </summary> 825 /// </summary>
812 public RequestState State { get; set; } 826 public RequestState State { get; set; }
813 } 827 }
@@ -915,28 +929,22 @@ namespace WixToolset.Mba.Core
915 } 929 }
916 930
917 /// <summary> 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"/>
919 /// </summary> 933 /// </summary>
920 [Serializable] 934 [Serializable]
921 public class PlanPackageCompleteEventArgs : StatusEventArgs 935 public class PlanPackageCompleteEventArgs : StatusEventArgs
922 { 936 {
923 /// <summary> 937 /// <summary>
924 /// Creates a new instance of the <see cref="PlanPackageCompleteEventArgs"/> class. 938 ///
925 /// </summary> 939 /// </summary>
926 /// <param name="packageId">The identity of the package planned for.</param> 940 /// <param name="packageId"></param>
927 /// <param name="hrStatus">The return code of the operation.</param> 941 /// <param name="hrStatus"></param>
928 /// <param name="state">The current state of the package.</param> 942 /// <param name="requested"></param>
929 /// <param name="requested">The requested state for the package</param> 943 public PlanPackageCompleteEventArgs(string packageId, int hrStatus, RequestState requested)
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)
933 : base(hrStatus) 944 : base(hrStatus)
934 { 945 {
935 this.PackageId = packageId; 946 this.PackageId = packageId;
936 this.State = state;
937 this.Requested = requested; 947 this.Requested = requested;
938 this.Execute = execute;
939 this.Rollback = rollback;
940 } 948 }
941 949
942 /// <summary> 950 /// <summary>
@@ -945,22 +953,42 @@ namespace WixToolset.Mba.Core
945 public string PackageId { get; private set; } 953 public string PackageId { get; private set; }
946 954
947 /// <summary> 955 /// <summary>
948 /// Gets the current state of the package. 956 /// Gets the requested state for the package.
949 /// </summary> 957 /// </summary>
950 public PackageState State { get; private set; } 958 public RequestState Requested { get; private set; }
959 }
951 960
961 /// <summary>
962 /// Event arguments for <see cref="IDefaultBootstrapperApplication.PlannedPackage"/>
963 /// </summary>
964 [Serializable]
965 public class PlannedPackageEventArgs : HResultEventArgs
966 {
952 /// <summary> 967 /// <summary>
953 /// Gets the requested state for the package. 968 ///
954 /// </summary> 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; }
956 984
957 /// <summary> 985 /// <summary>
958 /// Gets the execution action to take. 986 /// Gets the planned execution action.
959 /// </summary> 987 /// </summary>
960 public ActionState Execute { get; private set; } 988 public ActionState Execute { get; private set; }
961 989
962 /// <summary> 990 /// <summary>
963 /// Gets the rollback action to take. 991 /// Gets the planned rollback action.
964 /// </summary> 992 /// </summary>
965 public ActionState Rollback { get; private set; } 993 public ActionState Rollback { get; private set; }
966 } 994 }
diff --git a/src/WixToolset.Mba.Core/IBootstrapperApplication.cs b/src/WixToolset.Mba.Core/IBootstrapperApplication.cs
index c1a32ed4..7ff243d2 100644
--- a/src/WixToolset.Mba.Core/IBootstrapperApplication.cs
+++ b/src/WixToolset.Mba.Core/IBootstrapperApplication.cs
@@ -194,7 +194,7 @@ namespace WixToolset.Mba.Core
194 ); 194 );
195 195
196 /// <summary> 196 /// <summary>
197 /// See <see cref="IDefaultBootstrapperApplication.DetectTargetMsiPackage"/>. 197 /// See <see cref="IDefaultBootstrapperApplication.DetectPatchTarget"/>.
198 /// </summary> 198 /// </summary>
199 /// <param name="wzPackageId"></param> 199 /// <param name="wzPackageId"></param>
200 /// <param name="wzProductCode"></param> 200 /// <param name="wzProductCode"></param>
@@ -203,7 +203,7 @@ namespace WixToolset.Mba.Core
203 /// <returns></returns> 203 /// <returns></returns>
204 [PreserveSig] 204 [PreserveSig]
205 [return: MarshalAs(UnmanagedType.I4)] 205 [return: MarshalAs(UnmanagedType.I4)]
206 int OnDetectTargetMsiPackage( 206 int OnDetectPatchTarget(
207 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, 207 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
208 [MarshalAs(UnmanagedType.LPWStr)] string wzProductCode, 208 [MarshalAs(UnmanagedType.LPWStr)] string wzProductCode,
209 [MarshalAs(UnmanagedType.U4)] PackageState patchState, 209 [MarshalAs(UnmanagedType.U4)] PackageState patchState,
@@ -289,6 +289,8 @@ namespace WixToolset.Mba.Core
289 /// See <see cref="IDefaultBootstrapperApplication.PlanPackageBegin"/>. 289 /// See <see cref="IDefaultBootstrapperApplication.PlanPackageBegin"/>.
290 /// </summary> 290 /// </summary>
291 /// <param name="wzPackageId"></param> 291 /// <param name="wzPackageId"></param>
292 /// <param name="state"></param>
293 /// <param name="fInstallCondition"></param>
292 /// <param name="recommendedState"></param> 294 /// <param name="recommendedState"></param>
293 /// <param name="pRequestedState"></param> 295 /// <param name="pRequestedState"></param>
294 /// <param name="fCancel"></param> 296 /// <param name="fCancel"></param>
@@ -297,13 +299,15 @@ namespace WixToolset.Mba.Core
297 [return: MarshalAs(UnmanagedType.I4)] 299 [return: MarshalAs(UnmanagedType.I4)]
298 int OnPlanPackageBegin( 300 int OnPlanPackageBegin(
299 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, 301 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
302 [MarshalAs(UnmanagedType.U4)] PackageState state,
303 [MarshalAs(UnmanagedType.Bool)] bool fInstallCondition,
300 [MarshalAs(UnmanagedType.U4)] RequestState recommendedState, 304 [MarshalAs(UnmanagedType.U4)] RequestState recommendedState,
301 [MarshalAs(UnmanagedType.U4)] ref RequestState pRequestedState, 305 [MarshalAs(UnmanagedType.U4)] ref RequestState pRequestedState,
302 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel 306 [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
303 ); 307 );
304 308
305 /// <summary> 309 /// <summary>
306 /// See <see cref="IDefaultBootstrapperApplication.PlanTargetMsiPackage"/>. 310 /// See <see cref="IDefaultBootstrapperApplication.PlanPatchTarget"/>.
307 /// </summary> 311 /// </summary>
308 /// <param name="wzPackageId"></param> 312 /// <param name="wzPackageId"></param>
309 /// <param name="wzProductCode"></param> 313 /// <param name="wzProductCode"></param>
@@ -313,7 +317,7 @@ namespace WixToolset.Mba.Core
313 /// <returns></returns> 317 /// <returns></returns>
314 [PreserveSig] 318 [PreserveSig]
315 [return: MarshalAs(UnmanagedType.I4)] 319 [return: MarshalAs(UnmanagedType.I4)]
316 int OnPlanTargetMsiPackage( 320 int OnPlanPatchTarget(
317 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, 321 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
318 [MarshalAs(UnmanagedType.LPWStr)] string wzProductCode, 322 [MarshalAs(UnmanagedType.LPWStr)] string wzProductCode,
319 [MarshalAs(UnmanagedType.U4)] RequestState recommendedState, 323 [MarshalAs(UnmanagedType.U4)] RequestState recommendedState,
@@ -368,18 +372,27 @@ namespace WixToolset.Mba.Core
368 /// </summary> 372 /// </summary>
369 /// <param name="wzPackageId"></param> 373 /// <param name="wzPackageId"></param>
370 /// <param name="hrStatus"></param> 374 /// <param name="hrStatus"></param>
371 /// <param name="state"></param>
372 /// <param name="requested"></param> 375 /// <param name="requested"></param>
373 /// <param name="execute"></param>
374 /// <param name="rollback"></param>
375 /// <returns></returns> 376 /// <returns></returns>
376 [PreserveSig] 377 [PreserveSig]
377 [return: MarshalAs(UnmanagedType.I4)] 378 [return: MarshalAs(UnmanagedType.I4)]
378 int OnPlanPackageComplete( 379 int OnPlanPackageComplete(
379 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, 380 [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId,
380 int hrStatus, 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,
383 [MarshalAs(UnmanagedType.U4)] ActionState execute, 396 [MarshalAs(UnmanagedType.U4)] ActionState execute,
384 [MarshalAs(UnmanagedType.U4)] ActionState rollback 397 [MarshalAs(UnmanagedType.U4)] ActionState rollback
385 ); 398 );
diff --git a/src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs b/src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs
index 9970dc3e..d0518049 100644
--- a/src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs
+++ b/src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs
@@ -115,6 +115,11 @@ namespace WixToolset.Mba.Core
115 event EventHandler<DetectPackageCompleteEventArgs> DetectPackageComplete; 115 event EventHandler<DetectPackageCompleteEventArgs> DetectPackageComplete;
116 116
117 /// <summary> 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>
118 /// Fired when a related bundle has been detected for a bundle. 123 /// Fired when a related bundle has been detected for a bundle.
119 /// </summary> 124 /// </summary>
120 event EventHandler<DetectRelatedBundleEventArgs> DetectRelatedBundle; 125 event EventHandler<DetectRelatedBundleEventArgs> DetectRelatedBundle;
@@ -125,11 +130,6 @@ namespace WixToolset.Mba.Core
125 event EventHandler<DetectRelatedMsiPackageEventArgs> DetectRelatedMsiPackage; 130 event EventHandler<DetectRelatedMsiPackageEventArgs> DetectRelatedMsiPackage;
126 131
127 /// <summary> 132 /// <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. 133 /// Fired when the update detection has found a potential update candidate.
134 /// </summary> 134 /// </summary>
135 event EventHandler<DetectUpdateEventArgs> DetectUpdate; 135 event EventHandler<DetectUpdateEventArgs> DetectUpdate;
@@ -230,6 +230,11 @@ namespace WixToolset.Mba.Core
230 event EventHandler<PlanCompleteEventArgs> PlanComplete; 230 event EventHandler<PlanCompleteEventArgs> PlanComplete;
231 231
232 /// <summary> 232 /// <summary>
233 /// Fired when the engine has completed planning a package.
234 /// </summary>
235 event EventHandler<PlannedPackageEventArgs> PlannedPackage;
236
237 /// <summary>
233 /// Fired when the engine is about to plan a feature in an MSI package. 238 /// Fired when the engine is about to plan a feature in an MSI package.
234 /// </summary> 239 /// </summary>
235 event EventHandler<PlanMsiFeatureEventArgs> PlanMsiFeature; 240 event EventHandler<PlanMsiFeatureEventArgs> PlanMsiFeature;
@@ -240,24 +245,24 @@ namespace WixToolset.Mba.Core
240 event EventHandler<PlanMsiPackageEventArgs> PlanMsiPackage; 245 event EventHandler<PlanMsiPackageEventArgs> PlanMsiPackage;
241 246
242 /// <summary> 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.
244 /// </summary> 249 /// </summary>
245 event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin; 250 event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin;
246 251
247 /// <summary> 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.
249 /// </summary> 254 /// </summary>
250 event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete; 255 event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete;
251 256
252 /// <summary> 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.
254 /// </summary> 259 /// </summary>
255 event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle; 260 event EventHandler<PlanPatchTargetEventArgs> PlanPatchTarget;
256 261
257 /// <summary> 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.
259 /// </summary> 264 /// </summary>
260 event EventHandler<PlanTargetMsiPackageEventArgs> PlanTargetMsiPackage; 265 event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle;
261 266
262 /// <summary> 267 /// <summary>
263 /// Fired when the engine has changed progress for the bundle installation. 268 /// Fired when the engine has changed progress for the bundle installation.
diff --git a/src/balutil/balutil.vcxproj b/src/balutil/balutil.vcxproj
index 702a25c0..578586e8 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.75\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.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.59\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.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 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.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'))" /> 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.59\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.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'))" /> 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> 104 </Target>
105</Project> 105</Project>
diff --git a/src/balutil/inc/BAFunctions.h b/src/balutil/inc/BAFunctions.h
index eb6d96d8..6d36ad8c 100644
--- a/src/balutil/inc/BAFunctions.h
+++ b/src/balutil/inc/BAFunctions.h
@@ -23,12 +23,12 @@ enum BA_FUNCTIONS_MESSAGE
23 BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLE, 23 BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDBUNDLE,
24 BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGEBEGIN, 24 BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGEBEGIN,
25 BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDMSIPACKAGE, 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, 27 BA_FUNCTIONS_MESSAGE_ONDETECTMSIFEATURE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTMSIFEATURE,
28 BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGECOMPLETE, 28 BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPACKAGECOMPLETE,
29 BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLE, 29 BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANRELATEDBUNDLE,
30 BA_FUNCTIONS_MESSAGE_ONPLANPACKAGEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN, 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, 32 BA_FUNCTIONS_MESSAGE_ONPLANMSIFEATURE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIFEATURE,
33 BA_FUNCTIONS_MESSAGE_ONPLANPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGECOMPLETE, 33 BA_FUNCTIONS_MESSAGE_ONPLANPACKAGECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGECOMPLETE,
34 BA_FUNCTIONS_MESSAGE_ONAPPLYBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONAPPLYBEGIN, 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, 72 BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE,
73 BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN, 73 BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN,
74 BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE, 74 BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE,
75 BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANNEDPACKAGE,
75 76
76 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024, 77 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024,
77 BA_FUNCTIONS_MESSAGE_WNDPROC, 78 BA_FUNCTIONS_MESSAGE_WNDPROC,
diff --git a/src/balutil/inc/BalBaseBAFunctions.h b/src/balutil/inc/BalBaseBAFunctions.h
index 10334a18..7699b8ff 100644
--- a/src/balutil/inc/BalBaseBAFunctions.h
+++ b/src/balutil/inc/BalBaseBAFunctions.h
@@ -177,7 +177,7 @@ public: // IBootstrapperApplication
177 return S_OK; 177 return S_OK;
178 } 178 }
179 179
180 virtual STDMETHODIMP OnDetectTargetMsiPackage( 180 virtual STDMETHODIMP OnDetectPatchTarget(
181 __in_z LPCWSTR /*wzPackageId*/, 181 __in_z LPCWSTR /*wzPackageId*/,
182 __in_z LPCWSTR /*wzProductCode*/, 182 __in_z LPCWSTR /*wzProductCode*/,
183 __in BOOTSTRAPPER_PACKAGE_STATE /*patchState*/, 183 __in BOOTSTRAPPER_PACKAGE_STATE /*patchState*/,
@@ -234,6 +234,8 @@ public: // IBootstrapperApplication
234 234
235 virtual STDMETHODIMP OnPlanPackageBegin( 235 virtual STDMETHODIMP OnPlanPackageBegin(
236 __in_z LPCWSTR /*wzPackageId*/, 236 __in_z LPCWSTR /*wzPackageId*/,
237 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
238 __in BOOL /*fInstallCondition*/,
237 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/, 239 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
238 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/, 240 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/,
239 __inout BOOL* /*pfCancel*/ 241 __inout BOOL* /*pfCancel*/
@@ -242,7 +244,7 @@ public: // IBootstrapperApplication
242 return S_OK; 244 return S_OK;
243 } 245 }
244 246
245 virtual STDMETHODIMP OnPlanTargetMsiPackage( 247 virtual STDMETHODIMP OnPlanPatchTarget(
246 __in_z LPCWSTR /*wzPackageId*/, 248 __in_z LPCWSTR /*wzPackageId*/,
247 __in_z LPCWSTR /*wzProductCode*/, 249 __in_z LPCWSTR /*wzProductCode*/,
248 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/, 250 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
@@ -280,8 +282,14 @@ public: // IBootstrapperApplication
280 virtual STDMETHODIMP OnPlanPackageComplete( 282 virtual STDMETHODIMP OnPlanPackageComplete(
281 __in_z LPCWSTR /*wzPackageId*/, 283 __in_z LPCWSTR /*wzPackageId*/,
282 __in HRESULT /*hrStatus*/, 284 __in HRESULT /*hrStatus*/,
283 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, 285 __in BOOTSTRAPPER_REQUEST_STATE /*requested*/
284 __in BOOTSTRAPPER_REQUEST_STATE /*requested*/, 286 )
287 {
288 return S_OK;
289 }
290
291 virtual STDMETHODIMP OnPlannedPackage(
292 __in_z LPCWSTR /*wzPackageId*/,
285 __in BOOTSTRAPPER_ACTION_STATE /*execute*/, 293 __in BOOTSTRAPPER_ACTION_STATE /*execute*/,
286 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/ 294 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/
287 ) 295 )
diff --git a/src/balutil/inc/BalBaseBAFunctionsProc.h b/src/balutil/inc/BalBaseBAFunctionsProc.h
index 4f0906d2..1b11c300 100644
--- a/src/balutil/inc/BalBaseBAFunctionsProc.h
+++ b/src/balutil/inc/BalBaseBAFunctionsProc.h
@@ -58,12 +58,12 @@ static HRESULT WINAPI BalBaseBAFunctionsProc(
58 case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLE: 58 case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDBUNDLE:
59 case BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGEBEGIN: 59 case BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGEBEGIN:
60 case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDMSIPACKAGE: 60 case BA_FUNCTIONS_MESSAGE_ONDETECTRELATEDMSIPACKAGE:
61 case BA_FUNCTIONS_MESSAGE_ONDETECTTARGETMSIPACKAGE: 61 case BA_FUNCTIONS_MESSAGE_ONDETECTPATCHTARGET:
62 case BA_FUNCTIONS_MESSAGE_ONDETECTMSIFEATURE: 62 case BA_FUNCTIONS_MESSAGE_ONDETECTMSIFEATURE:
63 case BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGECOMPLETE: 63 case BA_FUNCTIONS_MESSAGE_ONDETECTPACKAGECOMPLETE:
64 case BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLE: 64 case BA_FUNCTIONS_MESSAGE_ONPLANRELATEDBUNDLE:
65 case BA_FUNCTIONS_MESSAGE_ONPLANPACKAGEBEGIN: 65 case BA_FUNCTIONS_MESSAGE_ONPLANPACKAGEBEGIN:
66 case BA_FUNCTIONS_MESSAGE_ONPLANTARGETMSIPACKAGE: 66 case BA_FUNCTIONS_MESSAGE_ONPLANPATCHTARGET:
67 case BA_FUNCTIONS_MESSAGE_ONPLANMSIFEATURE: 67 case BA_FUNCTIONS_MESSAGE_ONPLANMSIFEATURE:
68 case BA_FUNCTIONS_MESSAGE_ONPLANPACKAGECOMPLETE: 68 case BA_FUNCTIONS_MESSAGE_ONPLANPACKAGECOMPLETE:
69 case BA_FUNCTIONS_MESSAGE_ONAPPLYBEGIN: 69 case BA_FUNCTIONS_MESSAGE_ONAPPLYBEGIN:
@@ -107,6 +107,7 @@ static HRESULT WINAPI BalBaseBAFunctionsProc(
107 case BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE: 107 case BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE:
108 case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN: 108 case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN:
109 case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE: 109 case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE:
110 case BA_FUNCTIONS_MESSAGE_ONPLANNEDPACKAGE:
110 hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext); 111 hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext);
111 break; 112 break;
112 case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED: 113 case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED:
diff --git a/src/balutil/inc/BalBaseBootstrapperApplication.h b/src/balutil/inc/BalBaseBootstrapperApplication.h
index 1b0230de..59e57de1 100644
--- a/src/balutil/inc/BalBaseBootstrapperApplication.h
+++ b/src/balutil/inc/BalBaseBootstrapperApplication.h
@@ -181,7 +181,7 @@ public: // IBootstrapperApplication
181 return S_OK; 181 return S_OK;
182 } 182 }
183 183
184 virtual STDMETHODIMP OnDetectTargetMsiPackage( 184 virtual STDMETHODIMP OnDetectPatchTarget(
185 __in_z LPCWSTR /*wzPackageId*/, 185 __in_z LPCWSTR /*wzPackageId*/,
186 __in_z LPCWSTR /*wzProductCode*/, 186 __in_z LPCWSTR /*wzProductCode*/,
187 __in BOOTSTRAPPER_PACKAGE_STATE /*patchState*/, 187 __in BOOTSTRAPPER_PACKAGE_STATE /*patchState*/,
@@ -242,6 +242,8 @@ public: // IBootstrapperApplication
242 242
243 virtual STDMETHODIMP OnPlanPackageBegin( 243 virtual STDMETHODIMP OnPlanPackageBegin(
244 __in_z LPCWSTR /*wzPackageId*/, 244 __in_z LPCWSTR /*wzPackageId*/,
245 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/,
246 __in BOOL /*fInstallCondition*/,
245 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/, 247 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
246 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/, 248 __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/,
247 __inout BOOL* pfCancel 249 __inout BOOL* pfCancel
@@ -251,7 +253,7 @@ public: // IBootstrapperApplication
251 return S_OK; 253 return S_OK;
252 } 254 }
253 255
254 virtual STDMETHODIMP OnPlanTargetMsiPackage( 256 virtual STDMETHODIMP OnPlanPatchTarget(
255 __in_z LPCWSTR /*wzPackageId*/, 257 __in_z LPCWSTR /*wzPackageId*/,
256 __in_z LPCWSTR /*wzProductCode*/, 258 __in_z LPCWSTR /*wzProductCode*/,
257 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/, 259 __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/,
@@ -292,8 +294,14 @@ public: // IBootstrapperApplication
292 virtual STDMETHODIMP OnPlanPackageComplete( 294 virtual STDMETHODIMP OnPlanPackageComplete(
293 __in_z LPCWSTR /*wzPackageId*/, 295 __in_z LPCWSTR /*wzPackageId*/,
294 __in HRESULT /*hrStatus*/, 296 __in HRESULT /*hrStatus*/,
295 __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, 297 __in BOOTSTRAPPER_REQUEST_STATE /*requested*/
296 __in BOOTSTRAPPER_REQUEST_STATE /*requested*/, 298 )
299 {
300 return S_OK;
301 }
302
303 virtual STDMETHODIMP OnPlannedPackage(
304 __in_z LPCWSTR /*wzPackageId*/,
297 __in BOOTSTRAPPER_ACTION_STATE /*execute*/, 305 __in BOOTSTRAPPER_ACTION_STATE /*execute*/,
298 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/ 306 __in BOOTSTRAPPER_ACTION_STATE /*rollback*/
299 ) 307 )
diff --git a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
index e16640e5..6ce8710d 100644
--- a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
+++ b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h
@@ -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); 135 return pBA->OnDetectRelatedMsiPackage(pArgs->wzPackageId, pArgs->wzUpgradeCode, pArgs->wzProductCode, pArgs->fPerMachine, pArgs->wzVersion, pArgs->operation, &pResults->fCancel);
136} 136}
137 137
138static HRESULT BalBaseBAProcOnDetectTargetMsiPackage( 138static HRESULT BalBaseBAProcOnDetectPatchTarget(
139 __in IBootstrapperApplication* pBA, 139 __in IBootstrapperApplication* pBA,
140 __in BA_ONDETECTTARGETMSIPACKAGE_ARGS* pArgs, 140 __in BA_ONDETECTPATCHTARGET_ARGS* pArgs,
141 __inout BA_ONDETECTTARGETMSIPACKAGE_RESULTS* pResults 141 __inout BA_ONDETECTPATCHTARGET_RESULTS* pResults
142 ) 142 )
143{ 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} 145}
146 146
147static HRESULT BalBaseBAProcOnDetectMsiFeature( 147static HRESULT BalBaseBAProcOnDetectMsiFeature(
@@ -177,16 +177,16 @@ 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->recommendedState, &pResults->requestedState, &pResults->fCancel); 180 return pBA->OnPlanPackageBegin(pArgs->wzPackageId, pArgs->state, pArgs->fInstallCondition, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel);
181} 181}
182 182
183static HRESULT BalBaseBAProcOnPlanTargetMsiPackage( 183static HRESULT BalBaseBAProcOnPlanPatchTarget(
184 __in IBootstrapperApplication* pBA, 184 __in IBootstrapperApplication* pBA,
185 __in BA_ONPLANTARGETMSIPACKAGE_ARGS* pArgs, 185 __in BA_ONPLANPATCHTARGET_ARGS* pArgs,
186 __inout BA_ONPLANTARGETMSIPACKAGE_RESULTS* pResults 186 __inout BA_ONPLANPATCHTARGET_RESULTS* pResults
187 ) 187 )
188{ 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} 190}
191 191
192static HRESULT BalBaseBAProcOnPlanMsiFeature( 192static HRESULT BalBaseBAProcOnPlanMsiFeature(
@@ -204,7 +204,16 @@ static HRESULT BalBaseBAProcOnPlanPackageComplete(
204 __inout BA_ONPLANPACKAGECOMPLETE_RESULTS* /*pResults*/ 204 __inout BA_ONPLANPACKAGECOMPLETE_RESULTS* /*pResults*/
205 ) 205 )
206{ 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
210static 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);
208} 217}
209 218
210static HRESULT BalBaseBAProcOnApplyBegin( 219static HRESULT BalBaseBAProcOnApplyBegin(
@@ -638,8 +647,8 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
638 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDMSIPACKAGE: 647 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTRELATEDMSIPACKAGE:
639 hr = BalBaseBAProcOnDetectRelatedMsiPackage(pBA, reinterpret_cast<BA_ONDETECTRELATEDMSIPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTRELATEDMSIPACKAGE_RESULTS*>(pvResults)); 648 hr = BalBaseBAProcOnDetectRelatedMsiPackage(pBA, reinterpret_cast<BA_ONDETECTRELATEDMSIPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTRELATEDMSIPACKAGE_RESULTS*>(pvResults));
640 break; 649 break;
641 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTTARGETMSIPACKAGE: 650 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTPATCHTARGET:
642 hr = BalBaseBAProcOnDetectTargetMsiPackage(pBA, reinterpret_cast<BA_ONDETECTTARGETMSIPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTTARGETMSIPACKAGE_RESULTS*>(pvResults)); 651 hr = BalBaseBAProcOnDetectPatchTarget(pBA, reinterpret_cast<BA_ONDETECTPATCHTARGET_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTPATCHTARGET_RESULTS*>(pvResults));
643 break; 652 break;
644 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTMSIFEATURE: 653 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONDETECTMSIFEATURE:
645 hr = BalBaseBAProcOnDetectMsiFeature(pBA, reinterpret_cast<BA_ONDETECTMSIFEATURE_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTMSIFEATURE_RESULTS*>(pvResults)); 654 hr = BalBaseBAProcOnDetectMsiFeature(pBA, reinterpret_cast<BA_ONDETECTMSIFEATURE_ARGS*>(pvArgs), reinterpret_cast<BA_ONDETECTMSIFEATURE_RESULTS*>(pvResults));
@@ -653,8 +662,8 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
653 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN: 662 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN:
654 hr = BalBaseBAProcOnPlanPackageBegin(pBA, reinterpret_cast<BA_ONPLANPACKAGEBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANPACKAGEBEGIN_RESULTS*>(pvResults)); 663 hr = BalBaseBAProcOnPlanPackageBegin(pBA, reinterpret_cast<BA_ONPLANPACKAGEBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANPACKAGEBEGIN_RESULTS*>(pvResults));
655 break; 664 break;
656 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANTARGETMSIPACKAGE: 665 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPATCHTARGET:
657 hr = BalBaseBAProcOnPlanTargetMsiPackage(pBA, reinterpret_cast<BA_ONPLANTARGETMSIPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANTARGETMSIPACKAGE_RESULTS*>(pvResults)); 666 hr = BalBaseBAProcOnPlanPatchTarget(pBA, reinterpret_cast<BA_ONPLANPATCHTARGET_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANPATCHTARGET_RESULTS*>(pvResults));
658 break; 667 break;
659 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIFEATURE: 668 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIFEATURE:
660 hr = BalBaseBAProcOnPlanMsiFeature(pBA, reinterpret_cast<BA_ONPLANMSIFEATURE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANMSIFEATURE_RESULTS*>(pvResults)); 669 hr = BalBaseBAProcOnPlanMsiFeature(pBA, reinterpret_cast<BA_ONPLANMSIFEATURE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANMSIFEATURE_RESULTS*>(pvResults));
@@ -784,6 +793,9 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
784 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE: 793 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE:
785 hr = BalBaseBAProcOnSystemRestorePointComplete(pBA, reinterpret_cast<BA_ONSYSTEMRESTOREPOINTCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONSYSTEMRESTOREPOINTCOMPLETE_RESULTS*>(pvResults)); 794 hr = BalBaseBAProcOnSystemRestorePointComplete(pBA, reinterpret_cast<BA_ONSYSTEMRESTOREPOINTCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONSYSTEMRESTOREPOINTCOMPLETE_RESULTS*>(pvResults));
786 break; 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;
787 } 799 }
788 } 800 }
789 801
diff --git a/src/balutil/inc/IBootstrapperApplication.h b/src/balutil/inc/IBootstrapperApplication.h
index 4569cdab..7d710b26 100644
--- a/src/balutil/inc/IBootstrapperApplication.h
+++ b/src/balutil/inc/IBootstrapperApplication.h
@@ -91,9 +91,9 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
91 __inout BOOL* pfCancel 91 __inout BOOL* pfCancel
92 ) = 0; 92 ) = 0;
93 93
94 // OnDetectTargetMsiPackage - called when the engine detects a target MSI package for 94 // OnDetectPatchTarget - called when the engine detects a target product
95 // an MSP package. 95 // for an MSP package.
96 STDMETHOD(OnDetectTargetMsiPackage)( 96 STDMETHOD(OnDetectPatchTarget)(
97 __in_z LPCWSTR wzPackageId, 97 __in_z LPCWSTR wzPackageId,
98 __in_z LPCWSTR wzProductCode, 98 __in_z LPCWSTR wzProductCode,
99 __in BOOTSTRAPPER_PACKAGE_STATE patchState, 99 __in BOOTSTRAPPER_PACKAGE_STATE patchState,
@@ -137,17 +137,20 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
137 __inout BOOL* pfCancel 137 __inout BOOL* pfCancel
138 ) = 0; 138 ) = 0;
139 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.
141 STDMETHOD(OnPlanPackageBegin)( 142 STDMETHOD(OnPlanPackageBegin)(
142 __in_z LPCWSTR wzPackageId, 143 __in_z LPCWSTR wzPackageId,
144 __in BOOTSTRAPPER_PACKAGE_STATE state,
145 __in BOOL fInstallCondition,
143 __in BOOTSTRAPPER_REQUEST_STATE recommendedState, 146 __in BOOTSTRAPPER_REQUEST_STATE recommendedState,
144 __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState, 147 __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState,
145 __inout BOOL* pfCancel 148 __inout BOOL* pfCancel
146 ) = 0; 149 ) = 0;
147 150
148 // OnPlanTargetMsiPackage - called when the engine plans an MSP package 151 // OnPlanPatchTarget - called when the engine is about to plan a target
149 // to apply to an MSI package. 152 // of an MSP package.
150 STDMETHOD(OnPlanTargetMsiPackage)( 153 STDMETHOD(OnPlanPatchTarget)(
151 __in_z LPCWSTR wzPackageId, 154 __in_z LPCWSTR wzPackageId,
152 __in_z LPCWSTR wzProductCode, 155 __in_z LPCWSTR wzProductCode,
153 __in BOOTSTRAPPER_REQUEST_STATE recommendedState, 156 __in BOOTSTRAPPER_REQUEST_STATE recommendedState,
@@ -177,13 +180,17 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
177 __inout BOOL* pfDisableExternalUiHandler 180 __inout BOOL* pfDisableExternalUiHandler
178 ) = 0; 181 ) = 0;
179 182
180 // OnPlanPackageComplete - called after the engine plans a package. 183 // OnPlanPackageComplete - called after the engine has completed getting the BA's input
181 // 184 // for planning a package.
182 STDMETHOD(OnPlanPackageComplete)( 185 STDMETHOD(OnPlanPackageComplete)(
183 __in_z LPCWSTR wzPackageId, 186 __in_z LPCWSTR wzPackageId,
184 __in HRESULT hrStatus, 187 __in HRESULT hrStatus,
185 __in BOOTSTRAPPER_PACKAGE_STATE state, 188 __in BOOTSTRAPPER_REQUEST_STATE requested
186 __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,
187 __in BOOTSTRAPPER_ACTION_STATE execute, 194 __in BOOTSTRAPPER_ACTION_STATE execute,
188 __in BOOTSTRAPPER_ACTION_STATE rollback 195 __in BOOTSTRAPPER_ACTION_STATE rollback
189 ) = 0; 196 ) = 0;
diff --git a/src/balutil/packages.config b/src/balutil/packages.config
index 9a928742..68970a7e 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.75" targetFramework="native" /> 4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.89" targetFramework="native" />
5 <package id="WixToolset.DUtil" version="4.0.59" targetFramework="native" /> 5 <package id="WixToolset.DUtil" version="4.0.62" targetFramework="native" />
6</packages> \ No newline at end of file 6</packages> \ No newline at end of file
diff --git a/src/bextutil/bextutil.vcxproj b/src/bextutil/bextutil.vcxproj
index f81ce469..44393f94 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.75\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.75\build\WixToolset.BootstrapperCore.Native.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.59\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.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 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.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'))" /> 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.59\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.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'))" /> 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> 93 </Target>
94</Project> 94</Project>
diff --git a/src/bextutil/packages.config b/src/bextutil/packages.config
index 9a928742..68970a7e 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.75" targetFramework="native" /> 4 <package id="WixToolset.BootstrapperCore.Native" version="4.0.89" targetFramework="native" />
5 <package id="WixToolset.DUtil" version="4.0.59" targetFramework="native" /> 5 <package id="WixToolset.DUtil" version="4.0.62" 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 7132cf1a..eaf95157 100644
--- a/src/mbanative/mbanative.vcxproj
+++ b/src/mbanative/mbanative.vcxproj
@@ -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')" /> 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')" /> 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')" /> 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')" /> 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.59\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.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 10
11 <ItemGroup Label="ProjectConfigurations"> 11 <ItemGroup Label="ProjectConfigurations">
12 <ProjectConfiguration Include="Debug|ARM64"> 12 <ProjectConfiguration Include="Debug|ARM64">
@@ -79,7 +79,9 @@
79 </ItemGroup> 79 </ItemGroup>
80 80
81 <ItemGroup> 81 <ItemGroup>
82 <ProjectReference Include="..\balutil\balutil.vcxproj" /> 82 <ProjectReference Include="..\balutil\balutil.vcxproj">
83 <Project>{EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}</Project>
84 </ProjectReference>
83 </ItemGroup> 85 </ItemGroup>
84 86
85 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 87 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
@@ -94,7 +96,7 @@
94 <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'))" />
95 <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'))" />
96 <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'))" />
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'))" /> 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'))" />
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'))" /> 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'))" />
99 </Target> 101 </Target>
100</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 b60fbb82..e9fcafcd 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.75" targetFramework="native" /> 7 <package id="WixToolset.BootstrapperCore.Native" version="4.0.89" targetFramework="native" />
8 <package id="WixToolset.DUtil" version="4.0.59" targetFramework="native" /> 8 <package id="WixToolset.DUtil" version="4.0.62" 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 5f250d39..aad361c1 100644
--- a/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
+++ b/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
@@ -4,8 +4,8 @@
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\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')" /> 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')" /> 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.59\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.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"> 9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32"> 10 <ProjectConfiguration Include="Debug|Win32">
11 <Configuration>Debug</Configuration> 11 <Configuration>Debug</Configuration>
@@ -57,7 +57,9 @@
57 </Reference> 57 </Reference>
58 </ItemGroup> 58 </ItemGroup>
59 <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>
61 </ItemGroup> 63 </ItemGroup>
62 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 64 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
63 <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.47\build\WixBuildTools.TestSupport.Native.targets" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets')" />
@@ -67,7 +69,7 @@
67 </PropertyGroup> 69 </PropertyGroup>
68 <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.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.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.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'))" /> 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'))" />
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'))" /> 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'))" />
72 </Target> 74 </Target>
73</Project> 75</Project>
diff --git a/src/test/BalUtilUnitTest/packages.config b/src/test/BalUtilUnitTest/packages.config
index 273ae5d9..9e1a6a0e 100644
--- a/src/test/BalUtilUnitTest/packages.config
+++ b/src/test/BalUtilUnitTest/packages.config
@@ -10,6 +10,6 @@
10 <package id="xunit.runner.visualstudio" version="2.4.1" /> 10 <package id="xunit.runner.visualstudio" version="2.4.1" />
11 <package id="WixBuildTools.TestSupport" version="4.0.47" /> 11 <package id="WixBuildTools.TestSupport" version="4.0.47" />
12 <package id="WixBuildTools.TestSupport.Native" 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" /> 13 <package id="WixToolset.BootstrapperCore.Native" version="4.0.89" targetFramework="native" />
14 <package id="WixToolset.DUtil" version="4.0.59" targetFramework="native" /> 14 <package id="WixToolset.DUtil" version="4.0.62" targetFramework="native" />
15</packages> \ No newline at end of file 15</packages> \ No newline at end of file
diff --git a/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj b/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
index c648b86b..566a2abd 100644
--- a/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
+++ b/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
@@ -4,8 +4,8 @@
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\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')" /> 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')" /> 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.59\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.59\build\WixToolset.DUtil.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"> 9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32"> 10 <ProjectConfiguration Include="Debug|Win32">
11 <Configuration>Debug</Configuration> 11 <Configuration>Debug</Configuration>
@@ -56,7 +56,9 @@
56 </Reference> 56 </Reference>
57 </ItemGroup> 57 </ItemGroup>
58 <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>
60 </ItemGroup> 62 </ItemGroup>
61 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 63 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
62 <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.47\build\WixBuildTools.TestSupport.Native.targets" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.targets')" />
@@ -66,7 +68,7 @@
66 </PropertyGroup> 68 </PropertyGroup>
67 <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.47\build\WixBuildTools.TestSupport.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props'))" />
68 <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.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'))" /> 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'))" />
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'))" /> 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'))" />
71 </Target> 73 </Target>
72</Project> 74</Project>
diff --git a/src/test/BextUtilUnitTest/packages.config b/src/test/BextUtilUnitTest/packages.config
index 273ae5d9..9e1a6a0e 100644
--- a/src/test/BextUtilUnitTest/packages.config
+++ b/src/test/BextUtilUnitTest/packages.config
@@ -10,6 +10,6 @@
10 <package id="xunit.runner.visualstudio" version="2.4.1" /> 10 <package id="xunit.runner.visualstudio" version="2.4.1" />
11 <package id="WixBuildTools.TestSupport" version="4.0.47" /> 11 <package id="WixBuildTools.TestSupport" version="4.0.47" />
12 <package id="WixBuildTools.TestSupport.Native" 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" /> 13 <package id="WixToolset.BootstrapperCore.Native" version="4.0.89" targetFramework="native" />
14 <package id="WixToolset.DUtil" version="4.0.59" targetFramework="native" /> 14 <package id="WixToolset.DUtil" version="4.0.62" targetFramework="native" />
15</packages> \ No newline at end of file 15</packages> \ No newline at end of file