[Mono-dev] AssemblyInstaller

Kornél Pál kornelpal at gmail.com
Tue Sep 21 14:10:07 EDT 2010


Nicholas Salerno wrote:
> With respect to compatibility with Microsoft's behavior, I have found two bugs in Mono's implementation of installutil:

Mono aims to be compatible with MS.NET so you are welcome to fix 
compatibility issues. Note that if you also provide unit tests that 
prove that your implementation is corrent and ensure that there will be 
no regression later, your patches are more likely to be accepted.

> Both of these bugs I would like to fix because they really break the "write once, run everwhere" model and I (and company) do not want to maintain two code bases for dealing with Microsoft's way and Mono's way of installers.

Mono itself has the same goals.

> What I am still undecided about is if ManagedInstallerClass uses AssemblyInstaller to get some of the work done.  Right now both of these classes are not implemented in Mono and I am wondering if the code in installutil.exe is split amongst the two classes.

I have never used AssemblyInstaller but based on the documentation I 
agree that ManagedInstallerClass should be the core of a command line 
tool around AssemblyInstaller. Note that this is an implementation 
detail invisible to the outside world so you don't have to guess how 
MS.NET does it, you can just implement it the way that makes sense.

> To summarize:
>      installutil.exe --uses-->  ManagedInstallerClass --uses-->  AssemblyInstaller
>
> installutil.exe
> Provides command line user interface for ManagedInstallerClass.

I think that this is a good design.

Kornél


More information about the Mono-devel-list mailing list