diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-12-07 17:34:09 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-12-08 17:14:11 -0600 |
commit | 19d85eed389fbd964f64c2fbb85e40ec20439d26 (patch) | |
tree | 29adf2c191ea8a50153238ee457ff34f0d73d059 /src/api/burn/WixToolset.Mba.Core | |
parent | 5c7b1a8fa2b02ddd758c0c267f59b7e77b527f62 (diff) | |
download | wix-19d85eed389fbd964f64c2fbb85e40ec20439d26.tar.gz wix-19d85eed389fbd964f64c2fbb85e40ec20439d26.tar.bz2 wix-19d85eed389fbd964f64c2fbb85e40ec20439d26.zip |
Add ability to customize file versioning rules for MsiPackage and MspPackage.
Fixes #5911
Diffstat (limited to 'src/api/burn/WixToolset.Mba.Core')
3 files changed, 38 insertions, 12 deletions
diff --git a/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs index b6fdca1e..0520463f 100644 --- a/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs +++ b/src/api/burn/WixToolset.Mba.Core/BootstrapperApplication.cs | |||
@@ -1433,15 +1433,16 @@ namespace WixToolset.Mba.Core | |||
1433 | return args.HResult; | 1433 | return args.HResult; |
1434 | } | 1434 | } |
1435 | 1435 | ||
1436 | int IBootstrapperApplication.OnPlanMsiPackage(string wzPackageId, bool fExecute, ActionState action, ref bool fCancel, ref BURN_MSI_PROPERTY actionMsiProperty, ref INSTALLUILEVEL uiLevel, ref bool fDisableExternalUiHandler) | 1436 | int IBootstrapperApplication.OnPlanMsiPackage(string wzPackageId, bool fExecute, ActionState action, BOOTSTRAPPER_MSI_FILE_VERSIONING recommendedFileVersioning, ref bool fCancel, ref BURN_MSI_PROPERTY actionMsiProperty, ref INSTALLUILEVEL uiLevel, ref bool fDisableExternalUiHandler, ref BOOTSTRAPPER_MSI_FILE_VERSIONING fileVersioning) |
1437 | { | 1437 | { |
1438 | PlanMsiPackageEventArgs args = new PlanMsiPackageEventArgs(wzPackageId, fExecute, action, fCancel, actionMsiProperty, uiLevel, fDisableExternalUiHandler); | 1438 | PlanMsiPackageEventArgs args = new PlanMsiPackageEventArgs(wzPackageId, fExecute, action, recommendedFileVersioning, fCancel, actionMsiProperty, uiLevel, fDisableExternalUiHandler, fileVersioning); |
1439 | this.OnPlanMsiPackage(args); | 1439 | this.OnPlanMsiPackage(args); |
1440 | 1440 | ||
1441 | fCancel = args.Cancel; | 1441 | fCancel = args.Cancel; |
1442 | actionMsiProperty = args.ActionMsiProperty; | 1442 | actionMsiProperty = args.ActionMsiProperty; |
1443 | uiLevel = args.UiLevel; | 1443 | uiLevel = args.UiLevel; |
1444 | fDisableExternalUiHandler = args.DisableExternalUiHandler; | 1444 | fDisableExternalUiHandler = args.DisableExternalUiHandler; |
1445 | fileVersioning = args.FileVersioning; | ||
1445 | return args.HResult; | 1446 | return args.HResult; |
1446 | } | 1447 | } |
1447 | 1448 | ||
diff --git a/src/api/burn/WixToolset.Mba.Core/EventArgs.cs b/src/api/burn/WixToolset.Mba.Core/EventArgs.cs index 04e7b579..556db821 100644 --- a/src/api/burn/WixToolset.Mba.Core/EventArgs.cs +++ b/src/api/burn/WixToolset.Mba.Core/EventArgs.cs | |||
@@ -902,15 +902,17 @@ namespace WixToolset.Mba.Core | |||
902 | public class PlanMsiPackageEventArgs : CancellableHResultEventArgs | 902 | public class PlanMsiPackageEventArgs : CancellableHResultEventArgs |
903 | { | 903 | { |
904 | /// <summary /> | 904 | /// <summary /> |
905 | public PlanMsiPackageEventArgs(string packageId, bool shouldExecute, ActionState action, bool cancelRecommendation, BURN_MSI_PROPERTY actionMsiProperty, INSTALLUILEVEL uiLevel, bool disableExternalUiHandler) | 905 | public PlanMsiPackageEventArgs(string packageId, bool shouldExecute, ActionState action, BOOTSTRAPPER_MSI_FILE_VERSIONING recommendedFileVersioning, bool cancelRecommendation, BURN_MSI_PROPERTY actionMsiProperty, INSTALLUILEVEL uiLevel, bool disableExternalUiHandler, BOOTSTRAPPER_MSI_FILE_VERSIONING fileVersioning) |
906 | : base(cancelRecommendation) | 906 | : base(cancelRecommendation) |
907 | { | 907 | { |
908 | this.PackageId = packageId; | 908 | this.PackageId = packageId; |
909 | this.ShouldExecute = shouldExecute; | 909 | this.ShouldExecute = shouldExecute; |
910 | this.Action = action; | 910 | this.Action = action; |
911 | this.RecommendedFileVersioning = recommendedFileVersioning; | ||
911 | this.ActionMsiProperty = actionMsiProperty; | 912 | this.ActionMsiProperty = actionMsiProperty; |
912 | this.UiLevel = uiLevel; | 913 | this.UiLevel = uiLevel; |
913 | this.DisableExternalUiHandler = disableExternalUiHandler; | 914 | this.DisableExternalUiHandler = disableExternalUiHandler; |
915 | this.FileVersioning = fileVersioning; | ||
914 | } | 916 | } |
915 | 917 | ||
916 | /// <summary> | 918 | /// <summary> |
@@ -929,6 +931,11 @@ namespace WixToolset.Mba.Core | |||
929 | public ActionState Action { get; private set; } | 931 | public ActionState Action { get; private set; } |
930 | 932 | ||
931 | /// <summary> | 933 | /// <summary> |
934 | /// Gets the recommended file versioning for the package. | ||
935 | /// </summary> | ||
936 | public BOOTSTRAPPER_MSI_FILE_VERSIONING RecommendedFileVersioning { get; private set; } | ||
937 | |||
938 | /// <summary> | ||
932 | /// Gets or sets the requested MSI property to add. | 939 | /// Gets or sets the requested MSI property to add. |
933 | /// </summary> | 940 | /// </summary> |
934 | public BURN_MSI_PROPERTY ActionMsiProperty { get; set; } | 941 | public BURN_MSI_PROPERTY ActionMsiProperty { get; set; } |
@@ -942,6 +949,11 @@ namespace WixToolset.Mba.Core | |||
942 | /// Gets or sets whether Burn is requested to set up an external UI handler. | 949 | /// Gets or sets whether Burn is requested to set up an external UI handler. |
943 | /// </summary> | 950 | /// </summary> |
944 | public bool DisableExternalUiHandler { get; set; } | 951 | public bool DisableExternalUiHandler { get; set; } |
952 | |||
953 | /// <summary> | ||
954 | /// Gets or sets the requested file versioning. | ||
955 | /// </summary> | ||
956 | public BOOTSTRAPPER_MSI_FILE_VERSIONING FileVersioning { get; set; } | ||
945 | } | 957 | } |
946 | 958 | ||
947 | /// <summary> | 959 | /// <summary> |
diff --git a/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs index 07c1a23b..259c407f 100644 --- a/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs +++ b/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs | |||
@@ -373,24 +373,18 @@ namespace WixToolset.Mba.Core | |||
373 | /// <summary> | 373 | /// <summary> |
374 | /// See <see cref="IDefaultBootstrapperApplication.PlanMsiPackage"/>. | 374 | /// See <see cref="IDefaultBootstrapperApplication.PlanMsiPackage"/>. |
375 | /// </summary> | 375 | /// </summary> |
376 | /// <param name="wzPackageId"></param> | ||
377 | /// <param name="fExecute"></param> | ||
378 | /// <param name="action"></param> | ||
379 | /// <param name="fCancel"></param> | ||
380 | /// <param name="actionMsiProperty"></param> | ||
381 | /// <param name="uiLevel"></param> | ||
382 | /// <param name="fDisableExternalUiHandler"></param> | ||
383 | /// <returns></returns> | ||
384 | [PreserveSig] | 376 | [PreserveSig] |
385 | [return: MarshalAs(UnmanagedType.I4)] | 377 | [return: MarshalAs(UnmanagedType.I4)] |
386 | int OnPlanMsiPackage( | 378 | int OnPlanMsiPackage( |
387 | [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, | 379 | [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, |
388 | [MarshalAs(UnmanagedType.Bool)] bool fExecute, | 380 | [MarshalAs(UnmanagedType.Bool)] bool fExecute, |
389 | [MarshalAs(UnmanagedType.U4)] ActionState action, | 381 | [MarshalAs(UnmanagedType.U4)] ActionState action, |
382 | [MarshalAs(UnmanagedType.U4)] BOOTSTRAPPER_MSI_FILE_VERSIONING recommendedFileVersioning, | ||
390 | [MarshalAs(UnmanagedType.Bool)] ref bool fCancel, | 383 | [MarshalAs(UnmanagedType.Bool)] ref bool fCancel, |
391 | [MarshalAs(UnmanagedType.U4)] ref BURN_MSI_PROPERTY actionMsiProperty, | 384 | [MarshalAs(UnmanagedType.U4)] ref BURN_MSI_PROPERTY actionMsiProperty, |
392 | [MarshalAs(UnmanagedType.U4)] ref INSTALLUILEVEL uiLevel, | 385 | [MarshalAs(UnmanagedType.U4)] ref INSTALLUILEVEL uiLevel, |
393 | [MarshalAs(UnmanagedType.Bool)] ref bool fDisableExternalUiHandler | 386 | [MarshalAs(UnmanagedType.Bool)] ref bool fDisableExternalUiHandler, |
387 | [MarshalAs(UnmanagedType.U4)] ref BOOTSTRAPPER_MSI_FILE_VERSIONING fileVersioning | ||
394 | ); | 388 | ); |
395 | 389 | ||
396 | /// <summary> | 390 | /// <summary> |
@@ -1852,6 +1846,25 @@ namespace WixToolset.Mba.Core | |||
1852 | } | 1846 | } |
1853 | 1847 | ||
1854 | /// <summary> | 1848 | /// <summary> |
1849 | /// The file versioning options for REINSTALLMODE, see https://docs.microsoft.com/en-us/windows/win32/msi/reinstallmode. | ||
1850 | /// </summary> | ||
1851 | public enum BOOTSTRAPPER_MSI_FILE_VERSIONING | ||
1852 | { | ||
1853 | /// <summary> | ||
1854 | /// o | ||
1855 | /// </summary> | ||
1856 | Older, | ||
1857 | /// <summary> | ||
1858 | /// e | ||
1859 | /// </summary> | ||
1860 | Equal, | ||
1861 | /// <summary> | ||
1862 | /// a | ||
1863 | /// </summary> | ||
1864 | All, | ||
1865 | } | ||
1866 | |||
1867 | /// <summary> | ||
1855 | /// The property Burn will add so the MSI can know the planned action for the package. | 1868 | /// The property Burn will add so the MSI can know the planned action for the package. |
1856 | /// </summary> | 1869 | /// </summary> |
1857 | public enum BURN_MSI_PROPERTY | 1870 | public enum BURN_MSI_PROPERTY |