Aus verschiedenen Gründen verwenden wir ilmerge, um alle unsere Anwendungsassemblys in eine Datei zu schreiben, so dass der Benutzer nur eine Datei verarbeiten muss. Leider scheint es keine Möglichkeit zu geben, die .pdb-Dateien mit den Assemblies zusammenzuführen. Jeder weiß, wie man das umgehen kann?Gibt es eine Möglichkeit, pdb-Dateien mit ilmerge zusammenzuführen?
Antwort
Ok, ich habe das herausgefunden, obwohl es eine Weile gedauert hat.
Dieser Artikel hat/ndebug genau rückwärts.
Von den Release Notes, die mit ILMerge kommen (ILMerge.doc, Hervorhebung von mir):
2,8 Debuginfo public bool Debuginfo {get; einstellen; } Wenn diese Einstellung auf "true" gesetzt ist, erstellt ILMerge eine PDB-Datei für die Ausgabebaugruppe und führt alle für Eingabebaugruppen gefundenen PDB-Dateien zusammen. Wenn Sie das tun nicht eine PDB-Datei erstellt werden soll für die Ausgabebaugruppe, entweder gesetzt diese Eigenschaft auf false oder sonst geben die/NDEBUG Option in der Befehlszeile . Standard: true Befehlszeile Option:/NDEBUG
Die Lösung ist speziell auf nicht haben, dass Flagge auf der Kommandozeile. ILMerge wird standardmäßig pdb-Dateien zusammenführen. Stellen Sie sicher, dass sich alle pdb-Dateien Ihrer Quellenassemblys im selben Verzeichnis befinden, zusammen mit den zugehörigen DLLs, sodass ILMerge sie finden kann. (Wir verwenden Projektreferenzen und haben ein ILMerge-Projekt, das sich um diese Anforderung kümmert.)
Hier ist der relevante Abschnitt aus meiner ILMerge-Datei csproj.
<Target Name="AfterBuild">
<CreateItem Include="@(ReferencePath)" Condition="'%(CopyLocal)'=='true'">
<Output TaskParameter="Include" ItemName="IlmergeAssemblies" />
</CreateItem>
<Exec Command=""..\..\Libraries\Ilmerge.exe" /copyattrs /allowMultiple /out:"@(MainAssembly)" "@(IntermediateAssembly)" @(IlmergeAssemblies->'"%(FullPath)"', ' ')" />
<Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
</Target>
Der Vollständigkeit halber verwende ich die neueste Version von ilmerge.exe: Version 2.10.219.0, mit einem Datum der letzten Änderung 2010.02.19 09.49
Sie können sie für Sie zusammenführen lassen, indem Sie das Flag/ndebug für den Befehl verwenden.
Diese article erklärt mehr.
Danke für die Info. Aus irgendeinem Grund hält der Schalter lediglich davon ab, eine pdb-Datei zusätzlich zu der zusammengeführten Assembly zu erstellen, sondern fügt die Informationen nicht in die zusammengeführte Assembly ein. Ich werde ein Update veröffentlichen, wenn ich herausfinde, was schief läuft. – pat
Ich habe das gleiche Problem wie @longeasy./ndebug hilft überhaupt nicht. –
/ndebug wird mehrere pdb in eins zusammenfassen, genau wie bei den Assemblies. Die Frage ist, wie die Assemblys mit den PDB-Dateien zusammengeführt werden, so dass es sich um eine einzige Datei handelt. – Lucas
- 1. Gibt es eine Möglichkeit, zwei NSMutableArray in Ziel c zusammenzuführen?
- 2. Gibt es eine Möglichkeit, diese beiden Regex zusammenzuführen?
- 3. Ist es möglich, nur eine Teilmenge von Abhängigkeiten mit ILMerge zusammenzuführen?
- 4. Gibt es eine elegante Möglichkeit, zwei JSON-Bäume mit jsoncpp in Kaskade zusammenzuführen?
- 5. Gibt es eine Möglichkeit, eine CABasicAnimation anzuhalten?
- 6. Gibt es eine Möglichkeit, dass es jemals PHP.NET gibt?
- 7. Gibt es ein ILMerge-gleichwertiges Tool für Mono?
- 8. Gibt es eine Möglichkeit, Diagramme in verschiedene Projekte zu kopieren?
- 9. Gibt es eine Möglichkeit, eine benutzerdefinierte NSWindow Arbeit mit Spaces
- 10. Gibt es eine Möglichkeit, eine Seife Anfrage mit CHEF
- 11. Gibt es eine Möglichkeit, django.db.connection.queries zu löschen?
- 12. Eine effiziente Möglichkeit, 2 große CSS-Dateien zusammenzuführen
- 13. Gibt es eine Möglichkeit, TabControl.Items.CurrentChanging abzubrechen?
- 14. Gibt es eine Möglichkeit, Datenbanktransaktionen zu beschleunigen?
- 15. Gibt es eine Möglichkeit, Formularantwort zu ignorieren?
- 16. Gibt es eine Möglichkeit, Selektoren zu gruppieren?
- 17. Gibt es eine Möglichkeit, Fenstereigenschaften zu verbergen?
- 18. Gibt es eine Möglichkeit, JLabel durch Integer
- 19. Gibt es eine Möglichkeit, Kovarianz zu deklarieren?
- 20. Gibt es eine bessere Möglichkeit, Datensätze einzufügen?
- 21. Gibt es eine Möglichkeit, Mehrfacheinspritzung zu propagieren?
- 22. Gibt es eine Möglichkeit, Webkonsolenfehler zu erkennen?
- 23. Gibt es eine Möglichkeit, AMDPlugin zu deaktivieren?
- 24. Gibt es eine Möglichkeit, JLabel anzupassen?
- 25. Gibt es eine Möglichkeit, vim-Befehle umzubenennen?
- 26. Gibt es eine Möglichkeit, Geschwisterknoten auszuwählen?
- 27. Gibt es eine Möglichkeit, onPanResponderMove zu verwalten?
- 28. Gibt es eine Möglichkeit, PreparedStatement zu aktualisieren?
- 29. Gibt es eine Möglichkeit, Cygwin Ciphers hinzuzufügen
- 30. Gibt es eine Möglichkeit, ConfigurationManager.AppSettings zu überschreiben?
aber warum Sie tun müssen, dass ? Möchten Sie nur als Ressource hinzufügen? –
Wenn die Anwendung abstürzt zeigt die Stack-Trace nur den Namen der Funktion, die fehlgeschlagen ist. Mit der PDB-Datei entlang der ausführbaren Datei wird auch die Zeilennummer in der Quelldatei angezeigt, in der der Fehler aufgetreten ist. – pat