Confliction between msi and exe distribution
Using wise to generate my App installer, two installer App.exe and App.msi generated, which should be the same except the language wrapper in EXE.
Here is the problem;
1. Install my App by running App.exe
2. Run App.msi
3. Maintennace Dialog appears, Selecet Repair and Press 'Next'.
4. Error 1316. A network error occurred while attempting to read from the file: C:\Program Files\Common Files\Wise Installation Wizard\App.msi
5. Open 'C:\Program Files\Common Files\Wise Installation Wizard', I find the filename actually is: WIS3F5C371F8EA24F259D3DD0B4526E3AEA_9_10_0513.MSI
I find the root cause is that when doing a repair, Windows expects the installer to have the same name as the original installer(App.msi). If it isn't, then get an error.
Is there any ideas about how to fix this issue? thanks in Advance.
Comments
What happens if you go into
What happens if you go into Add/Remove programs, select your application, then trigger repair from there?
The repair should actually be running from c:\windows\installer, which is where the locally cached MSI should be located.
Can I also enquire why you deploy an EXE then try to redeploy an MSI ?
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
Here is the reason: I deploy
Here is the reason:
I deploy the EXE for web download which has multi-language support, and deploy the MSI in CD which need be exucuted in silent installation by other installers.
(I can not use EXE for quiet installation as there is a limitaion in WISE, see https://www-secure.symantec.com/connect/forums/qui...)
The real case is if end-user download and installed the exe installer from web first, then later, he get a installation CD which will excute the MSI silent installation, problem happens.
It looks like when running APP.exe it extract to mis to "C:\Program Files\Common Files\Wise Installation Wizard\" and changed the file name also, something like "WIS3F5C371F8EA24F259D3DD0B4526E3AEA_9_10_0513.MSI", which cause repair fail if using App.msi.
Rename the MSI
What I would try to do is to edit the Wisescript stub that acts as the EXE wrapper so that it renames the MSI in the Wise Installation Wizard folder back to App.msi
The MSI execution call is pretty much the last operation in the stub, but you could change the Execute Program command to wait until MSIEXEC terminates and then rename the file as it should no longer be locked.
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
Where is the EXE
Where is the EXE wrapper(Wisescript) used by WISE6.2?
BTW, the build option of the App.exe using is "Single-file .EXE".
I don't have WFWI 6.2 but I'm
I don't have WFWI 6.2 but I'm going to assume that it works the same as other versions.
When you have selected the Compile to EXE option in build options, then go to Prerequisites and check the "Edit Script" button. If it is greyed out, add a dummy prerequisite, such as Notepad.exe, and then the button should be enabled. You can then edit the script which handles the MSI install as mentioned above.
If you have added a dummy pre-req, don't forget to remove it while editing the script.
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
You cannot edit the Wise
You cannot edit the Wise script to change the name of the MSI in "C:\Program Files\Common Files\Wise Installation Wizard\" directly, because this naming is handled by some internal Wise logic not available in the wise script. You can however rename the file at the end of the wise script AFTER the MSI is installed, if you figure out the name of the MSI. The name is stored in HKEY_LOCAL_MACHINE\Installer\Products\<packed ProductCode>\SourceList\PackageName. You can read this key to get the file name, rename the file and then also of course rename the file name in the registry key.
A big warning here. There is a reason Wise uses different file names for the cached MSI files (the same reason also Windows Installer has random names on all cached packages in %WINDIR%\Installer). Otherwise it could lead to a situation where several products (or different versions of a product) are trying to use the same MSI file in the Wise cache folder. Because of this, I would consider all use cases before trying to change the default behaviour of the Wise installer.
If you put enough effort trying to learn the logic of the prerequisite wse script, you might actually be able to solve the original problem. The wise script command line processing is not very good, it is actually broken in Wise 7 when editing the prerequisite scipt. Therfore I had to write my own complete include script that reads and processes the command line and then later on passes on the correct command line to the MSI.
Thanks Johan
What I was suggesting is precisely what you have described, but in reading back my postings I realised that I had not made it clear enough, so appreciate your much clearer description.
As you say, the Wise stub is far from perfect and I agree that rewriting it to do exactly what you require is a cleaner solution, but might be a little challenging for new users.
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
Thanks all you both, sorry
Thanks all you both, sorry for later response as my HD was broken few dasy ago, I'll try what you guys suggested, and get back to you asap
Otherwise it could lead to a
Otherwise it could lead to a situation where several products (or different versions of a product) are trying to use the same MSI file in the Wise cache folder. Because of this, I would consider all use cases before trying to change the default behaviour of the Wise installer.
-- Considering your kindly warning, I find this won't be a problem for me as different versions of my products have different MSI file names, like App_v1.msi, App_v2.msi.
Would you like to reply?
Login or Register to post your comment.