1) I needed a wrapper because my application is not written in C. This is the
only semi fragile part of the setup, as the internals of how the bundle info is
stored could change over time (low likelihood, but it is possible). You need to
remember to recompile your wrapper DLL any time you update the version of Wix
you are using for your Bundle (Rob/Wix didn't want to have to maintain another
helper DLL).
// WixUtil.cpp
#include "stdafx.h"
#include "WixUtil.h"
#pragma comment(lib, "dutil.lib")
HRESULT DAPI WixBundleGetBundleInfo(
__in LPCWSTR szBundleId, // Bundle code
__in LPCWSTR szAttribute, // attribute name
__out_ecount_opt(*pcchValueBuf) LPWSTR lpValueBuf, // returned value,
NULL if not desired
__inout_opt LPDWORD pcchValueBuf // in/out buffer
character count
)
{
return BundleGetBundleInfo(szBundleId, szAttribute, lpValueBuf,
pcchValueBuf);
}
HRESULT DAPI WixBundleEnumRelatedBundle(
__in LPCWSTR lpUpgradeCode,
__in BUNDLE_INSTALL_CONTEXT context,
__inout PDWORD pdwStartIndex,
__out_ecount(MAX_GUID_CHARS+1) LPWSTR lpBundleIdBuf
)
{
return BundleEnumRelatedBundle(lpUpgradeCode, context, pdwStartIndex,
lpBundleIdBuf);
}
2) Yes, and write code in the application for the querying and invoking of the
bundle.
3) One could, though I just looked and in my use case I hard coded the upgrade
code.
I implemented a custom switch to my the BA, so that I could customize the user
experience. (Display minimal/no UI while checking, display full UI if update is
found, auto close the bundle if no update is found, etc.) The updates have been
in Wix for some time, the 3.9 RC has my changes for allowing the engine to
download and parse the atom feed instead of having to do it from within your BA.
-----Original Message-----
From: gregbty [mailto:[email protected]]
Sent: Wednesday, August 27, 2014 2:08 PM
To: [email protected]
Subject: Re: [WiX-users] Updater application using Bootstrapper UI/Bundle
Thanks for the quick response! So essentially I will need to:
1) Create a wrapper for butil (if you have an example that would be great)
2) Install the wrapper with my application
3) Add the WixBundleProviderKey to my application so that I can save the value
to use with the wrapper later
This will allow me to call to the wrapper with the key and basically open the
Bootstrapper as an "updater". From there I can do all the necessary leg work in
the OnDetectUpdateBegin event, etc to download and install the appropriate
update, if there is one of course. Is that correct? Is this part of the WiX 3.9
RC?
--
View this message in context:
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Updater-application-using-Bootstrapper-UI-Bundle-tp7596579p7596589.html
Sent from the wix-users mailing list archive at Nabble.com.
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users