ILMerge-Ausnahme beim Versuch, die pdb-Datei zusammenzuführen

8

Ich versuche, zwei Assemblies zu einer einzigen Assembly zusammenzufassen, was sehr gut funktioniert. Wenn ich jedoch versuche, die * .pdb-Dateien zusammenzuführen, erhalte ich einen Fehler:

  

Der Zugriff auf den Pfad "F: \ Fentec \ Businessplan \ Stamm \ Ausgabe \ Debug \ module \ Planrechnung \ Planrechnung.pdb" wird verweigert.

Wenn ich die Option / ndebug benutze, um das Zusammenführen der * .pdb-Dateien zu umgehen, funktioniert es gut. Aber natürlich können die Symbole beim Debuggen nicht geladen werden. Zuerst dachte ich, dass beim Aufruf von ILMerge im postbuild-Event diese Planrechung.pdb verwendet und gesperrt wurde. Ich habe auch versucht, VS2010 zu schließen und ILMerge über die Befehlszeile aufzurufen, aber das Ergebnis blieb gleich. Ich habe mit ProcessExplorer überprüft und es gibt keine Handle auf die Datei.

So rufe ich ILMerge auf:

  

E: \ XP \ Tools \ ILMerge \ ilmerge /targetplatform:v4,"D:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 "/ lib:" F: \ Fentec \ Businessplan \ Stamm \ Ausgabe \ Debug \ bin "/out:Planrechnung.dll" F: \ Fentec \ Businessplan \ Stamm \ Ausgabe \ Debug \ Module \ Planrechnung \ Planrechnung.dll "" F: \ Fentec \ Businessplan \ Stamm \ Ausgabe \ Debug \ Module \ Mandantenverwaltung \ Mandantenverwaltung .dll "

Habe ich etwas verpasst? Wenn Sie weitere Informationen benötigen, fragen Sie einfach.

Grüße,
Skalli

    
Skalli 06.09.2011, 10:40
quelle

2 Antworten

19

Ich habe die Lösung für das Problem gefunden und es ist ein bisschen peinlich.

Der Ausgabename darf nicht derselbe Name einer der zusammengeführten PDB-Dateien sein. Ansonsten tritt dieses Problem auf. Als ich den Namen einer Baugruppe änderte, funktionierte das großartig. Es ist auch kein Problem, eine Assembly im Prozess zu überschreiben, aber Sie können eine vorhandene pdb-Datei nicht überschreiben.
Ich habe das nicht erwartet und zufällig zufällig darüber gestolpert. Entschuldigung für all die Probleme

Grüße,
Skalli

    
Skalli 07.09.2011, 08:30
quelle
0

Es klingt für mich wie die .pdb-Datei gesperrt ist, wahrscheinlich weil sie in einem Debugger (wie Visual Studio) verwendet wird.

Schließen Sie sowohl Visual Studio als auch Ihre Anwendung (falls Sie dies noch nicht getan haben).

Wenn das nicht funktioniert, dann verwenden Sie ein Tool wie Prozess-Explorer , um nach Prozessen zu suchen, die das haben diese Datei geöffnet. In Process Explorer können Sie dies mit dem Suchen - & gt; Finde Handle oder Dll ...:

Geben Sie den Namen der Datei / pdb ein, nach der Sie suchen, und es werden alle Prozesse aufgelistet, die diese Datei geöffnet haben - entweder schließen Sie die einzelnen Griffe oder schließen Sie diese Anwendungen und versuchen Sie es erneut.

    
Justin 06.09.2011 13:45
quelle