Entwickler-Ecke

Sonstiges (.NET) - ILMerge - ErrorCode 1


Palladin007 - Do 01.05.14 18:55
Titel: ILMerge - ErrorCode 1
Hi,

ich möchte eine DLL in eine andere DLL zusammen legen.

ILMerge kann das ja, daher habe ich mir folgende Zeile geschrieben:


Quelltext
1:
ilmerge /target:library /out:"Program.Assembly.dll" "Program.dll" "Assembly.dll"                    


Blöder weise beendet der das immer mit dem Fehler-Code 1 und im Log steht folgendes:


Quelltext
1:
2:
Must specify at least one input file!
Must specify an output file!


Input und Output habe ich angegeben und die Input-Dateien sind auch im Order enthalten.

Ich habe das einmal als Post-Build-Event ausführen lassen (in dem Fall mit den passenden Makros) und einmal als eigene batch im passenden Ordner mit dem passenden Pfad ausgeführt, immer der gleiche Fehler.


Kann mir jemand sagen, was ich falsch gemacht habe?
Kann ILMerge das eventuell nicht in einer DLL zusammen fassen, oder kommt das nicht mit Windows 8.1 klar?


Gruß


Ralf Jansen - Do 01.05.14 19:06

Benutzt du in der Anwendung WPF? ILMerge kann nicht mit Xaml Resourcen umgehen.


Palladin007 - Do 01.05.14 20:49

Nein, kein WPF oder andere zusätzliche Frameworks;


Palladin007 - So 04.05.14 13:52

Hat keiner eine Idee?


Th69 - So 04.05.14 16:17

Hast du denn bei den Input- und Output-Werten komplette Pfade angegeben? Und haben deine Pfade Leerzeichen? Wenn nicht, kannst du ja mal die Anführungsstriche weglassen.


Palladin007 - So 04.05.14 21:30

Hab ich gerade ausprobiert, gibt den gleichen Fehler.


Th69 - Mo 05.05.14 09:58

Dann habe ich noch folgende Seite mit dem gleichen Errorcode 1 gefunden: Build With ILMerge Error [http://stackoverflow.com/questions/3106855/build-with-ilmerge-error]. Kriegst du denn auch eine Exception (mittels des Batch-Files)? Und für welche .NET-Version baust du denn?

PS: Nur als Info: eine Seite mit den ganzen Command Line Options habe ich unter ILMerge – compile your DLLs into your EXE (C#) [http://brainwashinc.wordpress.com/2009/04/09/ilmerge-compile-your-dlls-into-your-exe-c/] gefunden.


Palladin007 - Mo 05.05.14 13:17

Ich baue mit .NET 4.5
Den Parameter targetplatform werd ich mal einbauen, sobald ich wieder Zuhause am Rechner sitze.


Palladin007 - Mo 05.05.14 22:45

Mit dem Parameter targetplatform und dem Wert v4 bekomme ich zumindest keinen Fehler mehr.
Ob das Ergebnis so funktioniert, wie gedacht, kann ich im Moment noch nicht sagen, muss ich erst testen.

Ist denn sicher gestellt, dass der auch mit 4.5 arbeitet, wenn ich 4.0 angebe?
In den Projekt-Eigenschaften kann ich ja auch 4.0 angeben, die ist also trotzdem noch da.

Ich kann zumindest den Pfad "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5" dran hängen, etwas komisch finde ich das aber trotzdem.