I would like to run one installer for three programs, i.e. Folder is created under the name KAM Package, and there are three separate folders with three separate programs and their files. They must also be separately in the start menu.
Welcome to Stackoverflow: Please try to elaborate your questions and make them as specific as possible so we don't end up writing stuff that doesn't help or answer anything of what you really intended to ask about (happens more often than we'd like).
Deployment Tools: As others have said, please choose a deployment tool first. I'll just link to a previous answer to see if it helps you: How to create windows installer (links to Windows Installer tools and legacy setup tools - please do have a look).
Free MSI Tools: And there are free tools you can use to inspect compiled MSI files: Orca, InstEd or SuperOrca (towards bottom). These are not full-fledged tools to create MSI files, but they work great as viewers and for small hotfixes and changes, etc...
Some Links:
Wrap C# application in .msi installer
Windows service NOT shown in add remove programs under control panel
What installation product to use? InstallShield, WiX, Wise, Advanced Installer, etc
Related
I have searched high and low for installers to customize after creating my applications (small, medium, and much bigger) in size. Yes, portable apps great but most people just want to install and also have it just update when updates are available and install and restart the next time or at least warn the user to save the work before the Application can reopen.
Yes, I have looked at NSIS and other installers, but they are merely for windows and not for both windows and Linux. Some of these installer projects have been discontinued. Most people who use Linux don't like to always build from the source.
I was wondering how I can create a POSIX compliant installer that my software can install on both Windows and Linux. What are the steps involved? I assume most or all installers use C++ to do all of the grunt work. I am interested in creating my own to fully understand C++ and how it works. This why I really need to know how an installer is made. Any helpful advice is welcomed.
Thanks in advance.
"Mainstream": A shared packaging format seems elusive. However, there are a few multi-platform deployment tools available. Installsite.org has a list towards the bottom here. I guess the two most commonly used tools are (both are commercial):
Advanced Installer for Java / Advanced Installer Enterprise (Windows and Mac, no Linux)
Flexera InstallAnywhere (Windows, Mac, Linux)
From this answer:
I am new to creating installers. Before used the Microsoft visual studio deployment package. Now trying inno setup, pretty awesome.
I saw that Visual studio one wrote some registries when installed.
Do I have to create Registries for my package too? I have a visual c# application and need to create a installer for my company. Main intention is to create a installer that will easily update the old one, but this is a first version of software we are going to release to customers. Much appreciated. I saw tutorials of Registry in internet, but the point of creating is the one that I don't understand.
I'm not sure what you are asking exactly. If you mean how do I write to the Windows Registry, you create a [Registry] section in your inno-setup file and add what you need. Here is a link to the documentation.
You don't HAVE to write any registry entries unless your app requires them.
Inno automatically creates the usual entries to allow uninstall from the Add/Remove programs applet.
Inno will also automatically handle upgrades with no special effort.
If you have previously distributed the app using an MSI package, then you will either need to allow side by side installs (different folders, etc) or uninstall the previous version first. The article above has a sample of how to get the uninstall path.
Any suggestions? Code and artwork/assets are all in SVN, and we don't want to port it to GCC or another compiler before anyone suggests it!
Simplicity and minimising 3rd-party tools is preferred, since we don't have a build-server it'll probably still be run on a developer's PC but we don't want them just doing a build manually and packaging it up.
It's basically just a C++ solution with several projects, plus we have an Inno Setup installer to build.
Right now it's a 3-step process (or 4 if you include uploading the release to FTP):
Get from SVN
Build solution from VC++
Run Inno to create the packaged
installer
You can use MSVC pre, post & custom build steps to do this, they run programs through the windows command line. also see this: http://blogs.msdn.com/b/visualstudio/archive/2010/04/26/custom-build-steps-tools-and-events.aspx
If you can't do it with the VS build steps (see Necrolis' answer), then in the past I've used makefiles run with nmake, which is included with VS (you need to start a command prompt with the right environment settings for VS - there's a shortcut on the start menu.)
Nowadays I use FinalBuilder ( http://www.finalbuilder.com/home.aspx ) for all this sort of stuff, which is expensive and doesn't meet your 'not 3rd party' desire, but is an excellent tool. Once you get into it, you'll realise that there are probably far more steps you'd like to do than merely compiling/packaging - you probably want to be incrementing version numbers, moving files around, creating directories, etc. FB is good at that sort of stuff.
I am adding up to date answer for other users:
Currently there is 3rd party extension available which integrates Inno Setup into Visual Studio and allows you to build installers directly from IDE (or from command line using MSBuild).
It is possible to use pre, post & custom build steps, batch files, code signing, running programs through the windows command line etc.
Check Visual Studio Marketplace for more info about Visual & Installer: https://marketplace.visualstudio.com/items?itemName=unSignedsro.VisualInstaller
I have an application that uses the ms vc++ runtime. How should I install it on the end-user's system if it is not present? I was thinking of bundling it with the installer... but how would I do that as far as what to include? Is there some silent installer? If so, where can it be found? I can't seem to find it in the Windows SDK.
There is an interesting post about deploying the runtime libraries on the Visual C++ blog. The post is about VC8 so I'm not sure all the recommendations apply to VC9.
Here are your options according to Microsoft:
Use an .msi installer including the .MSM files for the VC
libraries you're using. These MSM
files install the libraries globally.
They also keep a reference count so
that the libraries are removed when
the last application using them gets
uninstalled.
Use "app-local"
deployment i.e. copy the
libraries and manifest files in your
application directory. This is a simpler
solution if you don't use an .msi
installer. Your app should still use the
system version of the libraries if they are more
up-to-date than your own.
Link everything statically (and avoid crt usage across dll boundaries)
Another option Microsoft discourage you from using is running the Visual C++ redist installer from your own installer.
I'm not sure what their reasons are. It will take a few extra megabytes and will not be reference counted but it still works very well AFAICT. You can pass the /q option to vc_redist_x86.exe to perform an unattended install (no user interaction).
It has it's own installation program. I've seen it usually run as a prereq step of a larger installer.
One way or the other, you need to list it in your manifest. So you might just as well deliver it as via SxS in your application rather than try to deliver a global copy to the target machine. SxS is a big hard subject, sadly. Hopefully someone will supply an answer with more details and I'll delete this one.
I have found a lot of obfuscation tools with no clickonce support.
Could you provide vendors with click once support?
I would like to deploy obfuscated software at once without adding ANY extra line of code (pre-buid, post build etc)
p.s. I believe that is software related
I can't speak for other obfuscation products, but this has been a request of customers of Dotfuscator.
An integrated method for obfuscating ClickOnce applications is not currently available but will be coming in the next major release of Dotfuscator. I know this, because the task is currently assigned to me :) .
If there is anything in particular that you would like to see please feel free to let me know and I'll make sure to keep it in mind as I work on it.
You can create the manifests outside of Visual Studio using mageui (run mageui from the visual studio command prompt). It requires a little more work, but you can create the manifests with the dll's post-compile. If you want to make it easier after the initial setup, you can create a nant build file to do all the steps for you using mage (command line equivalent to mageui).
I produce a piece of software called ClickOnceMore which can be used to create ClickOnce manifests from obfuscated assemblies. Its more user friendly than Mage and MageUI and has a command line version that can be included as part of a build process. I have several customers who use it in conjunction with obfuscators, particularly Dotfuscator.
You can find the software here: http://www.clickoncemore.net
The Dotfuscator software included in Visual Studio 2010 will obfuscate your code and re-sign the manifests for you. Prior versions would obfuscate, but then you had to re-sign the manifests yourself.