Kontext
Beim Debuggen (mit dem Debug Menü F5 ) einer Visual Studio-Lösung wird ein Prozess namens MyApp.vshost.exe
erstellt. Wenn Sie das Debug unanständig stoppen - ich meine mit dem Stop Debug Menü UMSCHALT + F5 und nicht auf a warten Codezeile wie Application.Exit()
auftritt - dieser Prozess wird nicht beendet.
Wenn Sie zu einem späteren Zeitpunkt erneut mit dem Debuggen Ihrer Anwendung beginnen, wird eine Fehlermeldung angezeigt, dass die Datei (offensichtlich die vom Debug-Programm verwendete Datei bin\Debug\MyApp.vshost.exe
) bereits verwendet wird.
Deshalb habe ich diese Befehlszeile zu Build Events hinzugefügt: taskkill /F /IM MyApp.vshost.exe
Problem
Wenn der MyApp.vshost.exe
-Prozess nicht vorhanden ist, gibt Visual Studio bei der Erstellung manchmal einen Fehler aus, wodurch verhindert wird, dass die Anwendung erstellt wird:
Die einzige existierende Lösung, die ich gefunden habe, ist das Build-Ereignis zu entfernen.
Frage
Gibt es eine Möglichkeit, die Fehlermeldung zu beheben, ohne das Build-Ereignis zu entfernen?
Ich denke, die beste Lösung wäre, den Rückgabecode ( errorlevel
) des Befehls abzurufen und dann 0 zurückzugeben, wenn er gleich 128 ist. Ist es möglich, dies in den Build-Ereignissen des Projekts zu tun?
Als temporäre Maßnahme können Sie den Visual Studio-Hostprozess deaktivieren:
Vorgehensweise: Deaktivieren des Hosting-Prozesses
So deaktivieren Sie den Hosting-Prozess
Öffnen Sie ein Projekt in Visual Studio.
Klicken Sie im Menü Projekt auf Eigenschaften.
Klicken Sie auf die Registerkarte Debuggen.
Deaktivieren Sie das Kontrollkästchen Visual Studio-Hostingprozess aktivieren.
Die Nebenwirkungen, die dabei auftreten, können wünschenswert sein oder auch nicht:
Im Allgemeinen, wenn der Hosting-Prozess deaktiviert ist:
Die Zeit, die zum Debuggen von .NET Framework-Anwendungen benötigt wird erhöht.
Die Entwurfszeitausdruckbewertung ist nicht verfügbar.
Partielles Vertrauens-Debugging ist nicht verfügbar.
Der MyApp.vshost.exe
ist der Visual Studio-Hosting-Prozess . Der Zweck dieses Prozesses besteht darin, das Debugging-Erlebnis zu verbessern. Wenn Sie diesen Prozess selbst beenden, erstellt Visual Studio ihn erneut. Wenn Sie es loswerden möchten, können Sie den Hosting-Prozess in den Debugging-Eigenschaften für das Projekt deaktivieren (C # hier gezeigt):
Sie beschreiben den aufgetretenen Fehler als "der Prozess wird bereits verwendet". Ich glaube nicht, dass ich das selbst erlebt habe, aber auf einem Arbeits-PC habe ich große Probleme, wenn ich nach dem Debugging baue. Es scheint, dass MyApp.exe
gesperrt ist und nicht überschrieben werden kann ("Datei wird bereits verwendet", nicht "Prozess"), wodurch der Build fehlschlägt. Ich glaube, dass ein Virenscanner (Microsoft Forefront) diese Probleme verursacht, aber in einer Unternehmensumgebung kann ich den Scanner nicht ausschalten, um meine Hypothese zu testen.
In vielen Fällen hat die Deaktivierung des Hosting-Prozesses keine spürbare Auswirkung auf Ihre Debug-Erfahrung.
Tags und Links visual-studio-2010 command-line visual-studio build