I imported into Visual Studio 2013 a Setup and Deployment project created in Visual Studio 2010. In my project, I had selected 'Download prerequisites from the same location as my application. But when I tried to build my setup project, I was getting an error such as :
To enable 'Download prerequisites from the same location as my application' in the Prerequisites dialog box, you must download file 'XXXXXXXX' for item 'XXXXXXX' to your local machine. For more information, see http://go.microsoft.com/fwlink/?LinkId=239883
In this case, the link was actually useful for solving the problem. Basically I had to download the MSIs and then copy them to the Bootstrapper folder where it checks--in my case: C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages\<folder for prerequisite>\
When I was using Visual Studio 2010 I didn't have to do this--the redistributable MSIs were already in the correct bootstrapper folder.
Maybe the Visual Studio Installer Projects Extension should add them as part of the install to avoid this hastle for others
1. I have VS 2013 ultimate (I am working on Windows 8.1 OS) 2. Update 3 is installed 3. Installed this extension 4. Added a setup project for my windows service 5. I could build and create MSI 7. Saved the solution which has this setup project along with my other projects. 8. Exited VS 2013 9. When I start VS 2013 and open this solution, VS 2013 crashes 10. Restarted my computer to see if that fixes the problem. Unfortunately, same problem. 11. Even installed Update 4 CTP to see if that changes anything. VS 2013 still crashes when I open the solution.
Let me know if you need the log files (or any other information) that might help you guys to fix this problem. This is definitely as CRITICAL issue IMO.
Solved our problem with useless InstallShield's Limited Edition (ISLE! Thanks for bringing back simple and working msi installer! Non-working ISLE Installer packages were my only reason not upgrading to VS2013 but now we can. I hope Microsoft dumps InstallShield Limited Edition (ISLE)and go back to their own msi installer that is actually working. Anyway, thanks for creating this extension may code Gods take away all pains away from you :)
It's great to have support for building old VS installer projects in VS2013 and it will really help people move away from using VS2010. Unfortunately though it's not that great for anything other than legacy programs. New ClickOnce setup packages for newer components don't seem to be getting released meaning you have to try and roll your own if you update your programs to use any newer components. To make it worse, the old Bootrapper Manifest Generator has disappeared from MS's website so making those packages is just that little bit harder and time consuming. I can't help but feel that this extension is a half-hearted attempt to appease all the users who wanted proper support for these projects. It's clear that proper support won't be given though. ClickOnce and VS installer projects are pretty much dead in the eyes of MS. I just wish MS would provide a viable alternative other than ISLE or the not very user friendly WiX. We still need to write desktop apps and we need a good easy to configure and build installer. This isn't it.
For everyone who needs the setup projects to run on Windows XP or Windows 2003, here are steps for a workaround which worked for me.
- Create a simple dummy setup in Visual Studio 2010 (you just need a VS 2010 .msi).
- Install the tool “MsiDB” from Microsoft or look if it is installed on your drive (search for “MsiDB.exe”). For me it was on C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin.
- Start the tool an select the Visual Studio 2010 .msi. Select an export folder.
- Select “Binary” in the tool, select “Export” and click “OK”. (Now new files are found in the previous selected export folder.)
- Close the tool!
- Create your Visual Studio 2013 setup project.
- Start “MsiDB” again and now select the VS 2013 .msi. Select an OTHER export folder.
- Select “Binary” in the tool, select “Export” and click “OK”.
- Now, this is the magic (!). Copy the file “MSVBDPCADLL.ibd” from the VS 2010 export folder to the VS 2013 export folder and overwrite the existing file.
- Now select “Import” in the tool a select “Binary.idt” and then hit “OK”. (There is no visual response after clicking OK so make sure you click it.)
- Close the tool with “Quit”.
- Now you should see, that the last edit date of the VS 2013 .msi changed. Your setup is now ready for WinXP / Win 2003.
I have tested it also on Win 2012 R2. It worked for me every time!
Hope this helps you to.
Cheers from beautiful Austria! - Xian
The final solution:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\MsiDb.Exe" -f "D:\Temp\VS2010-MSI-IDT" -i Binary.idt -d "C:\TO\VS2013Setup.msi"
The folder should contain Binary.idt and the folder Binary. They can be extracted just once from VS2010Setup.msi using the following command:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\MsiDb.Exe" -d "C:\TO\VS2010Setup.msi" -f "D:\Temp\VS2010-MSI-IDT" -e Binary
Thank you, Xian!
VBScript Version (once you have extracted MSVBDPCADLL.ibd from a VS2010 MSI):
Const msiOpenDatabaseModeReadOnly = 0
Const msiOpenDatabaseModeTransact = 1
Set installer = Wscript.CreateObject("WindowsInstaller.Installer")
Set Record = Installer.CreateRecord(1)
Record.SetStream 1, "C:\Binary\MSVBDPCADLL.ibd"
Dim databasePath:databasePath = Wscript.Arguments(0)
Dim database : Set database = installer.OpenDatabase(databasePath, msiOpenDatabaseModeTransact)
Set View = Database.OpenView("UPDATE `Binary` SET `Binary`.`Data` = ? WHERE `Binary`.`Name`='MSVBDPCADLL'")
WScript.Echo ".MSI Updated"
Anybody else having issues with dependency detection for C++ projects? It seems the extension dropped my dependencies from the VS2010 vdproj, and won't regenerate them. If I re-add my project outputs some of them are re-added, but they soon disappear again.
We get errors when using installers built in 2013 and running on XP machines that don't exist when the installer is built in VS2010. We are not alone as I found this guy had looked into it quite a lot and has the EXACT same problem we have including the error message. http://stackoverflow.com/questions/23978677/dirca-checkfx-return-value-3-vs-2013-deployment-project
Is this planned to be fixed. Surely XP has to be supported from an installer point of view? And why has it been broken versus VS2010?
I've also encountered this problem found temporary solution - set DIRCA_CheckFX and VSDCA_VsdLaunchConditions Condition to 0 in InstallUiSequence and InstallExecuteSequence tables. But this operation block chceckig for installed prequsite components :/
Although the Productcode is different, RemovePreviousVersions is true, Version is higher, file versions of DLLs are higher an upgrade installation seems to run through without any errors (in UI). But if you look in the installation folder then only a new DLL is placed there, all the others that should have been replaced are deleted. Registry settings are fine. A new installation is also fine. Has someone similar experiences? The setup properties are the same as in the installer we build with VS2008. There the upgrade installation worked.
Build with Visual Studio 2013 on a Windows 8 machine. The installer doesn't work for Windows XP, Windows 8 with error message: "the setup requires internet explorer version 5.1 or higher and Windows XP or higher....".
I tried Diego's solution replacing the dpca.dll, but after rebuilt, I got the same error.
When build a project that works fine in Visual Studio 2010 and invoke custom actions occurs an error:
DEBUG: Error 2835: The control ErrorIcon was not found on dialog ErrorDialog
El instalador encontró un error inesperado al instalar este paquete. Esto puede indicar un problema con este paquete. El código de error es 2835. Los argumentos son: ErrorIcon, ErrorDialog,
Error 1001. Error 1001. InstallUtilLib.dll: Unknown error.
MSI (s) (8C!08) [13:17:12:426]:
DEBUG: Error 2769: Custom Action _E8C2335F_8251_4C1A_8B0C_AEF0D1161778.install did not close 1 MSIHANDLEs.
El instalador encontró un error inesperado al instalar este paquete. Esto puede indicar un problema con este paquete. El código de error es 2769. Los argumentos son: _E8C2335F_8251_4C1A_8B0C_AEF0D1161778.install, 1,
CustomAction _E8C2335F_8251_4C1A_8B0C_AEF0D1161778.install returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
La acción terminó a las 13:17:12: InstallExecute. Valor devuelto 3.
Acción 13:17:12: Rollback. Revertir la acción:
After compare the msi generated in VS 2010 and 2013 I found two differences:
1.) In the binary table: MSVBDPCADLL file
2.) In the file table: dll that contains custom action has wrong file size
After many test the only way that the setup works correctly is when replace the file "MSVBDPCADLL" in the msi with a VS2010 version. It also works when replace the file dpca.dll from directory "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\Deployment" to directory "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\VSI\bin"
For this test create a basic setup project that invokes a custom action dll that contains installer class. I work in Windows 8.1 Update x64 with Visual Studio 2013 Premium.
I have replaced the dpca.dll from directory "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\Deployment" to directory "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\VSI\bin" , but still i get the same error Error 1001. InstallUtilLib.dll: Unknown error.
When i replace the dll, as suggested, then if i click on the setup project and click on install , then there is message saying that you need .Net 4.5 to run this setup. But when i dont replace the dll it shows the message Error 1001. InstallUtilLib.dll . Can you please let me know how to resolve this
The solution is to replace the dpca.dll as Diego suggests. The key is to find the right dpca.dll file. Here are the details of the file that I used and works...
Prod Version: 10.0.40219.311
Size: 231 KB
Date: 4/22/2011 2:57 PM
Web setup projects built using this new extension (v. 188.8.131.52) hang when custom actions are defined.
According to the install log file, the last action executed is:
Executing op: CustomActionSchedule(Action=_99929182_20CB_41DB_B548_48572713E9E6.install,ActionType=3073,Source=BinaryData,Target=ManagedInstall,CustomActionData=/installtype=notransaction /action=install /LogFile= ...)
And then I have to kill msiexec.exe process because it hangs forever.
Anyone is experiencing this?
By the way, regular setup projects are calling my custom actions withou issues.
Is anyone else seeing doubled (and sometimes tripled) build output?
It appeared the installer project was getting built multiple times during a solution build (F6). However I have a post build event that generates a new guid for the Product code each build and it appears the same for each build. So the problem appears to just be the output...
I'm running version 0.9.1.0