InstallShield 2009 Support Files/Billboards with multiple files - installshield

I need to execute the microsoft visual studio redistributable 2005 and 2010 as a prerequisite. I added the two files in Suport Files/Billboards section:
But now, I don't know how to run the distributables files. In a older version where only ran the 2005 version I saw the line in the install script file:
// Install the Visual C++ 2005 SP 1 Redistributable Package
LaunchAppAndWait ( SUPPORTDIR ^ "vcredist_x86.exe", "\q", WAIT );
What I have to do to run the two redistributable files?
Thanks in advance.

LaunchAppAndWait (or better yet LaunchApplication these days) can handle two files in two folders fine, but the support files view does not. You can either rename them; place them in folders next to setup.exe and use something like PACKAGE_LOCATION; or download them at install time with XCopyFile.
If you're using a recent enough version of InstallShield, you can instead use prerequisites in an InstallScript project which will just handle these details for you. I forget quite when that was added. InstallShield 2009 is pretty old now.

Related

Add C++ redistribuitable in my .msi and install on silent

I am working with a setup project of Visual Studio 2015. I want to distribute the 2015 C++ library, vc_redist.x86.exe. But I don't want user to be aware of this pre-requisite, so the idea is that while he is running the .msi, the C++ library will be auto-installed.
I have been reading about the merge modules, but this cannot fix my problem because the setup.exe should be run. Please, could anybody tell me how to deal with this?
Many thanks!
You'll need to change (or create your own custom one) the standard bootstrapper that has documentation starting here:
https://msdn.microsoft.com/en-us/library/ms165429.aspx
The bootstrapper packages contain the detection and install logic for the redistributables. For example, the \Bootstrapper\Packages folder has VC redist folders, each with a product.xml and a package.xml about installing them as prerequisites. They have standard command lines such as:
Command PackageFile="vcredist_x64.exe" Arguments=' /q:a
and you can substitute that command with something like those listed here:
http://asawicki.info/news_1597_installing_visual_c_redistributable_package_from_command_line.html
that show the quiet options (as do standard Microsoft docs somewhere).

Need to upgrade the package done in Installshield professional edition 6.3 with installshield 2011

I have got a project for Installshield.
It has an application to which we need to package. But the challenge is currently they are using the
Installshield professional edition 6.3, and all the process are run trough installscripts.
Also they are using some scripts to upgrade the package every month whenever there is some upgrade.
The files will copy from the server to the location and build.
To the same application, now we need to add some customization, which does not affect their previous
behaviour of the application. Every month they need to upgrade the package without actually repackaging
or upgrading through GUI and which should be done through scripts.
How do we actually handle this case. When we does not support Installshield professional edition 6.3
anymore.
And that package needs to work in all operating systems from Windows 95.
I see that this question has been up here for awhile, but I will answer it just in case it helps someone with the same issue.
InstallShield has pretty robust support for upgrading projects created in previous versions.
Your best option is to purchase the latest version of InstallShield and upgrade the ISM (InstallShield Project File). This process will create a backup of your previous Installer project. The upgrade should import the project correctly as an InstallScript project (rather than an MSI flavor of project).
Once you finish upgrading your ISM project file from InstallShield 6.3 to the latest version, you should be able to edit the InstallScript rul files from within the InstallShield IDE just as you did previously with InstallShield 6.3
The InstallShield IDE has built-in options for supporting a wide variety of Windows operating systems.

RC2176 : old DIB in res\MyApp.ico; pass it through SDKPAINT in VC++ 2008

Yeah, a question regarding this error exists. But I think it's quite different situation from the one the OP was in.
I just created a MFC application in VC++ 2008 (pro version) and compiled it. The compilation failed because of the error
RC2176 : old DIB in res\MyApp.ico; pass it through SDKPAINT
I must've missed something because VC++ created the icon that is not compiling. Any clue would be appreciated.
UPDATE: I forgot about this issue for a while. I fixed the problem by following solution to this question - Can't open resource editor in VC++ 2008
Answered already in the linked question: error RC2176 : old DIB in res\icon3.ico; pass it through SDKPAINT?
If you would install and integrate a more recent (same or later release date than VS 2008) SDK with VS 2005, that also resolves it. You can also go to C:\Program Files\Microsoft Visual Studio 8\VC\bin (or your equivalent of the path) and replace the files rcdll.dll and rc.exe with the ones from a more recent VS, WDK or SDK.
Side-note: the version of rcdll.dll and rc.exe must match, that is you need to copy both at once from your source (be it VS, WDK or SDK). For me any version starting with 6.0 or 6.1 worked. That's any version starting from the compilers that accompanied the Vista SDKs and VS versions or later.
Did you install Service Pack 1? Also, if you install a newer Windows SDK and use it in your environment, this could very well cause a conflict of some kind.

Is redistribution of the C++ 2008 Redistributable Package forbidden?

A naive mind would expect you're allowed to redistribute a package called redistributable. And a lot of software ships with the redist package and install them. But the software license terms of the Microsoft Visual C++ 2008 Redistributable Package clearly state: "You may not ... publish the software for others to copy".
I've read the answer to Can Microsoft Visual C++ 2008 Redistributable Package be freely redistributed, but unfortunately the only source of information there is a 3rd party how-to that has no legal value.
Is there a legal way to ship the C++ Redistributable Package or do we have to point customers to the download page?
Background:
We have permission to ship 3rd party dlls with our product but no influence otherwise on those dlls. These dlls need the 2008 c++ redistributable package. If I understood the situation correctly, we'd need a VS2008 license, to ship the microsoft-dlls with our application and create a clean setup procedure.
The Package I'm talking about.
You might be able to get redistribution permission from a Windows SDK. The Win SDK for Windows 7 with .NET 4 SDK contains the following files for MSVC++ 2010:
\Program Files\Microsoft SDKs\Windows\v7.1\Redist\VC
vcredist_ia64.exe
vcredist_x64.exe
vcredist_x86.exe
And the redist.txt file indicates:
Subject to the license terms for the software, you may redistribute the files listed below unmodified as a part of your installation package: [followed by the above list]
I don't have an earlier SDK installed at the moment, but I'd guess that an SDK released around 2009 might have the VC++ 2008 redistributable runtime files you're looking for.
Update:
The Windows SDK for Win 7 with .NET 3.5 SP1 does contain runtimes for VC++ 2008, but the redist permissions are not for the vcredist_xxx.exe format. That SDK provides redist rights for the raw DLLs and manifests to be used as part of your applications local directory structure. That still might give you what you need to install your application without having to use MSI and the merge files for the VC runtime.
For your convenience, we have provided the following folders for use
when redistributing VC++ runtime files. Subject to the license terms
for the software, you may redistribute the folder (unmodified) in the
application local folder as a sub-folder with no change to the folder
name. You may also redistribute all the files (*.dll and *.manifest)
within a folder, listed below the folder for your convenience, as an
entire set.
\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\
Microsoft.VC90.CRT.manifest
msvcm90.dll
msvcp90.dll
msvcr90.dll
etc...
If you can't get a VS license, ask one of your 3rd party dll provider to create a setup that includes the redistributable, then include the dll provider's setup in your installer.
It is the 3rd party dll provider's responsibility to make sure their dll work on machines without the redistributables after installing. The fact that none of your providers seems to be shipping with the redistributable dependency is surprising.
The Visual Studio Express Editions come with the necessary license, too. You'll have to register them with Microsoft, but they're free-as-in-beer.

Getting others to use my apps with Visual C++

I am learning how to build games in Visual C++ and when I upload them so friends can check them out, they all end up with messages saying it can not run. I did some research and found that it is because I am compiling against a Dynamic library instead of a static library. Correct me if I am wrong anywhere please. Upon further research, I found that a lot of people do not advise going this direction but instead include the files needed by my game.
How would I go about distributing my games to friends and make it real easy for them to just open up my .exe and play the game?
If you link to any DLLs, you also need to ship those along. If you produce a single .exe in your output, you probably need your friends to install the MS Visual Studio redistributable package for your version of visual studio. This is an example link for the VS 2010 one, but the one you give your friends should match your version.
There are essentially two options: Keep everything as-is and provide them with the runtime files (also named Microsoft Visual C++ * Redistributable Package or similar; the * has to be replaced with your version, e.g. 2005, 2008 or 2010). Downloads can be found on Microsoft's download site as well as in your Visual Studio installation folder (look for a folder called "Redist").
Alternative solution: In your project settings you're able to select the runtime environment (under linker options). Change your release build to use "Multithreaded" instead of "Multithreaded-DLL".

Resources