426 Stimmen

Visual Studio "Konnte nicht kopieren" .... während des Builds

Während des Builds meines VS2012 C#-Projekts erhalte ich immer diesen Fehler:

Fehler   41  Konnte "obj\Debug\WeinGartner.WeinCad.exe" nicht nach
"bin\Debug\WeinGartner.WeinCad.exe" kopieren. 
Wiederholungsversuche von 10 überschritten. Fehlgeschlagen.    

Fehler   42  Konnte Datei "obj\Debug\WeinGartner.WeinCad.exe" nicht nach
"bin\Debug\WeinGartner.WeinCad.exe" kopieren. Der Prozess kann nicht auf die Datei
'bin\Debug\WeinGartner.WeinCad.exe' zugreifen, da sie von einem anderen Prozess verwendet wird.

Jetzt habe ich herausgefunden, dass das Beenden des Prozesses

Weingartner.WeinCad.vhost.exe

funktioniert (manchmal), aber das nervt mich. Gibt es eine Möglichkeit, dies komplett zu verhindern?

Meine Debugger-Einstellungen sind

Bildbeschreibung eingeben Bildbeschreibung eingeben

22voto

Pitrs Punkte 221

Das Problem ist, dass der Debugger/Builder die ausführbare Datei oder Bibliothek erstellt, die vom Antivirus als Bedrohung identifiziert wird und daher kurz vor der Ausführung gelöscht wird.

Am besten passen Sie Ihre Antivirus-Software so an, dass sie Ihren Projektordner nicht analysiert.


Einige Möglichkeiten, dies zu tun, geordnet von am besten zu am schlechtesten, sind:

  1. Ihr Projektordner vom Antivirus ausschließen
  2. PDB-Dateien ausschließen (Keine 100%ige Garantie für eine Lösung)
  3. Echtzeitschutz deaktivieren (Nicht empfohlen)

16voto

S.N Punkte 4890

Ich konnte dieses Problem (VS 2010) durch Bereitstellung der folgenden vor dem Build durchgeführten Aktion beheben;

if exist "$(TargetPath).gesperrt" del "$(TargetPath).gesperrt"

if exist "$(TargetPath)" if not exist "$(TargetPath).gesperrt" move "$(TargetPath)" "$(TargetPath).gesperrt"

13voto

Zheng Qiang Punkte 178

Zitat:

Ein Workaround besteht darin, dies in das Eigenschaftsfenster des Pre-Build-Ereignisses des Projekts (im Build-Ereignisse-Tab) zu setzen:

Code-Schnipsel

if exist "$(TargetPath).locked" del "$(TargetPath).locked"

if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"

9voto

Xaimaran Punkte 392

Ausnahme

In einigen Fällen in Visual Studio, wenn Sie (Build || Neuaufbau) über laufendem IISExpress ausführen, stoßen Sie auf diese Ausnahme:

Konnte Datei "obj\Debug\YourProjectName.dll" nicht nach bin\YourProjectName.dll kopieren. Der Vorgang kann nicht ausgeführt werden die Datei 'bin\YourProjectName.dll' weil sie von einem anderen Vorgang verwendet wird

Lösung

  1. Rechtsklicken Sie auf das Webprojekt, das erstellt werden muss.
  2. Klicken Sie auf Eigenschaften.
  3. Wählen Sie den Build-Ereignisse-Tab auf der linken Seite aus.
  4. Fügen Sie diese 2 Zeilen im Vorkompilierungsereignis-Befehl ein:
tasklist /fi "imagename eq iisexpress.exe" |find ":" > nul
if errorlevel 1 taskkill /f /im "iisexpress.exe"

Sie sind bereit, loszulegen!

9voto

Akshay Bagi Punkte 189

Folgen Sie den unten stehenden Schritten

  1. Öffnen Sie den Task-Manager ( Strg + Alt + Entf )
  2. Wählen Sie im Leistungs-Tab <IhrProjektName.exe> aus.
  3. Klicken Sie auf Prozess beenden.
  4. Bauen Sie jetzt die Lösung.

Die oben genannten Schritte haben den Fehler dauerhaft behoben :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X