das Zusammenführen .dll-Dateien mit ILMerge andernfalls zu arbeiten
Zunächst, ich bin nicht sicher, ob dies ein problem mit ILMerge oder nicht, aber ich kann nicht merge.dll Dateien in meine Anwendung. Ich habe versucht, diese auf der Kommandozeile:
ilmerge /target:winexe /out:test.exe MyApp.exe lib1.dll lib2.dll lib3.dll
Bekam ich die folgende Fehlermeldung, und ich habe keine Ahnung, was es bedeutet:
Es wurden Fehler gemeldet, die in Anwendung von Metadaten.
Die pdb zugeordnet D:\C#\source\bin\ReleaseMyApp.exe ist veraltet.
Ich verwende die neuste version von der Art und Weise (2.10.526.0), aber ja, ich kann nicht ankommen dieses zu wirken, und ich brauche wirklich etwas Hilfe. Was bedeutet die obige Fehlermeldung zu bedeuten und wie kann ich es beheben?
- Gibt es eigentlich PDB-Dateien? Wie über die Erhebung von zu-Release-version und entfernen Sie alle PDB-Dateien vor dem Aufruf
ilmerge
? - Für ILMerge, ich benutze es wie
ilmerge /ndebug /target:winexe /out:test.exe app.exe lib1.dll lib2.dll
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie nicht explizit gesagt, dass Sie überprüft haben, die pdb-und EXE-Dateien synchron sind, ich denke, ich werde Fragen, die offensichtliche Frage - gibt es eine pdb in den Ordner, und haben Sie überprüft, die timestamps auf den Dateien?
Wie ich es verstehe, wenn es debug-Informationen für den source-Dateien, dann ilmerge erstellen von debug-Informationen für die Ziel-und wenn das original ist out-of-date, dann ist es wahrscheinlich zeigt dieser Fehler, anstatt erzeugen falsche Informationen.
Wenn Sie nicht brauchen, die debug-Informationen, was passiert, wenn Sie das löschen der pdb-Dateien?
Erwarte ich diese Art von Metadaten wird als string gespeichert, vielleicht in expliziten code, aber vielleicht über eine "typeof" in einem Attribut.
Könnten Sie versuchen, die Handhabung der Anwendungsdomäne des TypeResolve Ereignis und ermittelt den Typ string, der ausfällt und die Rückkehr der Typ, den Sie wollen - das sollte funktionieren, um die Tatsache, dass es nun in einer anderen assembly.
http://msdn.microsoft.com/en-us/library/system.appdomain.typeresolve.aspx
Würde es helfen, um zu versuchen .NETZ statt ILMerge?
netz -s -z -w app.exe lib1.dll lib2.dll -so