@joebigelow / wix-1 / commits / ca5d60d2

WIXFEAT:4626,5386 - Add more BA events.

OnBeginMsiTransactionBegin, OnBeginMsiTransactionComplete, OnCommitMsiTransactionBegin, OnCommitMsiTransactionComplete, OnRollbackMsiTransactionBegin, OnRollbackMsiTransactionComplete, OnPauseAutomaticUpdatesBegin, OnPauseAutomaticUpdatesComplete, OnSystemRestorePointBegin, OnSystemRestorePointComplete

Sean Hall committed Dec 2, 2020 at 22:38 UTC ca5d60d267051b4b75e22763ad8eda06f0501451
20 files changed +893 -45
src/WixToolset.Mba.Core/BootstrapperApplication.cs
+270 -8
@@ -320,12 +320,62 @@ namespace WixToolset.Mba.Core
320 /// <summary>
321 /// Fired when the engine is about to launch the preapproved executable.
322 /// </summary>
323 - public event EventHandler<LaunchApprovedExeBeginArgs> LaunchApprovedExeBegin;
323 + public event EventHandler<LaunchApprovedExeBeginEventArgs> LaunchApprovedExeBegin;
324
325 /// <summary>
326 /// Fired when the engine has completed launching the preapproved executable.
327 /// </summary>
328 - public event EventHandler<LaunchApprovedExeCompleteArgs> LaunchApprovedExeComplete;
328 + public event EventHandler<LaunchApprovedExeCompleteEventArgs> LaunchApprovedExeComplete;
329 +
330 + /// <summary>
331 + /// Fired when the engine is about to begin an MSI transaction.
332 + /// </summary>
333 + public event EventHandler<BeginMsiTransactionBeginEventArgs> BeginMsiTransactionBegin;
334 +
335 + /// <summary>
336 + /// Fired when the engine has completed beginning an MSI transaction.
337 + /// </summary>
338 + public event EventHandler<BeginMsiTransactionCompleteEventArgs> BeginMsiTransactionComplete;
339 +
340 + /// <summary>
341 + /// Fired when the engine is about to commit an MSI transaction.
342 + /// </summary>
343 + public event EventHandler<CommitMsiTransactionBeginEventArgs> CommitMsiTransactionBegin;
344 +
345 + /// <summary>
346 + /// Fired when the engine has completed comitting an MSI transaction.
347 + /// </summary>
348 + public event EventHandler<CommitMsiTransactionCompleteEventArgs> CommitMsiTransactionComplete;
349 +
350 + /// <summary>
351 + /// Fired when the engine is about to rollback an MSI transaction.
352 + /// </summary>
353 + public event EventHandler<RollbackMsiTransactionBeginEventArgs> RollbackMsiTransactionBegin;
354 +
355 + /// <summary>
356 + /// Fired when the engine has completed rolling back an MSI transaction.
357 + /// </summary>
358 + public event EventHandler<RollbackMsiTransactionCompleteEventArgs> RollbackMsiTransactionComplete;
359 +
360 + /// <summary>
361 + /// Fired when the engine is about to pause Windows automatic updates.
362 + /// </summary>
363 + public event EventHandler<PauseAutomaticUpdatesBeginEventArgs> PauseAutomaticUpdatesBegin;
364 +
365 + /// <summary>
366 + /// Fired when the engine has completed pausing Windows automatic updates.
367 + /// </summary>
368 + public event EventHandler<PauseAutomaticUpdatesCompleteEventArgs> PauseAutomaticUpdatesComplete;
369 +
370 + /// <summary>
371 + /// Fired when the engine is about to take a system restore point.
372 + /// </summary>
373 + public event EventHandler<SystemRestorePointBeginEventArgs> SystemRestorePointBegin;
374 +
375 + /// <summary>
376 + /// Fired when the engine has completed taking a system restore point.
377 + /// </summary>
378 + public event EventHandler<SystemRestorePointCompleteEventArgs> SystemRestorePointComplete;
379
380 /// <summary>
381 /// Entry point that is called when the bootstrapper application is ready to run.
@@ -1071,9 +1121,9 @@ namespace WixToolset.Mba.Core
1121 /// Called by the engine before trying to launch the preapproved executable.
1122 /// </summary>
1123 /// <param name="args">Additional arguments for this event.</param>
1074 - protected virtual void OnLaunchApprovedExeBegin(LaunchApprovedExeBeginArgs args)
1124 + protected virtual void OnLaunchApprovedExeBegin(LaunchApprovedExeBeginEventArgs args)
1125 {
1076 - EventHandler<LaunchApprovedExeBeginArgs> handler = this.LaunchApprovedExeBegin;
1126 + EventHandler<LaunchApprovedExeBeginEventArgs> handler = this.LaunchApprovedExeBegin;
1127 if (null != handler)
1128 {
1129 handler(this, args);
@@ -1084,9 +1134,139 @@ namespace WixToolset.Mba.Core
1134 /// Called by the engine after trying to launch the preapproved executable.
1135 /// </summary>
1136 /// <param name="args">Additional arguments for this event.</param>
1087 - protected virtual void OnLaunchApprovedExeComplete(LaunchApprovedExeCompleteArgs args)
1137 + protected virtual void OnLaunchApprovedExeComplete(LaunchApprovedExeCompleteEventArgs args)
1138 + {
1139 + EventHandler<LaunchApprovedExeCompleteEventArgs> handler = this.LaunchApprovedExeComplete;
1140 + if (null != handler)
1141 + {
1142 + handler(this, args);
1143 + }
1144 + }
1145 +
1146 + /// <summary>
1147 + /// Called by the engine before beginning an MSI transaction.
1148 + /// </summary>
1149 + /// <param name="args">Additional arguments for this event.</param>
1150 + protected virtual void OnBeginMsiTransactionBegin(BeginMsiTransactionBeginEventArgs args)
1151 + {
1152 + EventHandler<BeginMsiTransactionBeginEventArgs> handler = this.BeginMsiTransactionBegin;
1153 + if (null != handler)
1154 + {
1155 + handler(this, args);
1156 + }
1157 + }
1158 +
1159 + /// <summary>
1160 + /// Called by the engine after beginning an MSI transaction.
1161 + /// </summary>
1162 + /// <param name="args">Additional arguments for this event.</param>
1163 + protected virtual void OnBeginMsiTransactionComplete(BeginMsiTransactionCompleteEventArgs args)
1164 + {
1165 + EventHandler<BeginMsiTransactionCompleteEventArgs> handler = this.BeginMsiTransactionComplete;
1166 + if (null != handler)
1167 + {
1168 + handler(this, args);
1169 + }
1170 + }
1171 +
1172 + /// <summary>
1173 + /// Called by the engine before committing an MSI transaction.
1174 + /// </summary>
1175 + /// <param name="args">Additional arguments for this event.</param>
1176 + protected virtual void OnCommitMsiTransactionBegin(CommitMsiTransactionBeginEventArgs args)
1177 + {
1178 + EventHandler<CommitMsiTransactionBeginEventArgs> handler = this.CommitMsiTransactionBegin;
1179 + if (null != handler)
1180 + {
1181 + handler(this, args);
1182 + }
1183 + }
1184 +
1185 + /// <summary>
1186 + /// Called by the engine after committing an MSI transaction.
1187 + /// </summary>
1188 + /// <param name="args">Additional arguments for this event.</param>
1189 + protected virtual void OnCommitMsiTransactionComplete(CommitMsiTransactionCompleteEventArgs args)
1190 + {
1191 + EventHandler<CommitMsiTransactionCompleteEventArgs> handler = this.CommitMsiTransactionComplete;
1192 + if (null != handler)
1193 + {
1194 + handler(this, args);
1195 + }
1196 + }
1197 +
1198 + /// <summary>
1199 + /// Called by the engine before rolling back an MSI transaction.
1200 + /// </summary>
1201 + /// <param name="args">Additional arguments for this event.</param>
1202 + protected virtual void OnRollbackMsiTransactionBegin(RollbackMsiTransactionBeginEventArgs args)
1203 + {
1204 + EventHandler<RollbackMsiTransactionBeginEventArgs> handler = this.RollbackMsiTransactionBegin;
1205 + if (null != handler)
1206 + {
1207 + handler(this, args);
1208 + }
1209 + }
1210 +
1211 + /// <summary>
1212 + /// Called by the engine after rolling back an MSI transaction.
1213 + /// </summary>
1214 + /// <param name="args">Additional arguments for this event.</param>
1215 + protected virtual void OnRollbackMsiTransactionComplete(RollbackMsiTransactionCompleteEventArgs args)
1216 + {
1217 + EventHandler<RollbackMsiTransactionCompleteEventArgs> handler = this.RollbackMsiTransactionComplete;
1218 + if (null != handler)
1219 + {
1220 + handler(this, args);
1221 + }
1222 + }
1223 +
1224 + /// <summary>
1225 + /// Called by the engine before pausing Windows automatic updates.
1226 + /// </summary>
1227 + /// <param name="args">Additional arguments for this event.</param>
1228 + protected virtual void OnPauseAutomaticUpdatesBegin(PauseAutomaticUpdatesBeginEventArgs args)
1229 + {
1230 + EventHandler<PauseAutomaticUpdatesBeginEventArgs> handler = this.PauseAutomaticUpdatesBegin;
1231 + if (null != handler)
1232 + {
1233 + handler(this, args);
1234 + }
1235 + }
1236 +
1237 + /// <summary>
1238 + /// Called by the engine after pausing Windows automatic updates.
1239 + /// </summary>
1240 + /// <param name="args">Additional arguments for this event.</param>
1241 + protected virtual void OnPauseAutomaticUpdatesComplete(PauseAutomaticUpdatesCompleteEventArgs args)
1242 + {
1243 + EventHandler<PauseAutomaticUpdatesCompleteEventArgs> handler = this.PauseAutomaticUpdatesComplete;
1244 + if (null != handler)
1245 + {
1246 + handler(this, args);
1247 + }
1248 + }
1249 +
1250 + /// <summary>
1251 + /// Called by the engine before taking a system restore point.
1252 + /// </summary>
1253 + /// <param name="args">Additional arguments for this event.</param>
1254 + protected virtual void OnSystemRestorePointBegin(SystemRestorePointBeginEventArgs args)
1255 {
1089 - EventHandler<LaunchApprovedExeCompleteArgs> handler = this.LaunchApprovedExeComplete;
1256 + EventHandler<SystemRestorePointBeginEventArgs> handler = this.SystemRestorePointBegin;
1257 + if (null != handler)
1258 + {
1259 + handler(this, args);
1260 + }
1261 + }
1262 +
1263 + /// <summary>
1264 + /// Called by the engine after taking a system restore point.
1265 + /// </summary>
1266 + /// <param name="args">Additional arguments for this event.</param>
1267 + protected virtual void OnSystemRestorePointComplete(SystemRestorePointCompleteEventArgs args)
1268 + {
1269 + EventHandler<SystemRestorePointCompleteEventArgs> handler = this.SystemRestorePointComplete;
1270 if (null != handler)
1271 {
1272 handler(this, args);
@@ -1588,7 +1768,7 @@ namespace WixToolset.Mba.Core
1768
1769 int IBootstrapperApplication.OnLaunchApprovedExeBegin(ref bool fCancel)
1770 {
1591 - LaunchApprovedExeBeginArgs args = new LaunchApprovedExeBeginArgs(fCancel);
1771 + LaunchApprovedExeBeginEventArgs args = new LaunchApprovedExeBeginEventArgs(fCancel);
1772 this.OnLaunchApprovedExeBegin(args);
1773
1774 fCancel = args.Cancel;
@@ -1597,12 +1777,94 @@ namespace WixToolset.Mba.Core
1777
1778 int IBootstrapperApplication.OnLaunchApprovedExeComplete(int hrStatus, int processId)
1779 {
1600 - LaunchApprovedExeCompleteArgs args = new LaunchApprovedExeCompleteArgs(hrStatus, processId);
1780 + LaunchApprovedExeCompleteEventArgs args = new LaunchApprovedExeCompleteEventArgs(hrStatus, processId);
1781 this.OnLaunchApprovedExeComplete(args);
1782
1783 return args.HResult;
1784 }
1785
1786 + int IBootstrapperApplication.OnBeginMsiTransactionBegin(string transactionId, ref bool fCancel)
1787 + {
1788 + BeginMsiTransactionBeginEventArgs args = new BeginMsiTransactionBeginEventArgs(transactionId, fCancel);
1789 + this.OnBeginMsiTransactionBegin(args);
1790 +
1791 + fCancel = args.Cancel;
1792 + return args.HResult;
1793 + }
1794 +
1795 + int IBootstrapperApplication.OnBeginMsiTransactionComplete(string transactionId, int hrStatus)
1796 + {
1797 + BeginMsiTransactionCompleteEventArgs args = new BeginMsiTransactionCompleteEventArgs(transactionId, hrStatus);
1798 + this.OnBeginMsiTransactionComplete(args);
1799 +
1800 + return args.HResult;
1801 + }
1802 +
1803 + int IBootstrapperApplication.OnCommitMsiTransactionBegin(string transactionId, ref bool fCancel)
1804 + {
1805 + CommitMsiTransactionBeginEventArgs args = new CommitMsiTransactionBeginEventArgs(transactionId, fCancel);
1806 + this.OnCommitMsiTransactionBegin(args);
1807 +
1808 + fCancel = args.Cancel;
1809 + return args.HResult;
1810 + }
1811 +
1812 + int IBootstrapperApplication.OnCommitMsiTransactionComplete(string transactionId, int hrStatus)
1813 + {
1814 + CommitMsiTransactionCompleteEventArgs args = new CommitMsiTransactionCompleteEventArgs(transactionId, hrStatus);
1815 + this.OnCommitMsiTransactionComplete(args);
1816 +
1817 + return args.HResult;
1818 + }
1819 +
1820 + int IBootstrapperApplication.OnRollbackMsiTransactionBegin(string transactionId)
1821 + {
1822 + RollbackMsiTransactionBeginEventArgs args = new RollbackMsiTransactionBeginEventArgs(transactionId);
1823 + this.OnRollbackMsiTransactionBegin(args);
1824 +
1825 + return args.HResult;
1826 + }
1827 +
1828 + int IBootstrapperApplication.OnRollbackMsiTransactionComplete(string transactionId, int hrStatus)
1829 + {
1830 + RollbackMsiTransactionCompleteEventArgs args = new RollbackMsiTransactionCompleteEventArgs(transactionId, hrStatus);
1831 + this.OnRollbackMsiTransactionComplete(args);
1832 +
1833 + return args.HResult;
1834 + }
1835 +
1836 + int IBootstrapperApplication.OnPauseAutomaticUpdatesBegin()
1837 + {
1838 + PauseAutomaticUpdatesBeginEventArgs args = new PauseAutomaticUpdatesBeginEventArgs();
1839 + this.OnPauseAutomaticUpdatesBegin(args);
1840 +
1841 + return args.HResult;
1842 + }
1843 +
1844 + int IBootstrapperApplication.OnPauseAutomaticUpdatesComplete(int hrStatus)
1845 + {
1846 + PauseAutomaticUpdatesCompleteEventArgs args = new PauseAutomaticUpdatesCompleteEventArgs(hrStatus);
1847 + this.OnPauseAutomaticUpdatesComplete(args);
1848 +
1849 + return args.HResult;
1850 + }
1851 +
1852 + int IBootstrapperApplication.OnSystemRestorePointBegin()
1853 + {
1854 + SystemRestorePointBeginEventArgs args = new SystemRestorePointBeginEventArgs();
1855 + this.OnSystemRestorePointBegin(args);
1856 +
1857 + return args.HResult;
1858 + }
1859 +
1860 + int IBootstrapperApplication.OnSystemRestorePointComplete(int hrStatus)
1861 + {
1862 + SystemRestorePointCompleteEventArgs args = new SystemRestorePointCompleteEventArgs(hrStatus);
1863 + this.OnSystemRestorePointComplete(args);
1864 +
1865 + return args.HResult;
1866 + }
1867 +
1868 int IBootstrapperApplication.BAProc(int message, IntPtr pvArgs, IntPtr pvResults, IntPtr pvContext)
1869 {
1870 switch (message)
src/WixToolset.Mba.Core/EventArgs.cs
+187 -4
@@ -1948,9 +1948,9 @@ namespace WixToolset.Mba.Core
1948 /// Additional arguments passed by the engine before it tries to launch the preapproved executable.
1949 /// </summary>
1950 [Serializable]
1951 - public class LaunchApprovedExeBeginArgs : CancellableHResultEventArgs
1951 + public class LaunchApprovedExeBeginEventArgs : CancellableHResultEventArgs
1952 {
1953 - public LaunchApprovedExeBeginArgs(bool cancelRecommendation)
1953 + public LaunchApprovedExeBeginEventArgs(bool cancelRecommendation)
1954 : base(cancelRecommendation)
1955 {
1956 }
@@ -1960,11 +1960,11 @@ namespace WixToolset.Mba.Core
1960 /// Additional arguments passed by the engine after it finished trying to launch the preapproved executable.
1961 /// </summary>
1962 [Serializable]
1963 - public class LaunchApprovedExeCompleteArgs : StatusEventArgs
1963 + public class LaunchApprovedExeCompleteEventArgs : StatusEventArgs
1964 {
1965 private int processId;
1966
1967 - public LaunchApprovedExeCompleteArgs(int hrStatus, int processId)
1967 + public LaunchApprovedExeCompleteEventArgs(int hrStatus, int processId)
1968 : base(hrStatus)
1969 {
1970 this.processId = processId;
@@ -1979,4 +1979,187 @@ namespace WixToolset.Mba.Core
1979 get { return this.processId; }
1980 }
1981 }
1982 +
1983 + /// <summary>
1984 + /// Additional arguments passed by the engine before beginning an MSI transaction.
1985 + /// </summary>
1986 + [Serializable]
1987 + public class BeginMsiTransactionBeginEventArgs : CancellableHResultEventArgs
1988 + {
1989 + private string transactionId;
1990 +
1991 + public BeginMsiTransactionBeginEventArgs(string transactionId, bool cancelRecommendation)
1992 + : base(cancelRecommendation)
1993 + {
1994 + this.transactionId = transactionId;
1995 + }
1996 +
1997 + /// <summary>
1998 + /// Gets the MSI transaction Id.
1999 + /// </summary>
2000 + public string TransactionId
2001 + {
2002 + get { return this.transactionId; }
2003 + }
2004 + }
2005 +
2006 + /// <summary>
2007 + /// Additional arguments passed by the engine after beginning an MSI transaction.
2008 + /// </summary>
2009 + [Serializable]
2010 + public class BeginMsiTransactionCompleteEventArgs : StatusEventArgs
2011 + {
2012 + private string transactionId;
2013 +
2014 + public BeginMsiTransactionCompleteEventArgs(string transactionId, int hrStatus)
2015 + : base(hrStatus)
2016 + {
2017 + this.transactionId = transactionId;
2018 + }
2019 +
2020 + /// <summary>
2021 + /// Gets the MSI transaction Id.
2022 + /// </summary>
2023 + public string TransactionId
2024 + {
2025 + get { return this.transactionId; }
2026 + }
2027 + }
2028 +
2029 + /// <summary>
2030 + /// Additional arguments passed by the engine before committing an MSI transaction.
2031 + /// </summary>
2032 + [Serializable]
2033 + public class CommitMsiTransactionBeginEventArgs : CancellableHResultEventArgs
2034 + {
2035 + private string transactionId;
2036 +
2037 + public CommitMsiTransactionBeginEventArgs(string transactionId, bool cancelRecommendation)
2038 + : base(cancelRecommendation)
2039 + {
2040 + this.transactionId = transactionId;
2041 + }
2042 +
2043 + /// <summary>
2044 + /// Gets the MSI transaction Id.
2045 + /// </summary>
2046 + public string TransactionId
2047 + {
2048 + get { return this.transactionId; }
2049 + }
2050 + }
2051 +
2052 + /// <summary>
2053 + /// Additional arguments passed by the engine after committing an MSI transaction.
2054 + /// </summary>
2055 + [Serializable]
2056 + public class CommitMsiTransactionCompleteEventArgs : StatusEventArgs
2057 + {
2058 + private string transactionId;
2059 +
2060 + public CommitMsiTransactionCompleteEventArgs(string transactionId, int hrStatus)
2061 + : base(hrStatus)
2062 + {
2063 + this.transactionId = transactionId;
2064 + }
2065 +
2066 + /// <summary>
2067 + /// Gets the MSI transaction Id.
2068 + /// </summary>
2069 + public string TransactionId
2070 + {
2071 + get { return this.transactionId; }
2072 + }
2073 + }
2074 +
2075 + /// <summary>
2076 + /// Additional arguments passed by the engine before rolling back an MSI transaction.
2077 + /// </summary>
2078 + [Serializable]
2079 + public class RollbackMsiTransactionBeginEventArgs : HResultEventArgs
2080 + {
2081 + private string transactionId;
2082 +
2083 + public RollbackMsiTransactionBeginEventArgs(string transactionId)
2084 + {
2085 + this.transactionId = transactionId;
2086 + }
2087 +
2088 + /// <summary>
2089 + /// Gets the MSI transaction Id.
2090 + /// </summary>
2091 + public string TransactionId
2092 + {
2093 + get { return this.transactionId; }
2094 + }
2095 + }
2096 +
2097 + /// <summary>
2098 + /// Additional arguments passed by the engine after rolling back an MSI transaction.
2099 + /// </summary>
2100 + [Serializable]
2101 + public class RollbackMsiTransactionCompleteEventArgs : StatusEventArgs
2102 + {
2103 + private string transactionId;
2104 +
2105 + public RollbackMsiTransactionCompleteEventArgs(string transactionId, int hrStatus)
2106 + : base(hrStatus)
2107 + {
2108 + this.transactionId = transactionId;
2109 + }
2110 +
2111 + /// <summary>
2112 + /// Gets the MSI transaction Id.
2113 + /// </summary>
2114 + public string TransactionId
2115 + {
2116 + get { return this.transactionId; }
2117 + }
2118 + }
2119 +
2120 + /// <summary>
2121 + /// Additional arguments passed by the engine before pausing Windows automatic updates.
2122 + /// </summary>
2123 + [Serializable]
2124 + public class PauseAutomaticUpdatesBeginEventArgs : HResultEventArgs
2125 + {
2126 + public PauseAutomaticUpdatesBeginEventArgs()
2127 + {
2128 + }
2129 + }
2130 +
2131 + /// <summary>
2132 + /// Additional arguments passed by the engine after pausing Windows automatic updates.
2133 + /// </summary>
2134 + [Serializable]
2135 + public class PauseAutomaticUpdatesCompleteEventArgs : StatusEventArgs
2136 + {
2137 + public PauseAutomaticUpdatesCompleteEventArgs(int hrStatus)
2138 + : base(hrStatus)
2139 + {
2140 + }
2141 + }
2142 +
2143 + /// <summary>
2144 + /// Additional arguments passed by the engine before taking a system restore point.
2145 + /// </summary>
2146 + [Serializable]
2147 + public class SystemRestorePointBeginEventArgs : HResultEventArgs
2148 + {
2149 + public SystemRestorePointBeginEventArgs()
2150 + {
2151 + }
2152 + }
2153 +
2154 + /// <summary>
2155 + /// Additional arguments passed by the engine after taking a system restore point.
2156 + /// </summary>
2157 + [Serializable]
2158 + public class SystemRestorePointCompleteEventArgs : StatusEventArgs
2159 + {
2160 + public SystemRestorePointCompleteEventArgs(int hrStatus)
2161 + : base(hrStatus)
2162 + {
2163 + }
2164 + }
2165 }
src/WixToolset.Mba.Core/IBootstrapperApplication.cs
+63 -1
@@ -12,7 +12,6 @@ namespace WixToolset.Mba.Core
12 [ComImport]
13 [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
14 [Guid("53C31D56-49C0-426B-AB06-099D717C67FE")]
15 - [GeneratedCodeAttribute("WixToolset.Bootstrapper.InteropCodeGenerator", "1.0.0.0")]
15 public interface IBootstrapperApplication
16 {
17 [PreserveSig]
@@ -500,6 +499,69 @@ namespace WixToolset.Mba.Core
499 int processId
500 );
501
502 + [PreserveSig]
503 + [return: MarshalAs(UnmanagedType.I4)]
504 + int OnBeginMsiTransactionBegin(
505 + [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
506 + [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
507 + );
508 +
509 + [PreserveSig]
510 + [return: MarshalAs(UnmanagedType.I4)]
511 + int OnBeginMsiTransactionComplete(
512 + [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
513 + int hrStatus
514 + );
515 +
516 + [PreserveSig]
517 + [return: MarshalAs(UnmanagedType.I4)]
518 + int OnCommitMsiTransactionBegin(
519 + [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
520 + [MarshalAs(UnmanagedType.Bool)] ref bool fCancel
521 + );
522 +
523 + [PreserveSig]
524 + [return: MarshalAs(UnmanagedType.I4)]
525 + int OnCommitMsiTransactionComplete(
526 + [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
527 + int hrStatus
528 + );
529 +
530 + [PreserveSig]
531 + [return: MarshalAs(UnmanagedType.I4)]
532 + int OnRollbackMsiTransactionBegin(
533 + [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId
534 + );
535 +
536 + [PreserveSig]
537 + [return: MarshalAs(UnmanagedType.I4)]
538 + int OnRollbackMsiTransactionComplete(
539 + [MarshalAs(UnmanagedType.LPWStr)] string wzTransactionId,
540 + int hrStatus
541 + );
542 +
543 + [PreserveSig]
544 + [return: MarshalAs(UnmanagedType.I4)]
545 + int OnPauseAutomaticUpdatesBegin(
546 + );
547 +
548 + [PreserveSig]
549 + [return: MarshalAs(UnmanagedType.I4)]
550 + int OnPauseAutomaticUpdatesComplete(
551 + int hrStatus
552 + );
553 +
554 + [PreserveSig]
555 + [return: MarshalAs(UnmanagedType.I4)]
556 + int OnSystemRestorePointBegin(
557 + );
558 +
559 + [PreserveSig]
560 + [return: MarshalAs(UnmanagedType.I4)]
561 + int OnSystemRestorePointComplete(
562 + int hrStatus
563 + );
564 +
565 [PreserveSig]
566 [return: MarshalAs(UnmanagedType.I4)]
567 int BAProc(
src/WixToolset.Mba.Core/IDefaultBootstrapperApplication.cs
+13 -2
@@ -8,6 +8,8 @@ namespace WixToolset.Mba.Core
8 {
9 event EventHandler<ApplyBeginEventArgs> ApplyBegin;
10 event EventHandler<ApplyCompleteEventArgs> ApplyComplete;
11 + event EventHandler<BeginMsiTransactionBeginEventArgs> BeginMsiTransactionBegin;
12 + event EventHandler<BeginMsiTransactionCompleteEventArgs> BeginMsiTransactionComplete;
13 event EventHandler<CacheAcquireBeginEventArgs> CacheAcquireBegin;
14 event EventHandler<CacheAcquireCompleteEventArgs> CacheAcquireComplete;
15 event EventHandler<CacheAcquireProgressEventArgs> CacheAcquireProgress;
@@ -17,6 +19,8 @@ namespace WixToolset.Mba.Core
19 event EventHandler<CachePackageCompleteEventArgs> CachePackageComplete;
20 event EventHandler<CacheVerifyBeginEventArgs> CacheVerifyBegin;
21 event EventHandler<CacheVerifyCompleteEventArgs> CacheVerifyComplete;
22 + event EventHandler<CommitMsiTransactionBeginEventArgs> CommitMsiTransactionBegin;
23 + event EventHandler<CommitMsiTransactionCompleteEventArgs> CommitMsiTransactionComplete;
24 event EventHandler<DetectBeginEventArgs> DetectBegin;
25 event EventHandler<DetectCompatibleMsiPackageEventArgs> DetectCompatibleMsiPackage;
26 event EventHandler<DetectCompleteEventArgs> DetectComplete;
@@ -41,13 +45,16 @@ namespace WixToolset.Mba.Core
45 event EventHandler<ExecutePackageCompleteEventArgs> ExecutePackageComplete;
46 event EventHandler<ExecutePatchTargetEventArgs> ExecutePatchTarget;
47 event EventHandler<ExecuteProgressEventArgs> ExecuteProgress;
44 - event EventHandler<LaunchApprovedExeBeginArgs> LaunchApprovedExeBegin;
45 - event EventHandler<LaunchApprovedExeCompleteArgs> LaunchApprovedExeComplete;
48 + event EventHandler<LaunchApprovedExeBeginEventArgs> LaunchApprovedExeBegin;
49 + event EventHandler<LaunchApprovedExeCompleteEventArgs> LaunchApprovedExeComplete;
50 + event EventHandler<PauseAutomaticUpdatesBeginEventArgs> PauseAutomaticUpdatesBegin;
51 + event EventHandler<PauseAutomaticUpdatesCompleteEventArgs> PauseAutomaticUpdatesComplete;
52 event EventHandler<PlanBeginEventArgs> PlanBegin;
53 event EventHandler<PlanCompatibleMsiPackageBeginEventArgs> PlanCompatibleMsiPackageBegin;
54 event EventHandler<PlanCompatibleMsiPackageCompleteEventArgs> PlanCompatibleMsiPackageComplete;
55 event EventHandler<PlanCompleteEventArgs> PlanComplete;
56 event EventHandler<PlanMsiFeatureEventArgs> PlanMsiFeature;
57 + event EventHandler<PlanMsiPackageEventArgs> PlanMsiPackage;
58 event EventHandler<PlanPackageBeginEventArgs> PlanPackageBegin;
59 event EventHandler<PlanPackageCompleteEventArgs> PlanPackageComplete;
60 event EventHandler<PlanRelatedBundleEventArgs> PlanRelatedBundle;
@@ -56,8 +63,12 @@ namespace WixToolset.Mba.Core
63 event EventHandler<RegisterBeginEventArgs> RegisterBegin;
64 event EventHandler<RegisterCompleteEventArgs> RegisterComplete;
65 event EventHandler<ResolveSourceEventArgs> ResolveSource;
66 + event EventHandler<RollbackMsiTransactionBeginEventArgs> RollbackMsiTransactionBegin;
67 + event EventHandler<RollbackMsiTransactionCompleteEventArgs> RollbackMsiTransactionComplete;
68 event EventHandler<ShutdownEventArgs> Shutdown;
69 event EventHandler<StartupEventArgs> Startup;
70 + event EventHandler<SystemRestorePointBeginEventArgs> SystemRestorePointBegin;
71 + event EventHandler<SystemRestorePointCompleteEventArgs> SystemRestorePointComplete;
72 event EventHandler<SystemShutdownEventArgs> SystemShutdown;
73 event EventHandler<UnregisterBeginEventArgs> UnregisterBegin;
74 event EventHandler<UnregisterCompleteEventArgs> UnregisterComplete;
src/balutil/balutil.vcxproj
+4 -4
@@ -2,8 +2,8 @@
2 <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 - <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" />
6 - <Import Project="..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" />
5 + <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" />
6 + <Import Project="..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" />
7
8 <ItemGroup Label="ProjectConfigurations">
9 <ProjectConfiguration Include="Debug|ARM64">
@@ -98,8 +98,8 @@
98 <PropertyGroup>
99 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
100 </PropertyGroup>
101 - <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props'))" />
102 - <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props'))" />
101 + <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props'))" />
102 + <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props'))" />
103 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" />
104 </Target>
105 </Project>
src/balutil/inc/BAFunctions.h
+10
@@ -65,6 +65,16 @@ enum BA_FUNCTIONS_MESSAGE
65 BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN,
66 BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE,
67 BA_FUNCTIONS_MESSAGE_ONPLANMSIPACKAGE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE,
68 + BA_FUNCTIONS_MESSAGE_ONBEGINMSITRANSACTIONBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONBEGIN,
69 + BA_FUNCTIONS_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE,
70 + BA_FUNCTIONS_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN,
71 + BA_FUNCTIONS_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE,
72 + BA_FUNCTIONS_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN,
73 + BA_FUNCTIONS_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE,
74 + BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN,
75 + BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE,
76 + BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN,
77 + BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE = BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE,
78
79 BA_FUNCTIONS_MESSAGE_ONTHEMELOADED = 1024,
80 BA_FUNCTIONS_MESSAGE_WNDPROC,
src/balutil/inc/BalBaseBAFunctions.h
+73
@@ -612,6 +612,79 @@ public: // IBootstrapperApplication
612 return S_OK;
613 }
614
615 + virtual STDMETHODIMP OnBeginMsiTransactionBegin(
616 + __in_z LPCWSTR /*wzTransactionId*/,
617 + __inout BOOL* /*pfCancel*/
618 + )
619 + {
620 + return S_OK;
621 + }
622 +
623 + virtual STDMETHODIMP OnBeginMsiTransactionComplete(
624 + __in_z LPCWSTR /*wzTransactionId*/,
625 + __in HRESULT /*hrStatus*/
626 + )
627 + {
628 + return S_OK;
629 + }
630 +
631 + virtual STDMETHODIMP OnCommitMsiTransactionBegin(
632 + __in_z LPCWSTR /*wzTransactionId*/,
633 + __inout BOOL* /*pfCancel*/
634 + )
635 + {
636 + return S_OK;
637 + }
638 +
639 + virtual STDMETHODIMP OnCommitMsiTransactionComplete(
640 + __in_z LPCWSTR /*wzTransactionId*/,
641 + __in HRESULT /*hrStatus*/
642 + )
643 + {
644 + return S_OK;
645 + }
646 +
647 + virtual STDMETHODIMP OnRollbackMsiTransactionBegin(
648 + __in_z LPCWSTR /*wzTransactionId*/
649 + )
650 + {
651 + return S_OK;
652 + }
653 +
654 + virtual STDMETHODIMP OnRollbackMsiTransactionComplete(
655 + __in_z LPCWSTR /*wzTransactionId*/,
656 + __in HRESULT /*hrStatus*/
657 + )
658 + {
659 + return S_OK;
660 + }
661 +
662 + virtual STDMETHODIMP OnPauseAutomaticUpdatesBegin(
663 + )
664 + {
665 + return S_OK;
666 + }
667 +
668 + virtual STDMETHODIMP OnPauseAutomaticUpdatesComplete(
669 + __in HRESULT /*hrStatus*/
670 + )
671 + {
672 + return S_OK;
673 + }
674 +
675 + virtual STDMETHODIMP OnSystemRestorePointBegin(
676 + )
677 + {
678 + return S_OK;
679 + }
680 +
681 + virtual STDMETHODIMP OnSystemRestorePointComplete(
682 + __in HRESULT /*hrStatus*/
683 + )
684 + {
685 + return S_OK;
686 + }
687 +
688 virtual STDMETHODIMP_(HRESULT) BAProc(
689 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/,
690 __in const LPVOID /*pvArgs*/,
src/balutil/inc/BalBaseBAFunctionsProc.h
+10
@@ -100,6 +100,16 @@ static HRESULT WINAPI BalBaseBAFunctionsProc(
100 case BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXEBEGIN:
101 case BA_FUNCTIONS_MESSAGE_ONLAUNCHAPPROVEDEXECOMPLETE:
102 case BA_FUNCTIONS_MESSAGE_ONPLANMSIPACKAGE:
103 + case BA_FUNCTIONS_MESSAGE_ONBEGINMSITRANSACTIONBEGIN:
104 + case BA_FUNCTIONS_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE:
105 + case BA_FUNCTIONS_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN:
106 + case BA_FUNCTIONS_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE:
107 + case BA_FUNCTIONS_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN:
108 + case BA_FUNCTIONS_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE:
109 + case BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN:
110 + case BA_FUNCTIONS_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE:
111 + case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN:
112 + case BA_FUNCTIONS_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE:
113 hr = BalBaseBootstrapperApplicationProc((BOOTSTRAPPER_APPLICATION_MESSAGE)message, pvArgs, pvResults, pvContext);
114 break;
115 case BA_FUNCTIONS_MESSAGE_ONTHEMELOADED:
src/balutil/inc/BalBaseBootstrapperApplication.h
+75
@@ -798,6 +798,81 @@ public: // IBootstrapperApplication
798 return S_OK;
799 }
800
801 + virtual STDMETHODIMP OnBeginMsiTransactionBegin(
802 + __in_z LPCWSTR /*wzTransactionId*/,
803 + __inout BOOL* pfCancel
804 + )
805 + {
806 + *pfCancel |= CheckCanceled();
807 + return S_OK;
808 + }
809 +
810 + virtual STDMETHODIMP OnBeginMsiTransactionComplete(
811 + __in_z LPCWSTR /*wzTransactionId*/,
812 + __in HRESULT /*hrStatus*/
813 + )
814 + {
815 + return S_OK;
816 + }
817 +
818 + virtual STDMETHODIMP OnCommitMsiTransactionBegin(
819 + __in_z LPCWSTR /*wzTransactionId*/,
820 + __inout BOOL* pfCancel
821 + )
822 + {
823 + *pfCancel |= CheckCanceled();
824 + return S_OK;
825 + }
826 +
827 + virtual STDMETHODIMP OnCommitMsiTransactionComplete(
828 + __in_z LPCWSTR /*wzTransactionId*/,
829 + __in HRESULT /*hrStatus*/
830 + )
831 + {
832 + return S_OK;
833 + }
834 +
835 + virtual STDMETHODIMP OnRollbackMsiTransactionBegin(
836 + __in_z LPCWSTR /*wzTransactionId*/
837 + )
838 + {
839 + return S_OK;
840 + }
841 +
842 + virtual STDMETHODIMP OnRollbackMsiTransactionComplete(
843 + __in_z LPCWSTR /*wzTransactionId*/,
844 + __in HRESULT /*hrStatus*/
845 + )
846 + {
847 + return S_OK;
848 + }
849 +
850 + virtual STDMETHODIMP OnPauseAutomaticUpdatesBegin(
851 + )
852 + {
853 + return S_OK;
854 + }
855 +
856 + virtual STDMETHODIMP OnPauseAutomaticUpdatesComplete(
857 + __in HRESULT /*hrStatus*/
858 + )
859 + {
860 + return S_OK;
861 + }
862 +
863 + virtual STDMETHODIMP OnSystemRestorePointBegin(
864 + )
865 + {
866 + return S_OK;
867 + }
868 +
869 + virtual STDMETHODIMP OnSystemRestorePointComplete(
870 + __in HRESULT /*hrStatus*/
871 + )
872 + {
873 + return S_OK;
874 + }
875 +
876 virtual STDMETHODIMP_(HRESULT) BAProc(
877 __in BOOTSTRAPPER_APPLICATION_MESSAGE /*message*/,
878 __in const LPVOID /*pvArgs*/,
src/balutil/inc/BalBaseBootstrapperApplicationProc.h
+119
@@ -513,6 +513,96 @@ static HRESULT BalBaseBAProcOnPlanMsiPackage(
513 return pBA->OnPlanMsiPackage(pArgs->wzPackageId, pArgs->fExecute, pArgs->action, &pResults->fCancel, &pResults->actionMsiProperty, &pResults->uiLevel, &pResults->fDisableExternalUiHandler);
514 }
515
516 +static HRESULT BalBaseBAProcOnBeginMsiTransactionBegin(
517 + __in IBootstrapperApplication* pBA,
518 + __in BA_ONBEGINMSITRANSACTIONBEGIN_ARGS* pArgs,
519 + __inout BA_ONBEGINMSITRANSACTIONBEGIN_RESULTS* pResults
520 + )
521 +{
522 + return pBA->OnBeginMsiTransactionBegin(pArgs->wzTransactionId, &pResults->fCancel);
523 +}
524 +
525 +static HRESULT BalBaseBAProcOnBeginMsiTransactionComplete(
526 + __in IBootstrapperApplication* pBA,
527 + __in BA_ONBEGINMSITRANSACTIONCOMPLETE_ARGS* pArgs,
528 + __inout BA_ONBEGINMSITRANSACTIONCOMPLETE_RESULTS* /*pResults*/
529 + )
530 +{
531 + return pBA->OnBeginMsiTransactionComplete(pArgs->wzTransactionId, pArgs->hrStatus);
532 +}
533 +
534 +static HRESULT BalBaseBAProcOnCommitMsiTransactionBegin(
535 + __in IBootstrapperApplication* pBA,
536 + __in BA_ONCOMMITMSITRANSACTIONBEGIN_ARGS* pArgs,
537 + __inout BA_ONCOMMITMSITRANSACTIONBEGIN_RESULTS* pResults
538 + )
539 +{
540 + return pBA->OnCommitMsiTransactionBegin(pArgs->wzTransactionId, &pResults->fCancel);
541 +}
542 +
543 +static HRESULT BalBaseBAProcOnCommitMsiTransactionComplete(
544 + __in IBootstrapperApplication* pBA,
545 + __in BA_ONCOMMITMSITRANSACTIONCOMPLETE_ARGS* pArgs,
546 + __inout BA_ONCOMMITMSITRANSACTIONCOMPLETE_RESULTS* /*pResults*/
547 + )
548 +{
549 + return pBA->OnCommitMsiTransactionComplete(pArgs->wzTransactionId, pArgs->hrStatus);
550 +}
551 +
552 +static HRESULT BalBaseBAProcOnRollbackMsiTransactionBegin(
553 + __in IBootstrapperApplication* pBA,
554 + __in BA_ONROLLBACKMSITRANSACTIONBEGIN_ARGS* pArgs,
555 + __inout BA_ONROLLBACKMSITRANSACTIONBEGIN_RESULTS* /*pResults*/
556 + )
557 +{
558 + return pBA->OnRollbackMsiTransactionBegin(pArgs->wzTransactionId);
559 +}
560 +
561 +static HRESULT BalBaseBAProcOnRollbackMsiTransactionComplete(
562 + __in IBootstrapperApplication* pBA,
563 + __in BA_ONROLLBACKMSITRANSACTIONCOMPLETE_ARGS* pArgs,
564 + __inout BA_ONROLLBACKMSITRANSACTIONCOMPLETE_RESULTS* /*pResults*/
565 + )
566 +{
567 + return pBA->OnRollbackMsiTransactionComplete(pArgs->wzTransactionId, pArgs->hrStatus);
568 +}
569 +
570 +static HRESULT BalBaseBAProcOnPauseAutomaticUpdatesBegin(
571 + __in IBootstrapperApplication* pBA,
572 + __in BA_ONPAUSEAUTOMATICUPDATESBEGIN_ARGS* /*pArgs*/,
573 + __inout BA_ONPAUSEAUTOMATICUPDATESBEGIN_RESULTS* /*pResults*/
574 + )
575 +{
576 + return pBA->OnPauseAutomaticUpdatesBegin();
577 +}
578 +
579 +static HRESULT BalBaseBAProcOnPauseAutomaticUpdatesComplete(
580 + __in IBootstrapperApplication* pBA,
581 + __in BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_ARGS* pArgs,
582 + __inout BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_RESULTS* /*pResults*/
583 + )
584 +{
585 + return pBA->OnPauseAutomaticUpdatesComplete(pArgs->hrStatus);
586 +}
587 +
588 +static HRESULT BalBaseBAProcOnSystemRestorePointBegin(
589 + __in IBootstrapperApplication* pBA,
590 + __in BA_ONSYSTEMRESTOREPOINTBEGIN_ARGS* /*pArgs*/,
591 + __inout BA_ONSYSTEMRESTOREPOINTBEGIN_RESULTS* /*pResults*/
592 + )
593 +{
594 + return pBA->OnSystemRestorePointBegin();
595 +}
596 +
597 +static HRESULT BalBaseBAProcOnSystemRestorePointComplete(
598 + __in IBootstrapperApplication* pBA,
599 + __in BA_ONSYSTEMRESTOREPOINTCOMPLETE_ARGS* pArgs,
600 + __inout BA_ONSYSTEMRESTOREPOINTCOMPLETE_RESULTS* /*pResults*/
601 + )
602 +{
603 + return pBA->OnSystemRestorePointComplete(pArgs->hrStatus);
604 +}
605 +
606 /*******************************************************************
607 BalBaseBootstrapperApplicationProc - requires pvContext to be of type IBootstrapperApplication.
608 Provides a default mapping between the new message based BA interface and
@@ -701,6 +791,35 @@ static HRESULT WINAPI BalBaseBootstrapperApplicationProc(
791 case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANMSIPACKAGE:
792 hr = BalBaseBAProcOnPlanMsiPackage(pBA, reinterpret_cast<BA_ONPLANMSIPACKAGE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPLANMSIPACKAGE_RESULTS*>(pvResults));
793 break;
794 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONBEGIN:
795 + hr = BalBaseBAProcOnBeginMsiTransactionBegin(pBA, reinterpret_cast<BA_ONBEGINMSITRANSACTIONBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONBEGINMSITRANSACTIONBEGIN_RESULTS*>(pvResults));
796 + break;
797 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONBEGINMSITRANSACTIONCOMPLETE:
798 + hr = BalBaseBAProcOnBeginMsiTransactionComplete(pBA, reinterpret_cast<BA_ONBEGINMSITRANSACTIONCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONBEGINMSITRANSACTIONCOMPLETE_RESULTS*>(pvResults));
799 + break;
800 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONBEGIN:
801 + hr = BalBaseBAProcOnCommitMsiTransactionBegin(pBA, reinterpret_cast<BA_ONCOMMITMSITRANSACTIONBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONCOMMITMSITRANSACTIONBEGIN_RESULTS*>(pvResults));
802 + break;
803 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONCOMMITMSITRANSACTIONCOMPLETE:
804 + hr = BalBaseBAProcOnCommitMsiTransactionComplete(pBA, reinterpret_cast<BA_ONCOMMITMSITRANSACTIONCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONCOMMITMSITRANSACTIONCOMPLETE_RESULTS*>(pvResults));
805 + break;
806 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONBEGIN:
807 + hr = BalBaseBAProcOnRollbackMsiTransactionBegin(pBA, reinterpret_cast<BA_ONROLLBACKMSITRANSACTIONBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONROLLBACKMSITRANSACTIONBEGIN_RESULTS*>(pvResults));
808 + break;
809 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONROLLBACKMSITRANSACTIONCOMPLETE:
810 + hr = BalBaseBAProcOnRollbackMsiTransactionComplete(pBA, reinterpret_cast<BA_ONROLLBACKMSITRANSACTIONCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONROLLBACKMSITRANSACTIONCOMPLETE_RESULTS*>(pvResults));
811 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESBEGIN:
812 + hr = BalBaseBAProcOnPauseAutomaticUpdatesBegin(pBA, reinterpret_cast<BA_ONPAUSEAUTOMATICUPDATESBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONPAUSEAUTOMATICUPDATESBEGIN_RESULTS*>(pvResults));
813 + break;
814 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONPAUSEAUTOMATICUPDATESCOMPLETE:
815 + hr = BalBaseBAProcOnPauseAutomaticUpdatesComplete(pBA, reinterpret_cast<BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONPAUSEAUTOMATICUPDATESCOMPLETE_RESULTS*>(pvResults));
816 + break;
817 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTBEGIN:
818 + hr = BalBaseBAProcOnSystemRestorePointBegin(pBA, reinterpret_cast<BA_ONSYSTEMRESTOREPOINTBEGIN_ARGS*>(pvArgs), reinterpret_cast<BA_ONSYSTEMRESTOREPOINTBEGIN_RESULTS*>(pvResults));
819 + break;
820 + case BOOTSTRAPPER_APPLICATION_MESSAGE_ONSYSTEMRESTOREPOINTCOMPLETE:
821 + hr = BalBaseBAProcOnSystemRestorePointComplete(pBA, reinterpret_cast<BA_ONSYSTEMRESTOREPOINTCOMPLETE_ARGS*>(pvArgs), reinterpret_cast<BA_ONSYSTEMRESTOREPOINTCOMPLETE_RESULTS*>(pvResults));
822 + break;
823 }
824 }
825
src/balutil/inc/IBootstrapperApplication.h
+43
@@ -518,6 +518,49 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A
518 __in DWORD dwProcessId
519 ) = 0;
520
521 + STDMETHOD(OnBeginMsiTransactionBegin)(
522 + __in_z LPCWSTR wzTransactionId,
523 + __inout BOOL* pfCancel
524 + ) = 0;
525 +
526 + STDMETHOD(OnBeginMsiTransactionComplete)(
527 + __in_z LPCWSTR wzTransactionId,
528 + __in HRESULT hrStatus
529 + ) = 0;
530 +
531 + STDMETHOD(OnCommitMsiTransactionBegin)(
532 + __in_z LPCWSTR wzTransactionId,
533 + __inout BOOL* pfCancel
534 + ) = 0;
535 +
536 + STDMETHOD(OnCommitMsiTransactionComplete)(
537 + __in_z LPCWSTR wzTransactionId,
538 + __in HRESULT hrStatus
539 + ) = 0;
540 +
541 + STDMETHOD(OnRollbackMsiTransactionBegin)(
542 + __in_z LPCWSTR wzTransactionId
543 + ) = 0;
544 +
545 + STDMETHOD(OnRollbackMsiTransactionComplete)(
546 + __in_z LPCWSTR wzTransactionId,
547 + __in HRESULT hrStatus
548 + ) = 0;
549 +
550 + STDMETHOD(OnPauseAutomaticUpdatesBegin)(
551 + ) = 0;
552 +
553 + STDMETHOD(OnPauseAutomaticUpdatesComplete)(
554 + __in HRESULT hrStatus
555 + ) = 0;
556 +
557 + STDMETHOD(OnSystemRestorePointBegin)(
558 + ) = 0;
559 +
560 + STDMETHOD(OnSystemRestorePointComplete)(
561 + __in HRESULT hrStatus
562 + ) = 0;
563 +
564 // BAProc - The PFN_BOOTSTRAPPER_APPLICATION_PROC can call this method to give the BA raw access to the callback from the engine.
565 // This might be used to help the BA support more than one version of the engine.
566 STDMETHOD(BAProc)(
src/balutil/packages.config
+2 -2
@@ -1,6 +1,6 @@
1 <?xml version="1.0" encoding="utf-8"?>
2 <packages>
3 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" />
4 - <package id="WixToolset.BootstrapperCore.Native" version="4.0.38" targetFramework="native" />
5 - <package id="WixToolset.DUtil" version="4.0.55" targetFramework="native" />
4 + <package id="WixToolset.BootstrapperCore.Native" version="4.0.54" targetFramework="native" />
5 + <package id="WixToolset.DUtil" version="4.0.56" targetFramework="native" />
6 </packages>
\ No newline at end of file
src/bextutil/bextutil.vcxproj
+4 -4
@@ -2,8 +2,8 @@
2 <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 - <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" />
6 - <Import Project="..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" />
5 + <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" />
6 + <Import Project="..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" />
7
8 <ItemGroup Label="ProjectConfigurations">
9 <ProjectConfiguration Include="Debug|ARM64">
@@ -87,8 +87,8 @@
87 <PropertyGroup>
88 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
89 </PropertyGroup>
90 - <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props'))" />
91 - <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props'))" />
90 + <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props'))" />
91 + <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props'))" />
92 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" />
93 </Target>
94 </Project>
src/bextutil/packages.config
+2 -2
@@ -1,6 +1,6 @@
1 <?xml version="1.0" encoding="utf-8"?>
2 <packages>
3 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" />
4 - <package id="WixToolset.BootstrapperCore.Native" version="4.0.38" targetFramework="native" />
5 - <package id="WixToolset.DUtil" version="4.0.55" targetFramework="native" />
4 + <package id="WixToolset.BootstrapperCore.Native" version="4.0.54" targetFramework="native" />
5 + <package id="WixToolset.DUtil" version="4.0.56" targetFramework="native" />
6 </packages>
\ No newline at end of file
src/mbanative/mbanative.vcxproj
+4 -4
@@ -5,8 +5,8 @@
5 <Import Project="..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props" Condition="Exists('..\..\packages\Microsoft.SourceLink.GitHub.1.0.0\build\Microsoft.SourceLink.GitHub.props')" />
6 <Import Project="..\..\packages\Microsoft.SourceLink.Common.1.0.0\build\Microsoft.SourceLink.Common.props" Condition="Exists('..\..\packages\Microsoft.SourceLink.Common.1.0.0\build\Microsoft.SourceLink.Common.props')" />
7 <Import Project="..\..\packages\Microsoft.Build.Tasks.Git.1.0.0\build\Microsoft.Build.Tasks.Git.props" Condition="Exists('..\..\packages\Microsoft.Build.Tasks.Git.1.0.0\build\Microsoft.Build.Tasks.Git.props')" />
8 - <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" />
9 - <Import Project="..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" />
8 + <Import Project="..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" />
9 + <Import Project="..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" />
10
11 <ItemGroup Label="ProjectConfigurations">
12 <ProjectConfiguration Include="Debug|ARM64">
@@ -94,7 +94,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'))" />
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'))" />
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'))" />
97 - <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props'))" />
98 - <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props'))" />
97 + <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props'))" />
98 + <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props'))" />
99 </Target>
100 </Project>
\ No newline at end of file
src/mbanative/packages.config
+2 -2
@@ -4,6 +4,6 @@
4 <package id="Microsoft.SourceLink.Common" version="1.0.0" targetFramework="native" developmentDependency="true" />
5 <package id="Microsoft.SourceLink.GitHub" version="1.0.0" targetFramework="native" developmentDependency="true" />
6 <package id="Nerdbank.GitVersioning" version="3.3.37" targetFramework="native" developmentDependency="true" />
7 - <package id="WixToolset.BootstrapperCore.Native" version="4.0.38" targetFramework="native" />
8 - <package id="WixToolset.DUtil" version="4.0.55" targetFramework="native" />
7 + <package id="WixToolset.BootstrapperCore.Native" version="4.0.54" targetFramework="native" />
8 + <package id="WixToolset.DUtil" version="4.0.56" targetFramework="native" />
9 </packages>
\ No newline at end of file
src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
+4 -4
@@ -4,8 +4,8 @@
4
5 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" />
7 - <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" />
8 - <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" />
7 + <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" />
8 + <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" />
9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32">
11 <Configuration>Debug</Configuration>
@@ -67,7 +67,7 @@
67 </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'))" />
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'))" />
70 - <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props'))" />
71 - <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props'))" />
70 + <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props'))" />
71 + <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props'))" />
72 </Target>
73 </Project>
src/test/BalUtilUnitTest/packages.config
+2 -2
@@ -10,6 +10,6 @@
10 <package id="xunit.runner.visualstudio" version="2.4.1" />
11 <package id="WixBuildTools.TestSupport" version="4.0.47" />
12 <package id="WixBuildTools.TestSupport.Native" version="4.0.47" />
13 - <package id="WixToolset.BootstrapperCore.Native" version="4.0.38" targetFramework="native" />
14 - <package id="WixToolset.DUtil" version="4.0.55" targetFramework="native" />
13 + <package id="WixToolset.BootstrapperCore.Native" version="4.0.54" targetFramework="native" />
14 + <package id="WixToolset.DUtil" version="4.0.56" targetFramework="native" />
15 </packages>
\ No newline at end of file
src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
+4 -4
@@ -4,8 +4,8 @@
4
5 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6 <Import Project="..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props" Condition="Exists('..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\build\WixBuildTools.TestSupport.Native.props')" />
7 - <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" />
8 - <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" />
7 + <Import Project="..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props" Condition="Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" />
8 + <Import Project="..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props" Condition="Exists('..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" />
9 <ItemGroup Label="ProjectConfigurations">
10 <ProjectConfiguration Include="Debug|Win32">
11 <Configuration>Debug</Configuration>
@@ -66,7 +66,7 @@
66 </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'))" />
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'))" />
69 - <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.38\build\WixToolset.BootstrapperCore.Native.props'))" />
70 - <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.55\build\WixToolset.DUtil.props'))" />
69 + <Error Condition="!Exists('..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.BootstrapperCore.Native.4.0.54\build\WixToolset.BootstrapperCore.Native.props'))" />
70 + <Error Condition="!Exists('..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WixToolset.DUtil.4.0.56\build\WixToolset.DUtil.props'))" />
71 </Target>
72 </Project>
src/test/BextUtilUnitTest/packages.config
+2 -2
@@ -10,6 +10,6 @@
10 <package id="xunit.runner.visualstudio" version="2.4.1" />
11 <package id="WixBuildTools.TestSupport" version="4.0.47" />
12 <package id="WixBuildTools.TestSupport.Native" version="4.0.47" />
13 - <package id="WixToolset.BootstrapperCore.Native" version="4.0.38" targetFramework="native" />
14 - <package id="WixToolset.DUtil" version="4.0.55" targetFramework="native" />
13 + <package id="WixToolset.BootstrapperCore.Native" version="4.0.54" targetFramework="native" />
14 + <package id="WixToolset.DUtil" version="4.0.56" targetFramework="native" />
15 </packages>
\ No newline at end of file