[wix-users] Managed Bootstrapper: Error 0x80070002: Failed while prompting for source
Phill Hogland
phill.hogland at rimage.com
Wed Mar 30 06:30:23 PDT 2016
I am not sure that I really follow the original question, and I do run on Wix 3.10.2 and do not have any problem modifying the source for my MSI packages. while e.LocalSource and e.DownloadSource are read only, I parse those values and other information and if I need to change the source in Resolve source I call Engine.SetDownloadSource followed by returning Result.Download.
Here is a snippet of the last part of my ResolveSource handler (which I originally based on code similar to WixBA::InstallationViewModel::ResolveSource. After I have determined if I need to change the download URL I do the following (which may be different than what the OP is doing since my MSI packages are staged to a web server similar to the WixBA, and I suspect he is using a local embedded container).
if (!fIsBundle && need_to_chang_url_to_value_of_downloadURL)
{
try
{
// Throws exception when called on a bundle with either a ContainerId and PayloadId is provided
myapp.Engine.SetDownloadSource(e.PackageOrContainerId, e.PayloadId, downloadUrl.ToString(), String.Empty, String.Empty);
}
// Since now we test for !fIsBundle this exception should not happen.
catch (InvalidOperationException ex)
{
....log the exception
}
catch (ArgumentException ex)
{
....log the exception
}
}
//use e.PayloadId as the downloadRetries Dicionay index, unless it is null. For packages (or containers) e.PayloadId and e.PackageOrContainer are the same value.
string packageContainerPayloadId = String.IsNullOrEmpty(e.PayloadId) ? e.PackageOrContainerId : e.PayloadId;
this.downloadRetries.TryGetValue(packageContainerPayloadId, out this.retries);
this.downloadRetries[packageContainerPayloadId] = this.retries + 1;
e.Result = this.retries < this.RetriesMaxLimit && (null != downloadUrl) ? Result.Download : Result.Ok;
}
Not an expert and I may not understand the issue, but I hope this helps. My mba/the Burn Engine downloads only the packages that it needs at install time, and Burn caches the bundle. Later I also allow the user to launch and modify selecting a msi that may not have been selected, and it installs as expected using the downloadURL to locate the package.
________________________________________
From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of John Cooper <JoCooper at jackhenry.com>
Sent: Wednesday, March 30, 2016 8:08 AM
To: WiX Toolset Users Mailing List
Subject: Re: [wix-users] Managed Bootstrapper: Error 0x80070002: Failed while prompting for source
In WiX 3.10.2 and later, you're going to have problems the bundle like that. You're getting ACCESS DENIED.
--
John Merryweather Cooper
Senior Software Engineer | Integration Development Group | Enterprise Notification Service
Jack Henry & Associates, Inc.® | Lenexa, KS 66214 | Ext: 431050 |JoCooper at jackhenry.com
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Farrukh Waheed
Sent: Wednesday, March 30, 2016 7:15 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: [wix-users] Managed Bootstrapper: Error 0x80070002: Failed while prompting for source
The e-mail below is from an external source. Please do not open attachments or click links from an unknown or suspicious origin.
Hi Experts,
I'm delivering 3 msi packages in my Managed Bootstrapper (MBA). User is given choice to select which packages he/she wants to install. All goes well. When user tries to Modify the installation from Control Panel, selects new package from dialog and original source (MBA.exe) is missing, installation failed with following log:
[553C:0A88][2016-03-30T16:00:54]w341: Prompt for source of container:
WixAttachedContainer, path: D:\work\MBA.Install.Bundle\bin\Debug\MBA.exe
[553C:0A88][2016-03-30T16:00:54]e054: Failed to resolve source for file:
D:\work\MBA.Install.Bundle\bin\Debug\MBA.exe, error: 0x80070002.
[553C:0A88][2016-03-30T16:00:54]e000: Error 0x80070002: Failed while prompting for source (original path 'D:\work\MBA.Install.Bundle\bin\Debug\MBA.exe').
[553C:0A88][2016-03-30T16:00:54]e311: Failed to acquire container:
WixAttachedContainer to working path:
C:\Users\Me\AppData\Local\Temp\{1338381A-F85F-4B6D-83EA-A0A2D1A369C1}\10A35D6D6CAC04B3DC248033B1588CBD67AD698B,
error: 0x80070002.
[553C:0A88][2016-03-30T16:00:54]i000: CachePackageComplete:
Pkg_Id=EMS.Server Resulted=None
[553C:0A88][2016-03-30T16:00:54]i000: CacheComplete: Status=-2147024894
[553C:3C24][2016-03-30T16:00:54]e000: Error 0x80070002: Failed while caching, aborting execution.
I've tried to capture this in ResolveSource event handler. e.LocalSource and e.DownloadSource are readonly properties. There is not criteria to download missing file, all needs to be present locally.
I read about the Propmpt to get the Source of original installer here:
https://blogs.msdn.microsoft.com/heaths/2007/10/25/resolvesource-requires-source/
but this is about msi installer, while in my MBA, this dialog is suppressed.
How can I take set the LocalSource manually (may be by taking input via dialog from user)?
Can I set WixAttachedContainer to some other working path at runtime but taking input from user?
Thanks a bunch...
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
NOTICE: This electronic mail message and any files transmitted with it are intended
exclusively for the individual or entity to which it is addressed. The message,
together with any attachment, may contain confidential and/or privileged information.
Any unauthorized review, use, printing, saving, copying, disclosure or distribution
is strictly prohibited. If you have received this message in error, please
immediately advise the sender by reply email and delete all copies.
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
More information about the wix-users
mailing list