Lösen "Der Befehl" taskkill / F / IM MyApp.vshost.exe "mit Code 128 beendet" Fehler [Duplizieren]

8

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:

%Vor%

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?

BEARBEITEN

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?

    
Otiel 30.09.2011, 07:37
quelle

4 Antworten

15
%Vor%     
Otiel 28.10.2011, 23:09
quelle
2

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.

    
Kev 01.10.2011 22:10
quelle
2

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.

    
Martin Liversage 01.10.2011 22:46
quelle
-1

läuft vielleicht als Administrator mit vollen Rechten der IDE? (Ich weiß, das war einmal von Microsoft vorgeschlagen)

    
hephestos 01.10.2011 22:35
quelle