fsharp/fsharp — pull request #101 by quasilord (2013-02-18 14:30:13+00:00)
Title: first cut at isolated installer for windows

This is the first part of windows installer support. (It may be all I'm going to be able to get done for a while). It builds a "side-by-side" installer called fsharp-side-by-side.msi.

This installs into
{ProgramFiles}\FSharp-3.0.0.0
{ProgramFiles}\FSharp-3.0.0.0\2.0 (FSharp.Core 2.0)
{ProgramFiles}\FSharp-3.0.0.0\2.1 (FSharp.Core 2.1 for MonoAndroid)

The following files go in {ProgramFiles}\FSharp-3.0.0.0

fsc.exe
FSharp.Build.dll
FSharp.Compiler.dll
FSharp.Compiler.Interactive.Settings.dll
FSharp.Compiler.Server.Shared.dll
FSharp.Core.dll
FSharp.Core.optdata
FSharp.Core.sigdata
FSharp.Core.xml
fsi.exe
fsi.exe.config
fsiAnyCpu.exe
fsiAnyCpu.exe.config
Microsoft.FSharp.Targets

Notes:

* Have used "3.0.0.0" because this is F# 3.0, but we we might want to release small version increments on this. This number can be anything we want and doesn't relate to any DLL versions or anything else.

* This does NOT install any registry keys, file associations or anything into the GAC.

* This includes MSBuild support, but because the .targets file is not installed into a standard location, you will have to adjust .targets references.

* The installer _does_ NGEN fsi.exe, fsc.exe and fsiAnyCpu.exe. That's about all it does over a ZIP install. The NGEN is Priority 1, meaning it starts asynchronously when the install runs.

* The installer does not include any policy-redirect DLLs. These are not yet built in the windows build

* This installer runs even if Visual Studio is installed. It doesn't interfere with Visual Studio at all.

* We would need a different installer if we want MSBuild support to work without change to the .fsproj files. That would have to install files in the same places as Visual Studio. In that case, it should only run if Visual Studio is not already installed. Have started working on that but didn't get it done yet.

* I have not yet tested this on a machine that has never had Visual Studio installed. It should install ok as long as .NET 4.0 is installed.