From 8deeffb615244c62a0c94ea99d01ece88b1caf09 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Tue, 27 Apr 2021 22:26:16 -0500 Subject: [PATCH] Integrate size_t and OnPlanPackageBegin changes in Burn headers. --- .../BootstrapperApplication.cs | 12 ++-- src/WixToolset.Mba.Core/Engine.cs | 36 +++++----- src/WixToolset.Mba.Core/EventArgs.cs | 70 ++++++++++++------- .../IBootstrapperApplication.cs | 69 +++++++++++++----- .../IBootstrapperEngine.cs | 24 ++----- src/WixToolset.Mba.Core/IPackageInfo.cs | 2 +- src/WixToolset.Mba.Core/PackageInfo.cs | 35 ++-------- src/balutil/BalBootstrapperEngine.cpp | 10 +-- src/balutil/balcondition.cpp | 6 +- src/balutil/balinfo.cpp | 12 ++-- src/balutil/balutil.cpp | 10 +-- src/balutil/balutil.vcxproj | 8 +-- src/balutil/inc/BalBaseBAFunctions.h | 12 +++- .../inc/BalBaseBootstrapperApplication.h | 12 +++- .../inc/BalBaseBootstrapperApplicationProc.h | 6 +- src/balutil/inc/IBootstrapperApplication.h | 12 +++- src/balutil/inc/IBootstrapperEngine.h | 10 +-- src/balutil/inc/balinfo.h | 9 +-- src/balutil/inc/balutil.h | 2 +- src/balutil/packages.config | 4 +- src/bextutil/BextBundleExtensionEngine.cpp | 8 +-- src/bextutil/bextutil.vcxproj | 8 +-- src/bextutil/inc/IBundleExtensionEngine.h | 10 +-- src/bextutil/packages.config | 4 +- src/mbanative/mbanative.vcxproj | 8 +-- src/mbanative/packages.config | 4 +- .../BalUtilUnitTest/BalUtilUnitTest.vcxproj | 20 +++--- src/test/BalUtilUnitTest/packages.config | 8 +-- .../BextUtilUnitTest/BextUtilUnitTest.vcxproj | 20 +++--- src/test/BextUtilUnitTest/packages.config | 8 +-- 30 files changed, 244 insertions(+), 215 deletions(-) diff --git a/src/WixToolset.Mba.Core/BootstrapperApplication.cs b/src/WixToolset.Mba.Core/BootstrapperApplication.cs index 0a8f3af..072d3ef 100644 --- a/src/WixToolset.Mba.Core/BootstrapperApplication.cs +++ b/src/WixToolset.Mba.Core/BootstrapperApplication.cs @@ -1343,9 +1343,9 @@ namespace WixToolset.Mba.Core return args.HResult; } - int IBootstrapperApplication.OnDetectPackageComplete(string wzPackageId, int hrStatus, PackageState state) + int IBootstrapperApplication.OnDetectPackageComplete(string wzPackageId, int hrStatus, PackageState state, bool fCached) { - DetectPackageCompleteEventArgs args = new DetectPackageCompleteEventArgs(wzPackageId, hrStatus, state); + DetectPackageCompleteEventArgs args = new DetectPackageCompleteEventArgs(wzPackageId, hrStatus, state, fCached); this.OnDetectPackageComplete(args); return args.HResult; @@ -1378,9 +1378,9 @@ namespace WixToolset.Mba.Core return args.HResult; } - int IBootstrapperApplication.OnPlanPackageBegin(string wzPackageId, PackageState state, bool fInstallCondition, RequestState recommendedState, ref RequestState pRequestedState, ref bool fCancel) + int IBootstrapperApplication.OnPlanPackageBegin(string wzPackageId, PackageState state, bool fCached, BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition, RequestState recommendedState, BOOTSTRAPPER_CACHE_TYPE recommendedCacheType, ref RequestState pRequestedState, ref BOOTSTRAPPER_CACHE_TYPE pRequestedCacheType, ref bool fCancel) { - PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, state, fInstallCondition, recommendedState, pRequestedState, fCancel); + PlanPackageBeginEventArgs args = new PlanPackageBeginEventArgs(wzPackageId, state, fCached, installCondition, recommendedState, recommendedCacheType, pRequestedState, pRequestedCacheType, fCancel); this.OnPlanPackageBegin(args); pRequestedState = args.State; @@ -1428,9 +1428,9 @@ namespace WixToolset.Mba.Core return args.HResult; } - int IBootstrapperApplication.OnPlannedPackage(string wzPackageId, ActionState execute, ActionState rollback) + int IBootstrapperApplication.OnPlannedPackage(string wzPackageId, ActionState execute, ActionState rollback, bool fPlannedCache, bool fPlannedUncache) { - var args = new PlannedPackageEventArgs(wzPackageId, execute, rollback); + var args = new PlannedPackageEventArgs(wzPackageId, execute, rollback, fPlannedCache, fPlannedUncache); this.OnPlannedPackage(args); return args.HResult; diff --git a/src/WixToolset.Mba.Core/Engine.cs b/src/WixToolset.Mba.Core/Engine.cs index e07ecd8..aed420d 100644 --- a/src/WixToolset.Mba.Core/Engine.cs +++ b/src/WixToolset.Mba.Core/Engine.cs @@ -62,7 +62,7 @@ namespace WixToolset.Mba.Core /// public bool ContainsVariable(string name) { - int capacity = 0; + IntPtr capacity = new IntPtr(0); int ret = this.engine.GetVariableString(name, IntPtr.Zero, ref capacity); return NativeMethods.E_NOTFOUND != ret; } @@ -101,14 +101,15 @@ namespace WixToolset.Mba.Core /// public string EscapeString(string input) { - int capacity = InitialBufferSize; - StringBuilder sb = new StringBuilder(capacity); + IntPtr capacity = new IntPtr(InitialBufferSize); + StringBuilder sb = new StringBuilder(capacity.ToInt32()); // Get the size of the buffer. int ret = this.engine.EscapeString(input, sb, ref capacity); if (NativeMethods.E_INSUFFICIENT_BUFFER == ret || NativeMethods.E_MOREDATA == ret) { - sb.Capacity = ++capacity; // Add one for the null terminator. + capacity = new IntPtr(capacity.ToInt32() + 1); // Add one for the null terminator. + sb.Capacity = capacity.ToInt32(); ret = this.engine.EscapeString(input, sb, ref capacity); } @@ -132,14 +133,15 @@ namespace WixToolset.Mba.Core /// public string FormatString(string format) { - int capacity = InitialBufferSize; - StringBuilder sb = new StringBuilder(capacity); + IntPtr capacity = new IntPtr(InitialBufferSize); + StringBuilder sb = new StringBuilder(capacity.ToInt32()); // Get the size of the buffer. int ret = this.engine.FormatString(format, sb, ref capacity); if (NativeMethods.E_INSUFFICIENT_BUFFER == ret || NativeMethods.E_MOREDATA == ret) { - sb.Capacity = ++capacity; // Add one for the null terminator. + capacity = new IntPtr(capacity.ToInt32() + 1); // Add one for the null terminator. + sb.Capacity = capacity.ToInt32(); ret = this.engine.FormatString(format, sb, ref capacity); } @@ -343,9 +345,9 @@ namespace WixToolset.Mba.Core /// An error occurred getting the variable. internal IntPtr getStringVariable(string name, out int length) { - int capacity = InitialBufferSize; + IntPtr capacity = new IntPtr(InitialBufferSize); bool success = false; - IntPtr pValue = Marshal.AllocCoTaskMem(capacity * UnicodeEncoding.CharSize); + IntPtr pValue = Marshal.AllocCoTaskMem(capacity.ToInt32() * UnicodeEncoding.CharSize); try { // Get the size of the buffer. @@ -353,7 +355,7 @@ namespace WixToolset.Mba.Core if (NativeMethods.E_INSUFFICIENT_BUFFER == ret || NativeMethods.E_MOREDATA == ret) { // Don't need to add 1 for the null terminator, the engine already includes that. - pValue = Marshal.ReAllocCoTaskMem(pValue, capacity * UnicodeEncoding.CharSize); + pValue = Marshal.ReAllocCoTaskMem(pValue, capacity.ToInt32() * UnicodeEncoding.CharSize); ret = this.engine.GetVariableString(name, pValue, ref capacity); } @@ -363,9 +365,10 @@ namespace WixToolset.Mba.Core } // The engine only returns the exact length of the string if the buffer was too small, so calculate it ourselves. - for (length = 0; length < capacity; ++length) + int maxLength = capacity.ToInt32(); + for (length = 0; length < maxLength; ++length) { - if(0 == Marshal.ReadInt16(pValue, length * UnicodeEncoding.CharSize)) + if (0 == Marshal.ReadInt16(pValue, length * UnicodeEncoding.CharSize)) { break; } @@ -392,9 +395,9 @@ namespace WixToolset.Mba.Core /// An error occurred getting the variable. internal IntPtr getVersionVariable(string name, out int length) { - int capacity = InitialBufferSize; + IntPtr capacity = new IntPtr(InitialBufferSize); bool success = false; - IntPtr pValue = Marshal.AllocCoTaskMem(capacity * UnicodeEncoding.CharSize); + IntPtr pValue = Marshal.AllocCoTaskMem(capacity.ToInt32() * UnicodeEncoding.CharSize); try { // Get the size of the buffer. @@ -402,7 +405,7 @@ namespace WixToolset.Mba.Core if (NativeMethods.E_INSUFFICIENT_BUFFER == ret || NativeMethods.E_MOREDATA == ret) { // Don't need to add 1 for the null terminator, the engine already includes that. - pValue = Marshal.ReAllocCoTaskMem(pValue, capacity * UnicodeEncoding.CharSize); + pValue = Marshal.ReAllocCoTaskMem(pValue, capacity.ToInt32() * UnicodeEncoding.CharSize); ret = this.engine.GetVariableVersion(name, pValue, ref capacity); } @@ -412,7 +415,8 @@ namespace WixToolset.Mba.Core } // The engine only returns the exact length of the string if the buffer was too small, so calculate it ourselves. - for (length = 0; length < capacity; ++length) + int maxLength = capacity.ToInt32(); + for (length = 0; length < maxLength; ++length) { if (0 == Marshal.ReadInt16(pValue, length * UnicodeEncoding.CharSize)) { diff --git a/src/WixToolset.Mba.Core/EventArgs.cs b/src/WixToolset.Mba.Core/EventArgs.cs index e64f6d2..8ef8af1 100644 --- a/src/WixToolset.Mba.Core/EventArgs.cs +++ b/src/WixToolset.Mba.Core/EventArgs.cs @@ -617,22 +617,18 @@ namespace WixToolset.Mba.Core } /// - /// Additional arguments used when the detection for a specific package has completed. + /// Additional arguments for . /// [Serializable] public class DetectPackageCompleteEventArgs : StatusEventArgs { - /// - /// Creates a new instance of the class. - /// - /// The identity of the package detected. - /// The return code of the operation. - /// The state of the specified package. - public DetectPackageCompleteEventArgs(string packageId, int hrStatus, PackageState state) + /// + public DetectPackageCompleteEventArgs(string packageId, int hrStatus, PackageState state, bool cached) : base(hrStatus) { this.PackageId = packageId; this.State = state; + this.Cached = cached; } /// @@ -644,6 +640,11 @@ namespace WixToolset.Mba.Core /// Gets the state of the specified package. /// public PackageState State { get; private set; } + + /// + /// Gets whether any part of the package is cached. + /// + public bool Cached { get; private set; } } /// @@ -725,23 +726,18 @@ namespace WixToolset.Mba.Core [Serializable] public class PlanPackageBeginEventArgs : CancellableHResultEventArgs { - /// - /// - /// - /// - /// - /// - /// - /// - /// - public PlanPackageBeginEventArgs(string packageId, PackageState currentState, bool installCondition, RequestState recommendedState, RequestState state, bool cancelRecommendation) + /// + public PlanPackageBeginEventArgs(string packageId, PackageState currentState, bool cached, BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition, RequestState recommendedState, BOOTSTRAPPER_CACHE_TYPE recommendedCacheType, RequestState state, BOOTSTRAPPER_CACHE_TYPE cacheType, bool cancelRecommendation) : base(cancelRecommendation) { this.PackageId = packageId; this.CurrentState = currentState; + this.Cached = cached; this.InstallCondition = installCondition; this.RecommendedState = recommendedState; + this.RecommendedCacheType = recommendedCacheType; this.State = state; + this.CacheType = cacheType; } /// @@ -754,20 +750,35 @@ namespace WixToolset.Mba.Core /// public PackageState CurrentState { get; private set; } + /// + /// Gets whether any part of the package is cached. + /// + public bool Cached { get; private set; } + /// /// Gets the evaluated result of the package's install condition. /// - public bool InstallCondition { get; private set; } + public BOOTSTRAPPER_PACKAGE_CONDITION_RESULT InstallCondition { get; private set; } /// /// Gets the recommended requested state for the package. /// public RequestState RecommendedState { get; private set; } + /// + /// The authored cache type of the package. + /// + public BOOTSTRAPPER_CACHE_TYPE RecommendedCacheType { get; private set; } + /// /// Gets or sets the requested state for the package. /// public RequestState State { get; set; } + + /// + /// Gets or sets the requested cache type for the package. + /// + public BOOTSTRAPPER_CACHE_TYPE CacheType { get; set; } } /// @@ -936,17 +947,14 @@ namespace WixToolset.Mba.Core [Serializable] public class PlannedPackageEventArgs : HResultEventArgs { - /// - /// - /// - /// - /// - /// - public PlannedPackageEventArgs(string packageId, ActionState execute, ActionState rollback) + /// + public PlannedPackageEventArgs(string packageId, ActionState execute, ActionState rollback, bool cache, bool uncache) { this.PackageId = packageId; this.Execute = execute; this.Rollback = rollback; + this.Cache = cache; + this.Uncache = uncache; } /// @@ -963,6 +971,16 @@ namespace WixToolset.Mba.Core /// Gets the planned rollback action. /// public ActionState Rollback { get; private set; } + + /// + /// Gets whether the package will be cached. + /// + public bool Cache { get; private set; } + + /// + /// Gets whether the package will be removed from the package cache. + /// + public bool Uncache { get; private set; } } /// diff --git a/src/WixToolset.Mba.Core/IBootstrapperApplication.cs b/src/WixToolset.Mba.Core/IBootstrapperApplication.cs index 2195fd4..530fb1a 100644 --- a/src/WixToolset.Mba.Core/IBootstrapperApplication.cs +++ b/src/WixToolset.Mba.Core/IBootstrapperApplication.cs @@ -251,16 +251,13 @@ namespace WixToolset.Mba.Core /// /// See . /// - /// - /// - /// - /// [PreserveSig] [return: MarshalAs(UnmanagedType.I4)] int OnDetectPackageComplete( [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, int hrStatus, - [MarshalAs(UnmanagedType.U4)] PackageState state + [MarshalAs(UnmanagedType.U4)] PackageState state, + [MarshalAs(UnmanagedType.Bool)] bool fCached ); /// @@ -309,21 +306,17 @@ namespace WixToolset.Mba.Core /// /// See . /// - /// - /// - /// - /// - /// - /// - /// [PreserveSig] [return: MarshalAs(UnmanagedType.I4)] int OnPlanPackageBegin( [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, [MarshalAs(UnmanagedType.U4)] PackageState state, - [MarshalAs(UnmanagedType.Bool)] bool fInstallCondition, + [MarshalAs(UnmanagedType.Bool)] bool fCached, + [MarshalAs(UnmanagedType.U4)] BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition, [MarshalAs(UnmanagedType.U4)] RequestState recommendedState, + [MarshalAs(UnmanagedType.U4)] BOOTSTRAPPER_CACHE_TYPE recommendedCacheType, [MarshalAs(UnmanagedType.U4)] ref RequestState pRequestedState, + [MarshalAs(UnmanagedType.U4)] ref BOOTSTRAPPER_CACHE_TYPE pRequestedCacheType, [MarshalAs(UnmanagedType.Bool)] ref bool fCancel ); @@ -406,16 +399,14 @@ namespace WixToolset.Mba.Core /// /// See . /// - /// - /// - /// - /// [PreserveSig] [return: MarshalAs(UnmanagedType.I4)] int OnPlannedPackage( [MarshalAs(UnmanagedType.LPWStr)] string wzPackageId, [MarshalAs(UnmanagedType.U4)] ActionState execute, - [MarshalAs(UnmanagedType.U4)] ActionState rollback + [MarshalAs(UnmanagedType.U4)] ActionState rollback, + [MarshalAs(UnmanagedType.Bool)] bool fPlannedCache, + [MarshalAs(UnmanagedType.Bool)] bool fPlannedUncache ); /// @@ -1641,6 +1632,27 @@ namespace WixToolset.Mba.Core Restart, } + /// + /// The cache strategy to be used for the package. + /// + public enum BOOTSTRAPPER_CACHE_TYPE + { + /// + /// The package will be cached in order to securely run the package, but will always be cleaned from the cache at the end. + /// + Remove, + + /// + /// The package will be cached in order to run the package, and then kept in the cache until the package is uninstalled. + /// + Keep, + + /// + /// The package will always be cached and stay in the cache, unless the package and bundle are both being uninstalled. + /// + Force, + } + /// /// The available actions for . /// @@ -1736,6 +1748,27 @@ namespace WixToolset.Mba.Core Suspend, } + /// + /// The result of evaluating a condition from a package. + /// + public enum BOOTSTRAPPER_PACKAGE_CONDITION_RESULT + { + /// + /// No condition was authored. + /// + Default, + + /// + /// Evaluated to false. + /// + False, + + /// + /// Evaluated to true. + /// + True, + } + /// /// The available actions for . /// diff --git a/src/WixToolset.Mba.Core/IBootstrapperEngine.cs b/src/WixToolset.Mba.Core/IBootstrapperEngine.cs index 78753a4..4e19bf0 100644 --- a/src/WixToolset.Mba.Core/IBootstrapperEngine.cs +++ b/src/WixToolset.Mba.Core/IBootstrapperEngine.cs @@ -39,57 +39,41 @@ namespace WixToolset.Mba.Core /// /// See . /// - /// - /// - /// - /// [PreserveSig] int GetVariableString( [MarshalAs(UnmanagedType.LPWStr)] string wzVariable, IntPtr wzValue, - [MarshalAs(UnmanagedType.U4)] ref int pcchValue + ref IntPtr pcchValue ); /// /// See . /// - /// - /// - /// - /// [PreserveSig] int GetVariableVersion( [MarshalAs(UnmanagedType.LPWStr)] string wzVariable, IntPtr wzValue, - [MarshalAs(UnmanagedType.U4)] ref int pcchValue + ref IntPtr pcchValue ); /// /// See . /// - /// - /// - /// - /// [PreserveSig] int FormatString( [MarshalAs(UnmanagedType.LPWStr)] string wzIn, [MarshalAs(UnmanagedType.LPWStr), Out] StringBuilder wzOut, - [MarshalAs(UnmanagedType.U4)] ref int pcchOut + ref IntPtr pcchOut ); /// /// See . /// - /// - /// - /// - /// [PreserveSig] int EscapeString( [MarshalAs(UnmanagedType.LPWStr)] string wzIn, [MarshalAs(UnmanagedType.LPWStr), Out] StringBuilder wzOut, - [MarshalAs(UnmanagedType.U4)] ref int pcchOut + ref IntPtr pcchOut ); /// diff --git a/src/WixToolset.Mba.Core/IPackageInfo.cs b/src/WixToolset.Mba.Core/IPackageInfo.cs index 0d7e549..a1d99b1 100644 --- a/src/WixToolset.Mba.Core/IPackageInfo.cs +++ b/src/WixToolset.Mba.Core/IPackageInfo.cs @@ -10,7 +10,7 @@ namespace WixToolset.Mba.Core /// /// /// - CacheType CacheType { get; } + BOOTSTRAPPER_CACHE_TYPE CacheType { get; } /// /// Place for the BA to store it's own custom data for this package. diff --git a/src/WixToolset.Mba.Core/PackageInfo.cs b/src/WixToolset.Mba.Core/PackageInfo.cs index 75a0fd5..567a7cd 100644 --- a/src/WixToolset.Mba.Core/PackageInfo.cs +++ b/src/WixToolset.Mba.Core/PackageInfo.cs @@ -7,27 +7,6 @@ namespace WixToolset.Mba.Core using System.Xml; using System.Xml.XPath; - /// - /// - /// - public enum CacheType - { - /// - /// - /// - No, - - /// - /// - /// - Yes, - - /// - /// - /// - Always, - } - /// /// /// @@ -113,7 +92,7 @@ namespace WixToolset.Mba.Core public string InstallCondition { get; internal set; } /// - public CacheType CacheType { get; internal set; } + public BOOTSTRAPPER_CACHE_TYPE CacheType { get; internal set; } /// public bool PrereqPackage { get; internal set; } @@ -198,7 +177,7 @@ namespace WixToolset.Mba.Core /// /// /// - public static CacheType? GetCacheTypeAttribute(XPathNavigator node, string attributeName) + public static BOOTSTRAPPER_CACHE_TYPE? GetCacheTypeAttribute(XPathNavigator node, string attributeName) { string attributeValue = BootstrapperApplicationData.GetAttribute(node, attributeName); @@ -207,17 +186,17 @@ namespace WixToolset.Mba.Core return null; } - if (attributeValue.Equals("yes", StringComparison.InvariantCulture)) + if (attributeValue.Equals("keep", StringComparison.InvariantCulture)) { - return CacheType.Yes; + return BOOTSTRAPPER_CACHE_TYPE.Keep; } - else if (attributeValue.Equals("always", StringComparison.InvariantCulture)) + else if (attributeValue.Equals("force", StringComparison.InvariantCulture)) { - return CacheType.Always; + return BOOTSTRAPPER_CACHE_TYPE.Force; } else { - return CacheType.No; + return BOOTSTRAPPER_CACHE_TYPE.Remove; } } diff --git a/src/balutil/BalBootstrapperEngine.cpp b/src/balutil/BalBootstrapperEngine.cpp index dda98cb..301b88a 100644 --- a/src/balutil/BalBootstrapperEngine.cpp +++ b/src/balutil/BalBootstrapperEngine.cpp @@ -107,7 +107,7 @@ public: // IBootstrapperEngine virtual STDMETHODIMP GetVariableString( __in_z LPCWSTR wzVariable, __out_ecount_opt(*pcchValue) LPWSTR wzValue, - __inout DWORD* pcchValue + __inout SIZE_T* pcchValue ) { HRESULT hr = S_OK; @@ -134,7 +134,7 @@ public: // IBootstrapperEngine virtual STDMETHODIMP GetVariableVersion( __in_z LPCWSTR wzVariable, __out_ecount_opt(*pcchValue) LPWSTR wzValue, - __inout DWORD* pcchValue + __inout SIZE_T* pcchValue ) { HRESULT hr = S_OK; @@ -161,7 +161,7 @@ public: // IBootstrapperEngine virtual STDMETHODIMP FormatString( __in_z LPCWSTR wzIn, __out_ecount_opt(*pcchOut) LPWSTR wzOut, - __inout DWORD* pcchOut + __inout SIZE_T* pcchOut ) { HRESULT hr = S_OK; @@ -188,7 +188,7 @@ public: // IBootstrapperEngine virtual STDMETHODIMP EscapeString( __in_z LPCWSTR wzIn, __out_ecount_opt(*pcchOut) LPWSTR wzOut, - __inout DWORD* pcchOut + __inout SIZE_T* pcchOut ) { HRESULT hr = S_OK; @@ -485,7 +485,7 @@ public: // IBootstrapperEngine } virtual STDMETHODIMP Apply( - __in_opt HWND hwndParent + __in HWND hwndParent ) { BAENGINE_APPLY_ARGS args = { }; diff --git a/src/balutil/balcondition.cpp b/src/balutil/balcondition.cpp index 11d3e21..8b05508 100644 --- a/src/balutil/balcondition.cpp +++ b/src/balutil/balcondition.cpp @@ -78,7 +78,7 @@ DAPI_(HRESULT) BalConditionEvaluate( ) { HRESULT hr = S_OK; - DWORD_PTR cchMessage = 0; + SIZE_T cchMessage = 0; hr = pEngine->EvaluateCondition(pCondition->sczCondition, pfResult); ExitOnFailure(hr, "Failed to evaluate condition with bootstrapper engine."); @@ -91,7 +91,7 @@ DAPI_(HRESULT) BalConditionEvaluate( ExitOnFailure(hr, "Failed to get length of message."); } - hr = pEngine->FormatString(pCondition->sczMessage, *psczMessage, reinterpret_cast(&cchMessage)); + hr = pEngine->FormatString(pCondition->sczMessage, *psczMessage, &cchMessage); if (E_MOREDATA == hr) { ++cchMessage; @@ -99,7 +99,7 @@ DAPI_(HRESULT) BalConditionEvaluate( hr = StrAllocSecure(psczMessage, cchMessage); ExitOnFailure(hr, "Failed to allocate string for condition's formatted message."); - hr = pEngine->FormatString(pCondition->sczMessage, *psczMessage, reinterpret_cast(&cchMessage)); + hr = pEngine->FormatString(pCondition->sczMessage, *psczMessage, &cchMessage); } ExitOnFailure(hr, "Failed to format condition's message."); } diff --git a/src/balutil/balinfo.cpp b/src/balutil/balinfo.cpp index 492c8e0..3abb928 100644 --- a/src/balutil/balinfo.cpp +++ b/src/balutil/balinfo.cpp @@ -261,17 +261,17 @@ static HRESULT ParsePackagesFromXml( hr = XmlGetAttributeEx(pNode, L"Cache", &scz); ExitOnFailure(hr, "Failed to get cache type for package."); - if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"no", -1)) + if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"remove", -1)) { - prgPackages[iPackage].cacheType = BAL_INFO_CACHE_TYPE_NO; + prgPackages[iPackage].cacheType = BOOTSTRAPPER_CACHE_TYPE_REMOVE; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"yes", -1)) + else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"keep", -1)) { - prgPackages[iPackage].cacheType = BAL_INFO_CACHE_TYPE_YES; + prgPackages[iPackage].cacheType = BOOTSTRAPPER_CACHE_TYPE_KEEP; } - else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"always", -1)) + else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"force", -1)) { - prgPackages[iPackage].cacheType = BAL_INFO_CACHE_TYPE_ALWAYS; + prgPackages[iPackage].cacheType = BOOTSTRAPPER_CACHE_TYPE_FORCE; } ++iPackage; diff --git a/src/balutil/balutil.cpp b/src/balutil/balutil.cpp index faca70f..7a63821 100644 --- a/src/balutil/balutil.cpp +++ b/src/balutil/balutil.cpp @@ -96,7 +96,7 @@ DAPI_(HRESULT) BalFormatString( ) { HRESULT hr = S_OK; - DWORD cch = 0; + SIZE_T cch = 0; if (!vpEngine) { @@ -106,7 +106,7 @@ DAPI_(HRESULT) BalFormatString( if (*psczOut) { - hr = StrMaxLength(*psczOut, reinterpret_cast(&cch)); + hr = StrMaxLength(*psczOut, &cch); ExitOnFailure(hr, "Failed to determine length of value."); } @@ -172,7 +172,7 @@ DAPI_(BOOL) BalVariableExists( ) { HRESULT hr = S_OK; - DWORD cch = 0; + SIZE_T cch = 0; if (!vpEngine) { @@ -194,7 +194,7 @@ DAPI_(HRESULT) BalGetStringVariable( ) { HRESULT hr = S_OK; - DWORD cch = 0; + SIZE_T cch = 0; if (!vpEngine) { @@ -204,7 +204,7 @@ DAPI_(HRESULT) BalGetStringVariable( if (*psczValue) { - hr = StrMaxLength(*psczValue, reinterpret_cast(&cch)); + hr = StrMaxLength(*psczValue, &cch); ExitOnFailure(hr, "Failed to determine length of value."); } diff --git a/src/balutil/balutil.vcxproj b/src/balutil/balutil.vcxproj index a47e994..73153d5 100644 --- a/src/balutil/balutil.vcxproj +++ b/src/balutil/balutil.vcxproj @@ -2,8 +2,8 @@ - - + + @@ -98,8 +98,8 @@ 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}. - + - + \ No newline at end of file diff --git a/src/balutil/inc/BalBaseBAFunctions.h b/src/balutil/inc/BalBaseBAFunctions.h index 054bfb2..ee2e452 100644 --- a/src/balutil/inc/BalBaseBAFunctions.h +++ b/src/balutil/inc/BalBaseBAFunctions.h @@ -222,7 +222,8 @@ public: // IBootstrapperApplication virtual STDMETHODIMP OnDetectPackageComplete( __in_z LPCWSTR /*wzPackageId*/, __in HRESULT /*hrStatus*/, - __in BOOTSTRAPPER_PACKAGE_STATE /*state*/ + __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, + __in BOOL /*fCached*/ ) { return S_OK; @@ -257,9 +258,12 @@ public: // IBootstrapperApplication virtual STDMETHODIMP OnPlanPackageBegin( __in_z LPCWSTR /*wzPackageId*/, __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, - __in BOOL /*fInstallCondition*/, + __in BOOL /*fCached*/, + __in BOOTSTRAPPER_PACKAGE_CONDITION_RESULT /*installCondition*/, __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/, + __in BOOTSTRAPPER_CACHE_TYPE /*recommendedCacheType*/, __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/, + __inout BOOTSTRAPPER_CACHE_TYPE* /*pRequestedCacheType*/, __inout BOOL* /*pfCancel*/ ) { @@ -313,7 +317,9 @@ public: // IBootstrapperApplication virtual STDMETHODIMP OnPlannedPackage( __in_z LPCWSTR /*wzPackageId*/, __in BOOTSTRAPPER_ACTION_STATE /*execute*/, - __in BOOTSTRAPPER_ACTION_STATE /*rollback*/ + __in BOOTSTRAPPER_ACTION_STATE /*rollback*/, + __in BOOL /*fPlannedCache*/, + __in BOOL /*fPlannedUncache*/ ) { return S_OK; diff --git a/src/balutil/inc/BalBaseBootstrapperApplication.h b/src/balutil/inc/BalBaseBootstrapperApplication.h index 812025e..bf21c4a 100644 --- a/src/balutil/inc/BalBaseBootstrapperApplication.h +++ b/src/balutil/inc/BalBaseBootstrapperApplication.h @@ -228,7 +228,8 @@ public: // IBootstrapperApplication virtual STDMETHODIMP OnDetectPackageComplete( __in_z LPCWSTR /*wzPackageId*/, __in HRESULT /*hrStatus*/, - __in BOOTSTRAPPER_PACKAGE_STATE /*state*/ + __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, + __in BOOL /*fCached*/ ) { return S_OK; @@ -265,9 +266,12 @@ public: // IBootstrapperApplication virtual STDMETHODIMP OnPlanPackageBegin( __in_z LPCWSTR /*wzPackageId*/, __in BOOTSTRAPPER_PACKAGE_STATE /*state*/, - __in BOOL /*fInstallCondition*/, + __in BOOL /*fCached*/, + __in BOOTSTRAPPER_PACKAGE_CONDITION_RESULT /*installCondition*/, __in BOOTSTRAPPER_REQUEST_STATE /*recommendedState*/, + __in BOOTSTRAPPER_CACHE_TYPE /*recommendedCacheType*/, __inout BOOTSTRAPPER_REQUEST_STATE* /*pRequestState*/, + __inout BOOTSTRAPPER_CACHE_TYPE* /*pRequestedCacheType*/, __inout BOOL* pfCancel ) { @@ -325,7 +329,9 @@ public: // IBootstrapperApplication virtual STDMETHODIMP OnPlannedPackage( __in_z LPCWSTR /*wzPackageId*/, __in BOOTSTRAPPER_ACTION_STATE /*execute*/, - __in BOOTSTRAPPER_ACTION_STATE /*rollback*/ + __in BOOTSTRAPPER_ACTION_STATE /*rollback*/, + __in BOOL /*fPlannedCache*/, + __in BOOL /*fPlannedUncache*/ ) { return S_OK; diff --git a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h index 1076952..7fe3ffd 100644 --- a/src/balutil/inc/BalBaseBootstrapperApplicationProc.h +++ b/src/balutil/inc/BalBaseBootstrapperApplicationProc.h @@ -159,7 +159,7 @@ static HRESULT BalBaseBAProcOnDetectPackageComplete( __inout BA_ONDETECTPACKAGECOMPLETE_RESULTS* /*pResults*/ ) { - return pBA->OnDetectPackageComplete(pArgs->wzPackageId, pArgs->hrStatus, pArgs->state); + return pBA->OnDetectPackageComplete(pArgs->wzPackageId, pArgs->hrStatus, pArgs->state, pArgs->fCached); } static HRESULT BalBaseBAProcOnPlanRelatedBundle( @@ -177,7 +177,7 @@ static HRESULT BalBaseBAProcOnPlanPackageBegin( __inout BA_ONPLANPACKAGEBEGIN_RESULTS* pResults ) { - return pBA->OnPlanPackageBegin(pArgs->wzPackageId, pArgs->state, pArgs->fInstallCondition, pArgs->recommendedState, &pResults->requestedState, &pResults->fCancel); + return pBA->OnPlanPackageBegin(pArgs->wzPackageId, pArgs->state, pArgs->fCached, pArgs->installCondition, pArgs->recommendedState, pArgs->recommendedCacheType, &pResults->requestedState, &pResults->requestedCacheType, &pResults->fCancel); } static HRESULT BalBaseBAProcOnPlanPatchTarget( @@ -213,7 +213,7 @@ static HRESULT BalBaseBAProcOnPlannedPackage( __inout BA_ONPLANNEDPACKAGE_RESULTS* /*pResults*/ ) { - return pBA->OnPlannedPackage(pArgs->wzPackageId, pArgs->execute, pArgs->rollback); + return pBA->OnPlannedPackage(pArgs->wzPackageId, pArgs->execute, pArgs->rollback, pArgs->fPlannedCache, pArgs->fPlannedUncache); } static HRESULT BalBaseBAProcOnApplyBegin( diff --git a/src/balutil/inc/IBootstrapperApplication.h b/src/balutil/inc/IBootstrapperApplication.h index 7d6a716..c284cb4 100644 --- a/src/balutil/inc/IBootstrapperApplication.h +++ b/src/balutil/inc/IBootstrapperApplication.h @@ -135,7 +135,8 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A STDMETHOD(OnDetectPackageComplete)( __in_z LPCWSTR wzPackageId, __in HRESULT hrStatus, - __in BOOTSTRAPPER_PACKAGE_STATE state + __in BOOTSTRAPPER_PACKAGE_STATE state, + __in BOOL fCached ) = 0; // OnDetectPackageComplete - called after the engine completes detection. @@ -164,9 +165,12 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A STDMETHOD(OnPlanPackageBegin)( __in_z LPCWSTR wzPackageId, __in BOOTSTRAPPER_PACKAGE_STATE state, - __in BOOL fInstallCondition, + __in BOOL fCached, + __in BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition, __in BOOTSTRAPPER_REQUEST_STATE recommendedState, + __in BOOTSTRAPPER_CACHE_TYPE recommendedCacheType, __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState, + __inout BOOTSTRAPPER_CACHE_TYPE* pRequestedCacheType, __inout BOOL* pfCancel ) = 0; @@ -214,7 +218,9 @@ DECLARE_INTERFACE_IID_(IBootstrapperApplication, IUnknown, "53C31D56-49C0-426B-A STDMETHOD(OnPlannedPackage)( __in_z LPCWSTR wzPackageId, __in BOOTSTRAPPER_ACTION_STATE execute, - __in BOOTSTRAPPER_ACTION_STATE rollback + __in BOOTSTRAPPER_ACTION_STATE rollback, + __in BOOL fPlannedCache, + __in BOOL fPlannedUncache ) = 0; // OnPlanComplete - called when the engine completes planning. diff --git a/src/balutil/inc/IBootstrapperEngine.h b/src/balutil/inc/IBootstrapperEngine.h index af6379f..ccb07f4 100644 --- a/src/balutil/inc/IBootstrapperEngine.h +++ b/src/balutil/inc/IBootstrapperEngine.h @@ -16,25 +16,25 @@ DECLARE_INTERFACE_IID_(IBootstrapperEngine, IUnknown, "6480D616-27A0-44D7-905B-8 STDMETHOD(GetVariableString)( __in_z LPCWSTR wzVariable, __out_ecount_opt(*pcchValue) LPWSTR wzValue, - __inout DWORD* pcchValue + __inout SIZE_T* pcchValue ) = 0; STDMETHOD(GetVariableVersion)( __in_z LPCWSTR wzVariable, __out_ecount_opt(*pcchValue) LPWSTR wzValue, - __inout DWORD* pcchValue + __inout SIZE_T * pcchValue ) = 0; STDMETHOD(FormatString)( __in_z LPCWSTR wzIn, __out_ecount_opt(*pcchOut) LPWSTR wzOut, - __inout DWORD* pcchOut + __inout SIZE_T * pcchOut ) = 0; STDMETHOD(EscapeString)( __in_z LPCWSTR wzIn, __out_ecount_opt(*pcchOut) LPWSTR wzOut, - __inout DWORD* pcchOut + __inout SIZE_T * pcchOut ) = 0; STDMETHOD(EvaluateCondition)( @@ -114,7 +114,7 @@ DECLARE_INTERFACE_IID_(IBootstrapperEngine, IUnknown, "6480D616-27A0-44D7-905B-8 ) = 0; STDMETHOD(Apply)( - __in_opt HWND hwndParent + __in HWND hwndParent ) = 0; STDMETHOD(Quit)( diff --git a/src/balutil/inc/balinfo.h b/src/balutil/inc/balinfo.h index 0d838ae..8c2155e 100644 --- a/src/balutil/inc/balinfo.h +++ b/src/balutil/inc/balinfo.h @@ -18,13 +18,6 @@ typedef enum BAL_INFO_PACKAGE_TYPE BAL_INFO_PACKAGE_TYPE_BUNDLE_PATCH, } BAL_INFO_PACKAGE_TYPE; -typedef enum BAL_INFO_CACHE_TYPE -{ - BAL_INFO_CACHE_TYPE_NO, - BAL_INFO_CACHE_TYPE_YES, - BAL_INFO_CACHE_TYPE_ALWAYS, -} BAL_INFO_CACHE_TYPE; - typedef struct _BAL_INFO_PACKAGE { @@ -39,7 +32,7 @@ typedef struct _BAL_INFO_PACKAGE LPWSTR sczUpgradeCode; LPWSTR sczVersion; LPWSTR sczInstallCondition; - BAL_INFO_CACHE_TYPE cacheType; + BOOTSTRAPPER_CACHE_TYPE cacheType; BOOL fPrereqPackage; LPWSTR sczPrereqLicenseFile; LPWSTR sczPrereqLicenseUrl; diff --git a/src/balutil/inc/balutil.h b/src/balutil/inc/balutil.h index affa492..fad8a47 100644 --- a/src/balutil/inc/balutil.h +++ b/src/balutil/inc/balutil.h @@ -51,7 +51,7 @@ DAPI_(void) BalInitialize( ********************************************************************/ DAPI_(HRESULT) BalInitializeFromCreateArgs( __in const BOOTSTRAPPER_CREATE_ARGS* pArgs, - __out IBootstrapperEngine** ppEngine + __out_opt IBootstrapperEngine** ppEngine ); /******************************************************************* diff --git a/src/balutil/packages.config b/src/balutil/packages.config index de70fed..08ea336 100644 --- a/src/balutil/packages.config +++ b/src/balutil/packages.config @@ -1,6 +1,6 @@  - - + + \ No newline at end of file diff --git a/src/bextutil/BextBundleExtensionEngine.cpp b/src/bextutil/BextBundleExtensionEngine.cpp index 9906a7f..6043e2d 100644 --- a/src/bextutil/BextBundleExtensionEngine.cpp +++ b/src/bextutil/BextBundleExtensionEngine.cpp @@ -56,7 +56,7 @@ public: // IBundleExtensionEngine virtual STDMETHODIMP EscapeString( __in_z LPCWSTR wzIn, __out_ecount_opt(*pcchOut) LPWSTR wzOut, - __inout DWORD* pcchOut + __inout SIZE_T* pcchOut ) { HRESULT hr = S_OK; @@ -107,7 +107,7 @@ public: // IBundleExtensionEngine virtual STDMETHODIMP FormatString( __in_z LPCWSTR wzIn, __out_ecount_opt(*pcchOut) LPWSTR wzOut, - __inout DWORD* pcchOut + __inout SIZE_T* pcchOut ) { HRESULT hr = S_OK; @@ -159,7 +159,7 @@ public: // IBundleExtensionEngine virtual STDMETHODIMP GetVariableString( __in_z LPCWSTR wzVariable, __out_ecount_opt(*pcchValue) LPWSTR wzValue, - __inout DWORD* pcchValue + __inout SIZE_T* pcchValue ) { HRESULT hr = S_OK; @@ -186,7 +186,7 @@ public: // IBundleExtensionEngine virtual STDMETHODIMP GetVariableVersion( __in_z LPCWSTR wzVariable, __out_ecount_opt(*pcchValue) LPWSTR wzValue, - __inout DWORD* pcchValue + __inout SIZE_T* pcchValue ) { HRESULT hr = S_OK; diff --git a/src/bextutil/bextutil.vcxproj b/src/bextutil/bextutil.vcxproj index c8671f3..b3ce96b 100644 --- a/src/bextutil/bextutil.vcxproj +++ b/src/bextutil/bextutil.vcxproj @@ -2,8 +2,8 @@ - - + + @@ -87,8 +87,8 @@ 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}. - + - + \ No newline at end of file diff --git a/src/bextutil/inc/IBundleExtensionEngine.h b/src/bextutil/inc/IBundleExtensionEngine.h index a96e381..63dadb0 100644 --- a/src/bextutil/inc/IBundleExtensionEngine.h +++ b/src/bextutil/inc/IBundleExtensionEngine.h @@ -7,18 +7,18 @@ DECLARE_INTERFACE_IID_(IBundleExtensionEngine, IUnknown, "9D027A39-F6B6-42CC-973 STDMETHOD(EscapeString)( __in_z LPCWSTR wzIn, __out_ecount_opt(*pcchOut) LPWSTR wzOut, - __inout DWORD * pcchOut + __inout SIZE_T* pcchOut ) = 0; STDMETHOD(EvaluateCondition)( __in_z LPCWSTR wzCondition, - __out BOOL * pf + __out BOOL* pf ) = 0; STDMETHOD(FormatString)( __in_z LPCWSTR wzIn, __out_ecount_opt(*pcchOut) LPWSTR wzOut, - __inout DWORD * pcchOut + __inout SIZE_T* pcchOut ) = 0; STDMETHOD(GetVariableNumeric)( @@ -29,13 +29,13 @@ DECLARE_INTERFACE_IID_(IBundleExtensionEngine, IUnknown, "9D027A39-F6B6-42CC-973 STDMETHOD(GetVariableString)( __in_z LPCWSTR wzVariable, __out_ecount_opt(*pcchValue) LPWSTR wzValue, - __inout DWORD* pcchValue + __inout SIZE_T* pcchValue ) = 0; STDMETHOD(GetVariableVersion)( __in_z LPCWSTR wzVariable, __out_ecount_opt(*pcchValue) LPWSTR wzValue, - __inout DWORD* pcchValue + __inout SIZE_T* pcchValue ) = 0; STDMETHOD(Log)( diff --git a/src/bextutil/packages.config b/src/bextutil/packages.config index de70fed..08ea336 100644 --- a/src/bextutil/packages.config +++ b/src/bextutil/packages.config @@ -1,6 +1,6 @@  - - + + \ No newline at end of file diff --git a/src/mbanative/mbanative.vcxproj b/src/mbanative/mbanative.vcxproj index 729d5df..f91fe3b 100644 --- a/src/mbanative/mbanative.vcxproj +++ b/src/mbanative/mbanative.vcxproj @@ -2,11 +2,11 @@ - + - + @@ -96,7 +96,7 @@ - - + + \ No newline at end of file diff --git a/src/mbanative/packages.config b/src/mbanative/packages.config index b5ba712..745fcae 100644 --- a/src/mbanative/packages.config +++ b/src/mbanative/packages.config @@ -4,6 +4,6 @@ - - + + \ No newline at end of file diff --git a/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj b/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj index 95d7ed5..b7bbd77 100644 --- a/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj +++ b/src/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj @@ -3,9 +3,9 @@ - - - + + + Debug @@ -50,10 +50,10 @@ - ..\..\..\packages\WixBuildTools.TestSupport.4.0.47\lib\net472\WixBuildTools.TestSupport.dll + ..\..\..\packages\WixBuildTools.TestSupport.4.0.50\lib\net472\WixBuildTools.TestSupport.dll - ..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\lib\net472\WixBuildTools.TestSupport.Native.dll + ..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\lib\net472\WixBuildTools.TestSupport.Native.dll @@ -62,14 +62,14 @@ - + 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}. - - - - + + + + \ No newline at end of file diff --git a/src/test/BalUtilUnitTest/packages.config b/src/test/BalUtilUnitTest/packages.config index 49b7621..6d381fb 100644 --- a/src/test/BalUtilUnitTest/packages.config +++ b/src/test/BalUtilUnitTest/packages.config @@ -1,10 +1,10 @@  - - - - + + + + diff --git a/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj b/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj index 886e3c2..f45b9b8 100644 --- a/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj +++ b/src/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj @@ -3,9 +3,9 @@ - - - + + + Debug @@ -49,10 +49,10 @@ - ..\..\..\packages\WixBuildTools.TestSupport.4.0.47\lib\net472\WixBuildTools.TestSupport.dll + ..\..\..\packages\WixBuildTools.TestSupport.4.0.50\lib\net472\WixBuildTools.TestSupport.dll - ..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.47\lib\net472\WixBuildTools.TestSupport.Native.dll + ..\..\..\packages\WixBuildTools.TestSupport.Native.4.0.50\lib\net472\WixBuildTools.TestSupport.Native.dll @@ -61,14 +61,14 @@ - + 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}. - - - - + + + + \ No newline at end of file diff --git a/src/test/BextUtilUnitTest/packages.config b/src/test/BextUtilUnitTest/packages.config index 49b7621..6d381fb 100644 --- a/src/test/BextUtilUnitTest/packages.config +++ b/src/test/BextUtilUnitTest/packages.config @@ -1,10 +1,10 @@  - - - - + + + +