Wciąż pojawia się ten błąd podczas kompilacji mojego projektu VS2012 C #
Error 41 Could not copy "obj\Debug\WeinGartner.WeinCad.exe" to
"bin\Debug\WeinGartner.WeinCad.exe".
Exceeded retry count of 10. Failed.
Error 42 Unable to copy file "obj\Debug\WeinGartner.WeinCad.exe" to
"bin\Debug\WeinGartner.WeinCad.exe". The process cannot access the file
'bin\Debug\WeinGartner.WeinCad.exe' because it is being used by another
process.
Teraz odkryłem, że zabicie tego procesu
Weingartner.WeinCad.vhost.exe
działa (czasami), ale to działa mi na nerwy. W jakikolwiek sposób można temu zapobiec?
Moje ustawienia debuggera to
c#
visual-studio-2012
build
process
bradgonesurfing
źródło
źródło
Odpowiedzi:
W programie Visual Studio 2013 napotkałem podobne komunikaty o błędach.
Najczęściej stwierdziłem, że taka sytuacja miała miejsce, gdy proces debugowania został zatrzymany z powodu wyjątku.
Kiedy clean + build nie rozwiązał dla mnie tego problemu, odniosłem sukces, wykonując następujące czynności:
bin
iobj
foldery, aTen „błąd” istnieje od Visual Studio 2003.
Wreszcie stwierdziłem, że często mogę rozwiązać ten problem, po prostu zmieniając nazwę pliku wykonywalnego, a następnie usuwając go.
źródło
W programie Visual Studio Premium 2013 (aktualizacja 3) rozwiązałem to za pomocą jednego kompilatora:
To z wdziękiem usuwa wszystkie stare pliki PDB (jeśli to możliwe), a następnie zmienia nazwę wszystkiego, co pozostało z
.old.pdb
rozszerzeniem. Przyjemnym efektem ubocznym jest to, że jeśli stary PDB jest nadal zablokowany, to po prostu dodaje kolejny .old kawałek do nazwy pliku i wszystkie one są czyszczone przy następnym uruchomieniu Visual Studio i kompilacji.Na przykład sesja kompilacji / debugowania 1 pozostanie
MyProject.pdb
zablokowana.Następnym razem, gdy zbudujesz:
MyProject.pdb
->MyProject.old.pdb
Następnie build / debug sesja 2 rozpoczyna się, a obie
MyProject.pdb
iMyProject.old.pdb
są nadal zablokowaneMyProject.old.pdb
->MyProject.old.old.pdb
MyProject.pdb
->MyProject.old.pdb
Wreszcie, ponowne uruchomienie Visual Studio i wykonanie nowej kompilacji pozbędzie się ich obu i będzie kontynuowało proces jak zwykle.
źródło
Wynika to z faktu, że aplikacja została zamknięta, ale nadal działa w tle.
Rozwiązanie tymczasowe:
Stałe rozwiązanie: musisz zamknąć aplikację za pomocą kodowania. Oto kod ...
Musisz umieścić ten kod we wszystkich wydarzeniach zamykających formularz. Przykład:
źródło
.vhost.exe to proces debugowania, więc wygląda na to, że debugowany proces nie został poprawnie zamknięty. Możliwe, że masz błąd, który utrzymuje go przy życiu i nie zatrzymuje poprawnie procesu debugowania - istnieją opcje, aby odłączyć się od procesu, gdy klikniesz „przestań debugować” zamiast faktycznie zabić debugera, więc może masz ten zestaw.
Ale to jest problem - plik, który próbujesz skopiować, jest zablokowany (tzn. Nadal używany) przez system operacyjny, więc uniemożliwia kopiowanie. Upewnij się, że plik jest bezpłatny, a będziesz mógł skopiować.
źródło
Visual Studio 2019
, jestem coraz podobną wiadomość, choć teraz wspomina proces w niektórych wyjścia (nie wszystkie). To był testhost.x86.exe, który musiałem zabić za pośrednictwemTask Manager
. Potem wydawało się, że przestał wykrywać jeden z procesów testowych.Rozwiązałem go, zabijając IISExpress w menedżerze zadań
źródło
Powinieneś wyłączyć swój program antywirusowy (szczególnie jeśli jest to Avast) i spróbować ponownie. Pomogło mi to. Problem polega na tym, że debugger / konstruktor tworzy plik .exe, który jest identyfikowany przez Avast jako zagrożenie i dlatego jest usuwany tuż przed jego wykonaniem przez VS.
źródło
Byłem w stanie rozwiązać ten problem (VS 2010), dostarczając następujące działania przed kompilacją;
źródło
Zacytować:
Fragment kodu
źródło
Wyjątek
W niektórych przypadkach w programie Visual Studio, gdy (Build || Rebuild) działa na IISExpress, masz do czynienia z tym wyjątkiem:
Rozwiązanie
Jesteś dobry 2 GO!
źródło
Wygląda na to, że zmiana nazwy zestawu projektu rozwiązuje problem.
Więc zamiast tego
Zmieniam to na to
Zauważ, że po prostu zmienił go od
Increment and Recall
celuIncrement_Recall
, po prostu usuwa spacje. Teraz działa mi dobrze.źródło
Zabicie procesu w3wp.exe (IIS) często to rozwiąże.
Zasadniczo możesz poznać proces, który ma blokadę pliku, przechodząc do folderu bin i próbując go usunąć. Komunikat o błędzie, który się pojawi, w przypadku, gdy inny proces go używa, będzie zawierać nazwę procesu, który należy zabić.
źródło
Napotkałem ten sam problem w wersji VS 2012 11.0.60610.01 Update 3 na Windows 8
Nie było otwartych okien projektantów, a projekt był prostą aplikacją konsolową.
Usunięcie procesu vshost uzyskującego dostęp do pliku nie działa przez większość czasu, ponieważ proces nie uzyskuje dostępu do pliku.
Najprostszym obejściem, które działa i zajmuje najmniej czasu, jest usunięcie projektu z rozwiązania, zbudowanie innego projektu w rozwiązaniu, a następnie dodanie oryginału z powrotem.
Jest to irytujące i strata czasu, ale jest najtańsze ze wszystkich innych opcji, które znam.
Mam nadzieję że to pomoże...
źródło
Myślę, że rozwiązałem to, usuwając znacznik wyboru
Break all processes when one process breaks
w opcjach debugowania (pierwszy zrzut ekranu op -> druga opcja).Od jakiegoś czasu go odznaczam.
Używam MySql NET Connector i formantów DevExpress w moim projekcie. Być może jednym z nich nie było usuwanie połączeń, powiązań itp. Z powodu aktywacji tej flagi.
EDYCJA: zdecydowanie działa! Koniec z „Nie można skopiować pliku” i nie ma już błędów projektanta formularzy.
źródło
Dodaj zdarzenie przed kompilacją swojego głównego projektu taskkill / f / fi "pid gt 0" / im "YourProcess.vshost.exe"
źródło
Mój wkład 10 centów.
Nadal mam ten problem od czasu do czasu w aktualizacji VS 2015 Update 2.
Odkryłem, że zmiana celu kompilacji rozwiązuje problem.
Spróbuj tego: jeśli jesteś w trybie DEBUG, przełącz się na RELEASE i buduj, a następnie z powrotem do DEBUG. Problem zniknął.
Stefano
źródło
Wykonaj poniższe kroki
Powyższe kroki rozwiązały błąd na stałe :)
źródło
Jeśli żadna z odpowiedzi nie działa, spróbuj tego prostego sprawdzenia. Znajdź dowolny MSbuild.exe uruchomiony i trzymający plik EXE projektu. Zabij MSBuild.exe i powinieneś być gotowy.
źródło
Nie mogę podać rozwiązania, które mogłoby temu zapobiec, ale przynajmniej ZMIEŃ NAZWĘ zablokowanego pliku (Eksplorator Windows lub klasyczne okno poleceń), a następnie skompiluj / skompiluj. Nie ma potrzeby ponownego uruchamiania lub ponownego uruchamiania VS201x. Z pewnym doświadczeniem możesz dodać skrypt przed kompilacją, aby usunąć stare pliki lub zmienić nazwę, a następnie usunąć z drogi w przypadku blokady.
źródło
Zobacz inną odpowiedź . Zasadniczo procesy MSBuild.exe mogą być uruchomione w tle i zużywają pliki zasobów. Jeśli masz jakieś zadania przed lub po kompilacji, które powodują, że MSBuild jest uruchamiany za pomocą wiersza poleceń, spróbuj dodać flagę „/ nr: false” do tego polecenia. Ale ponownie zobacz poprzednią odpowiedź, aby uzyskać bardziej szczegółowe informacje.
źródło
W końcu jak to naprawić. Dlaczego nie możemy kontynuować debugowania po pierwszym debugowaniu, ponieważ exe pierwszego debugowania wciąż działa. Aby po pierwszym debugowaniu przejść do Menedżera zadań -> Karta Proces -> [nazwa projektu exe] zakończyć proces exe.
mi to pasuje :)
źródło
Odpowiedź @ Geoffa ( https://stackoverflow.com/a/25251766/3739540 ) jest dobra, ale generuje kod błędu 1 podczas ponownej kompilacji.
Oto, co zadziałało dla mnie (2> nul 1> nul na końcu + wyjście 0):
źródło
Jeśli debugujesz szablony T4 , dzieje się tak przez cały czas. Moje rozwiązanie (zanim MS to naprawi) byłoby po prostu zabić ten proces:
Menedżer zadań -> Użytkownik -> T4VSHostProcess.exe
Ten proces pojawia się tylko podczas debugowania szablonu T4, a nie podczas uruchamiania.
źródło
Oto skrypt, aby zdecydowanie pozbyć się tego problemu:
Skrypt należy wywoływać z każdego zdarzenia przed kompilacją projektu VS.
źródło
[Pracuj dla mnie]
źródło
To pytanie było pierwszym wynikiem, gdy szukałem następującego błędu:
podczas budowania w Visual Studio 2013 (aktualizacja 3).
Rozwiązanie: Odinstalowanie „narzędzi zwiększających wydajność” w programie Visual Studio 2013.
https://connect.microsoft.com/VisualStudio/feedback/details/533411
źródło
W moim przypadku był to biegacz Resharper Unit Tests (plus testy NUnit, nigdy nie miałem takiego problemu z MsTests). Po zabiciu procesu był w stanie go odbudować bez ponownego uruchamiania systemu operacyjnego lub VS2013
źródło
JetBrains.Resharper.TaskRunner.*
Nie zdawałem sobie sprawy, że wciąż mam podłączony debuger i próbowałem zbudować w tej samej instancji Visual Studio. Po zatrzymaniu debugera byłem w stanie zbudować.
źródło
Zabicie procesu (ów) vstest.executionengine.exe rozwiązuje ten problem w 90% przypadków. Jeśli to nie zadziała, zabij także QTAgent32.exe a następnie usunięcie folderów / bin i / obj dla danego projektu.
To najbardziej irytująca część mojego dnia pracy. :)
źródło
Dla mnie był to program antywirusowy Avast, który nie pozwala programowi Visual Studio na pisanie / odczytywanie / uruchamianie pliku. Musiałem więc dodać folder Visual studio 2010/2012 do listy wykluczeń antywirusowych. A zaraz po tym baam ... działa.
źródło
Upewnij się, że zamknąłeś wszystkie instancje wcfSvcHost i spróbuj ponownie. To zadziałało dla mnie!
źródło