ILMerge: Assemblies Mergen am Beispiel von SharpBox für DropBox

Die neueste Kongeniale Idee von Jens und mir sieht es vor eine DropBox-Integration in unserer Software zu Implementieren.
Warum, wieso und weshalb, darf ich an dieser stelle nicht verraten, da zum derzeitigen Zeitpunkt noch Top Secret.

Unter [DropBox Developer] stehen 2 Client Libs für eine DropBox-integration in C# zur verfügung.
Ich habe mich hier für SharpBox entschieden.

Der Download enthält neben der Beispiel WinForm Anwendung auch 6 Assemblies in form von 6 DLL´s.
Da unsere Software keine reine .NET Anwendung ist und die .NET Module zur Laufzeit bei Verwendung nachgeladen werden, Sieht dieses Konzept vor, dass ein Modul nach Möglichkeit in einer Assembly steckt.
Natürlich können auch zusätzlich zu dieser Assembly die weiteren 6 DLL´s mit ausgeliefert werden – aber irgendwann würde das sehr unübersichtlich werden.
Hier wäre es doch praktisch, wenn man einfach EINE DLL hätte in der die Typen der besagten 6 dll´s inbegriffen wären.

Genau dies macht ILMerge – Es nimmt den Inhalt der übergebenen Parametern von Assemblies und baut daraus EINE einzuge Assembly mit dem Inhalt dieser 6 übergebenen Asemblies.
Dies Können sowohl Dll´s als auch exe als auch Winform exen sein- Genauso können diese auch ausgegeben werden.

ILMerge kann [HIER] herunter geladen werden.

Bleiben wir einmal beim Beispiel von SharpBox.
Hier gibt es folgende 6 Dll´s:

  • AppLimit.CloudComputing.oAuth.dll
  • AppLimit.CloudComputing.SharpBox.dll
  • AppLimit.Common.Objects.dll
  • AppLimit.Common.Toolkit.dll
  • AppLimit.Common.UI.Windows.Forms.dll
  • Newtonsoft.Json.Net20.dll

So würde der Aufruf in der CMD wie folgt aussehen:

"C:\Program Files\Microsoft\ILMerge\ILMerge.exe" /t:libary /out:dropboxutils.dll ^
AppLimit.CloudComputing.oAuth.dll ^
AppLimit.CloudComputing.SharpBox.dll ^
AppLimit.Common.Objects.dll ^
AppLimit.Common.Toolkit.dll ^
AppLimit.Common.UI.Windows.Forms.dll ^
Newtonsoft.Json.Net20.dll

Damit würde man nun eine dropboxutils.dll als ausgabe bekommen mit dem inhalt der 6 übergebenen Assemblies.
Diese dropboxutils.dll hat genau die selben typen und Namespaces – ist also direkt ein drop-in replacement der Dll´s und kann direkt in den verweisen Referenziert werden.

leave your comment


*

Unterstütze den Frickelblog!