There is a .NET application built using F# (the core part, as a DLL) and C# (the GUI part, using WPF). What is the best way to package it and to make an installer package and what are the most appropriate tools to use, commercial or free? It needs to include F# redistributable package in my application package and to check/download .NET framework needed.As you guessed, I'm completely new to this Windows world.Thanks in advance.Kh
Packaging F#/C# Application
.net;windows;installer;packages
The easiest and the most flexible installer software I've used is Inno SetupThese are the key features:Check for the .NET Framework and install if not foundCheck if Remote Registry is running and start if stopped.Support for all versions of Windowsin use today: 7, 2008 R2, Vista, XP,2008, 2003, 2000, Me, 98, 95, and NT4.0. (No service packs are required.)    Extensive support for installation of 64-bit applicationson the 64-bit editions of Windows.Both the x64 and Itaniumarchitectures are supported. (On theItanium architecture, Service Pack 1or later is required on WindowsServer 2003 to install in 64-bitmode.)Supports creation of a single EXE to install your program for easyonline distribution. Disk spanning isalso supported.Standard Windows 2000/XP-style wizard interface.Customizable setup types, e.g. Full, Minimal, Custom.Complete uninstall capabilities.Installation of files:   Includes integrated support for deflate, bzip2, and 7-Zip LZMA/LZMA2 file compression. Theinstaller has the ability to comparefile version info, replace in-usefiles, use shared file counting,register DLL/OCX's and typelibraries, and install fonts.Creation of shortcuts anywhere, including in the Start Menu and onthe desktop.Creation of registry and .INI entries.Running other programs before, during or after install.Support for multilingual installs, including right-to-leftlanguage support.Support for passworded and encrypted installs.Support for digitally signed installs and uninstalls.Silent install and uninstall.Unicode installs. (Windows 2000/XP or later)Integrated preprocessor option for advanced compile-timecustomization.Integrated Pascal scripting engine option for advanced run-timeinstall and uninstall customization.The best thing about it is that it provides full control to a developer. Here is a sample setup script.