Just got InstallShield Pro and I've created my setup singleimage executable.
I need to include the Visual C++ 2005 SP1 redistributable within the setup.
I've ticked the redistributable I want in the menu under 'Application Data'.
I've right clicked it and changed the 'Build Location' to 'extract from setup.exe'.
However, when I build my setup, it has a folder called 'ISSetupPrerequisites' which has the VC++ redistributable in it.
Is there anyway I can incorporate this in to a single exe with my installer?
If I remove that folder it downloads the redistributable from the internet.
Thanks
Yes. You can include the contents of the ISSetupPrerequisites folder inside the exe by changing their location in the setup.exe tab of the Releases view. You can change this on a .prq by .prq basis by right clicking a prerequisite in the Redistributables view and selecting a location there.
The 'Prerequisite' section of an InstallShield project includes modules which are external to the installation itself.
What you need to do is use the 'Merge Modules' feature (under Application Data => Objects) and select the relevant ones to include by your installer.
Another option is to manually add the redistributable exe in your Support dir, and call it during installation using InstallScript, like this:
LaunchAppAndWait("cmd","/c start /wait \"" + SUPPORTDIR ^ "vcredist.exe" +
"\" /q /norestart",LAAW_OPTION_WAIT | LAAW_OPTION_SHOW_HOURGLASS);
Note that if you're going to use this method in an InstallScript MSI project, you must call it during OnFirstUIBefore() or OnFirstUIAfter(), otherwise you will get an error regarding nested MSI installations.
I added a post build custom action aver the setup dialog success. Added vcredist_x86.exe to the install. And put /install as the command line - which is the only command line option that worked for me.
If I did it any other way the redist error-ed because two installs were going on.
In the View List under Media, click Releases.
Select the specific release.
Go to the Setup.exe tab.
For the InstallShield Prerequisites Location setting, select Extract From Setup.exe.
Related
When we do upgrades we just started getting the error message above. However, if I navigate to the PreReq folder (C:\ProductName\ISSetupPrerequisites\{AAEC4BE2-1C6B-45E0-B33D-0D657A05F292}) and run vcredist_x86.exe and the go to the other prereq folder (C:\ProductName\ISSetupPrerequisites\{8034C99E-3BC0-4E53-BC6E-02E3D8CF5378}) (in this order) it works fine and installs. I assume one of these is for C++ 2005 and one is for the SP1 version, but I'm not sure which is which.
I assume that the first one is for the first version and the second is for the SP1, cause if I install them in the reverse order it fails. Interestingly neither is selected as a pre-req on the Redistributables tab in Installshield. So the problem may be the order in which it's trying to install them. I don't even see C++ 2005 (non-SP1) in the list of Redistributables in IS, but for some reason two vcredist_x86.exe files are included in the release and when run in the right order (outside of the install) they work fine.
So how can I change the order in the installer or just get this to work? I reverted all of the changes in my .ism file to back before this started happening and that hasn't helped.
PS I also posted this question to the InstallShield forum.
From my understanding, there is no reason to install both of these VC++ 2005 redistributables. You likely only need the newer one.
Since you say that they are not checked on the Redistributables tab, it means they are likely added automatically by InstallShield at build time. This happens because you have the .NET Scan at Build option set to Dependencies and Properties on some of your components. With this setting, InstallShield scans the component files and tries to add any dependencies needed.
If you know what dependencies are needed, you can turn off that setting and then choose the necessary dependencies yourself on the Redistributables (or Prerequisites) tab.
There's nothing magical about these GUIDs - they are just the GUIDs that InstallShield uses in their pre-defined prerequisites:
{8034C99E-3BC0-4E53-BC6E-02E3D8CF5378} is VC++ 2005 SP1 (x86)
{AAEC4BE2-1C6B-45E0-B33D-0D657A05F292} is VC++ 2005 SP1 MFC Security Update KB2538141 (x86)
If the prerequisite you need is not included with InstallShield, you can define your own prerequisite. Go to Tools / Prerequisite Editor.
I'm attempting to update a current windows form project through installshield. I'm following the steps to the second answer on this question: Configuring InstallShield LE to remove previous versions built using Visual Studio Setup Projects
However I'm hitting a snag: When I add an update path, it brings up a file dialog, and I can't locate the MSI file. I have the setup.exe stored on a shared drive.
I'm a little lost. I apparently cannot build my install project if I create a new Upgrade Path and cancel out of the dialog.
I have a C# class library that references System.Data.SQLite (from nuget). This is the structure of my bin folder after build:
MyProject.dll
System.Data.SQLite.dll
x86/SQLite.Interop.dll
x64/SQLite.Interop.dll
System.Data.SQLite needs the SQLite.Interop to run and the correct dll is found at run time. However, when I generate a setup with InstallShield that includes the project primary output, the x86 and x64 folders are not copied and my application fails to run.
There is any way to force Visual Studio to include x86 and x64 folders in the primary output?
There is any way to include the folders manually in the InstallShield with relative path?
My environment:
Visual Studio 2012 Professional
Install Shield 2013 Limited Edition (Free)
System.Data.SQLite 1.0.96
Yes, there is a way to add/deploy folders through InstallShield. Under the Files tabs you can add the files/folder. While adding these files you can set relative path as well in this. Just set a property with the path and use that property in your relative path. So where do want to copy these files (reference locations for DLL), you can add that folder structure through InstallShield and you can add files in that.
I just ran across the same problem using VS2013 / Installshield LE; I ended up opting for changing the NuGet package on my machine to NOT create the x86 folder for the SQLite.interop.dll under the build folder.
To do that, look in the "packages\System.Data.SQLite.Core.1.0.104.0\build" folder under your project directory. Then pick the subfolder pertinent to the version of .NET you're targeting, and open the "System.Data.SQLite.Core.targets" file in a text editor. You'll want to delete all references to "%(RecursiveDir)" EXCEPT in the "SQLite Interop Library Content Items" section. Save, clean, and rebuild - the interop dll should now be in the same folder as the main executable/etc, and Installshield should be able to automatically include it as a dependency.
If it doesn't show up in the right place, try editing a different .NET version's .target file until you hit the right one.
I tried to install Visual Studio 2012 . but it showing me "Unable to locate package source" I can select "Download from the internet" or "Provide a location to search for the packages" And this is path that comes up:
C:\Users\JA\Download\packages\vcRuntimeDebug_amd64\cab1.cab
(the 'packages' folder does not exists) When I select to download from the internet its showing up again after some time, I searched for "vcRuntimeDebug_amd64" folder but it doesn't contain "cab1.cab" file ;/
Note please, that i runned setup file as administrator and i disable firewall .
I had the same problem but with Windows Phone 8 SDK. I tried several things (which are detailed below, in my previous answer), and the best option was to download the ISO, found in the Install Instructions section:
http://www.microsoft.com/download/details.aspx?id=35471
After finishing, it said it couldn't download that runtime, but at least the emulator is running fine. I guess you could manually download that runtime
afterwards if you have any problems. Here's the link:
http://www.microsoft.com/download/details.aspx?id=30679
Previous attempts:
I downloaded the Visual C++ Redistributable for Visual Studio 2012 Update 4 to see if that way the installer skipped that step, but it didn't work.
Then I looked for cab1.cab in my disk and found it in several folders, being this one the one that worked:
C:\ProgramData\Package Cache\{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}v11.0.61030\packages\vcRuntimeMinimum_amd64
Of course that GUID will be different in your case, so you should look for a vcRuntimeMinimum_amd64 folder.
Inside that folder was not only the cab1.cab but also a vc_runtimeMinimum_x64.msi file. When I told the installer to use that folder, it still didn't work. Then I chose "Browse" but when I opened that folder it didn't show any file because the installer was looking for vcRuntimeMinimum_x64 (without the underscore). I typed "." in the textbox so it showed all the files, I chose vc_runtimeMinimum_x64.msi and the installation continued. It took a while but it worked.
Later I had the same issue with sdk_tools35res.cab. I told the installer to use v3.11.50727\packages\sdk_tools35res\sdk_tools35res.msi and the process continued.
But in the end, I got three errors: Tools for .Net 3.5, MS VC++ runtime and .NET 4.5 SDK. So then I decided to download the ISO.
I have used the ajaxtoolkit with .NET 4 and Visual Studio 2010, and I was able to add a new tab to the toolbox and add the ajaxtoolkit controls to the toolbox. How do I do this in Visual Studio 2012?
I have added the ajaxtoolkit with NuGet, but I would like to see the controls in the toolbox, so I can drag the controls in. How is this done?
It's located in the packages folder created by Visual Studio 2012 after you use NuGet Package Manager to download it.
Create a tab in Visual Studio (you can name it Ajax Toolkit).
Right click on it and select: Choose Items..
Click Browse and navigate to the packages folder that Visual Studio 2012 creates with your source. Something like this: ..\packages\AjaxControlToolkit.7.0123\lib\40\AjaxControlToolkit.dll
Select AjaxControlToolKit.
I just installed it in Visual Studio 2013. Here's a summary of the process:
Click on solution and Manage Nuget Packages
Filter for AJAX and select the Ajax Control Toolkit
After NuGet installs this, it won't be in the toolbox!
Create a new toolbox group for AJAX CONTROL TOOLKIT
Add Items
Browse
Navigate to the toolkit URL. Project is Webapplication1 in the c:\temp folder so the toolkit was in: C:\temp\WebApplication1\packages\AjaxControlToolkit.7.1213\lib\45 (because I am using framework 4.5)
Click OK and the toolbox should be populated.
Slight sort cut for finding the dll folder, for example step 7 in the instruction set given by user3546149.
(Good job, I would up vote your answer but no reputation).
AjaxControlTookkit should show under References for the project. Right click it and select Properties. The Path property is the path to the AjaxControlToolkit.dll. Copy that Path property.Then for step 7 paste the Path property directly in the search box. Saves eye strain and clickity click oops syndrome.
(Works for VS 2013 also, maybe others).
The current version of the AJAX Control Toolkit does everything to install itself into the VS toolbox. First exit out of VS (it will tell you to exit if you don't) then click the Download button in AJAX Control Toolkit.
To install Ajax Control Toolkit, run the following command in the Package Manager Console
PM> Install-Package AjaxControlToolkit
this is install the Ajaxtoolkit in your current project..