InstallShield: source and target directories and files - installation

I've been tasked with taking our existing InstallShield based installer and converting it to Install4j. I've been going through the ism file (XML version) trying to figure out what files are being loaded into the installer MSI and then where these files and directories are installed when the MSI is executed. So far I haven't had any luck, we still have a licensed copy of InstallShield 2009, but I don't know where to even look for something like this and the manual has been less that helpful. Does anybody have any ideas?

Open the project up in InstallShield and go to the Files and Folders designer. This will show you the destination view along with the source locations for all the files.
If it's an MSI based project you can build the MSI and then perform an Administrative Installation to extract the files. The extracted structure will mimic how it would have been installed.
Administrative Installation

Related

Creating installation files depended on NuGet packages doesn’t work in Microsoft Visual Studio 2017 Installer Projects

Is it possible to get pug in project for Outlook that is depend on NuGet packages to be installed with Microsoft Visual Studio 2017 Installer Projects? I’m trying to create an installation file for a plug in for Outlook that have a drag and drop functionality dependent on the Easyhook Nuget package. That the plugin have a taskPane with a webbrowser there are drop Outlook e-mail messages as .msg files.
It works to install the plug in but the drag and drop functionality that is dependent on the NuGet package doesn’t work. That I can drop the message but the webpage doesn’t recognize the drop mails as .msg files or even as uploadable files. While if I try with the trial version of InstallShield 2018 Express Edition everything works including the drag and drop functionality.
I tried to do the same thing with Installer Project as with InstallShield. To output I added content files, debug symbols and primary output. Files I added was the manifest and vsto files for the Plugin and the .dll file for the NuGet Package, Easyhook32.dll. I got an error because the content file included the 64bit for the NuGet Package files, and I’m doing a 32bit installation, and also that the Easyhook32.dll file was duplicate, that it seems that the dll file also was added with the content files.
So, I excluded the 64bit files in the plug In project that should be installed and in the installation project I removed Easyhook32.dll files from the files that should be include in the installation. Also then it worked to install the plugin but the drag and drop functionality didn’t work. I also tried to for example not add the content files and just add the Easyhook32.dll and that also made the installation work except the drag and drop functionality.
I can of course also try other installation programs that is able to add NuGet but also are able to be installed from the Internet and also add registry keys and values. That I also have tried Microsoft Click Once installations program and it was easy to create an installation files but it seems like you need a valid certification if you want users to download the installation file from the Internet.
Also, this is the first time I working with type of installation like this ones and with Outlook Add In so I can have missed some obvious solutions. That at the same time english is not my first language so I can also have missed using the correct terminology.
NuGet is a build-time package manager. You'll need to redistribute any required binaries in your installer package by adding them manually. Typically, required binaries from NuGet packages will be copied to your output folder, so you could add them from those paths just like your project output.

How to add msi file to Installshield Project?

I am using Installshield 2015 with Visual Studio 2013. I created a setup.exe for my application. In order to start my application, user needs to run SpeechPlatformRuntime_x86.msi or SpeechPlatformRuntime_x64.msi.
How can I add these msi file into my project so after installation finishes, it automatically run msi file?
These sound like they provide dependencies. Since you deliver a .exe file, I would suggest creating a prerequisite and including it in your project. This will result in them being installed first, and your main .msi (or InstallScript) project contents will follow.
(If you delivered only a .msi file, you would probably have to document your dependency. You could look into the Chained .MSI Packages support, but it's not really that well suited for handling dependencies.)

How to include arbitrary files in a .NET setup project

We have a folder of text files that needs to be copied to the server whenever our application is deployed. Currently, we handle this by manually copying/pasting the folder's contents.
How can I include this as an automated step in the MSI?
I want the folder (and it's contents) to be included in the MSI. Then, on install, I want to the files in the MSI to overwrite the existing files (in a given local directory).
The files are in source control (TFS), but they are not part of any .NET project.
I've used the Nullsoft Installer before (among others), and that's basically all it does (you tell it what files to pull in and where to put that at install time). Visual Studio automates a lot of this... but I just can't see where to do the basic task.

How to copy a file to an arbitrary location when installing a VSIX project?

I am developing a Visual Studio 2010 extension (VSIX project) to add some extra properties to the entities in the Entity Framework designer. In addition to registering the appropriate classes for MEF discovery, I would like a T4 include file to be copied to the %ProgramFiles%\
Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity
Framework Tools\Templates\Includes folder when the extension is installed, but I don't know how to do it and the VSIX properties page does not seem to show any option for this.
So my question is: is there any way to have a given file being copied to a given location when a VSIX project is installed?
Using VSIX only, no, there is not.
Whole contents of VSIX package are during installation simply unzipped into your local extensions directory - and that's END regarding file installations.
Whatever you want to copy anywhere, you must deal with it outside of the VSIX installer. For example - use different installer. Or, for another example, upon first-run of your plugin, somewhere in package.Initialize(), check whether the files in question exist in right places, and if not - copy them there.
Of course, if you want to write to the ProgramFiles directory, you have another barrier in front of you: the UAC protection. To write there, you will need an another executable that your plugin will run in elevation (and asking the user for permission during that, etc) and it only it will be able to copy the files there. Well, of course, unless you happily assume that everyone always run their VisualStudios "as administrator" and simply ignore the UAC and your users' tears.

Visual Studio Setup project - force installation of a .DLL?

I have an update to third party .DLL that must be installed onto my clients' computers. We currently employ automated installs via MSI that are created in Visual Studio 2010
Unfortunately, the third party .DLL was versioned incorrectly and file version of it was not increased by the provider (they only increased assembly version). The third party provider is Microsoft, so waiting on them to fix the issue is not realistic. We need to get the new .DLL to people now and within one MSI update. Right now, MSI update is not overriding the .DLL
Is there a way within VS2010 Setup project to force override a .DLL even if the file versions match?
If you are willing to do msi postbuild tweaking you can hit the File table and do "version lying". Another thought is to not put that DLL in your install. Find an installer from Microsoft ( if it exists ) that you can put into a bootstrapper or create your own installer and use AMUS instead of OMUS for the version rules.
Can't you just add the file to your installer as a 'file' and install it with the other files? Don't set it as project output, or any of the canned install actions. Go to the file portion and right click the "Application Files" folder, and say > add file. Navigate to the file that you want and choose it.

Resources