Blokowanie plików podczas budowania w Visual Studio 2010

Witaj, Stackoverflow.

Niedawno, kiedy programowałem w Visual Studio 2010, miałem problem z VS blokowaniem pliku bin / Debug / (ProjectName) .exe podczas próby budowania i poniżej podałem błąd po próbie zbudowania projektu 10 razy:

Nie można skopiować pliku „obj86” DebugileileEngine.exe do „bin 86 DebugileEngine.exe”. Proces nie może uzyskać dostępu do pliku 'bin 86 DebugileEngine.exe', ponieważ jest używany przez inny proces.

Problem pojawia się, gdy edytuję źródło, a następnie próbuję debugować. Sprawdziłem za pomocą różnych programów, a jedynym programem używającym tego pliku jest Visual Studio.

Jeśli poczekaj około 10 minut, zanim spróbuję zbudować, wydaje się, że działa poprawnie, ale próbując różnych rzeczy, nie trzeba czekać 10 minut, zanim spróbujesz czegoś.

Wypróbowałem różne rozwiązania zarówno na tej stronie, jak i wszędzie, gdzie mogę znaleźć w Google.

Niektóre rozwiązania, które znalazłem, ale nie działały dla mnieRozwiązanie 1 - Korzystanie ze skryptu wstępnego

W kilku różnych pytaniach na temat Stackoverflow znalazłem jedno rozwiązanie, w które wchodziszProject Properties > Build Events a następnie wLinia poleceń zdarzeń poprzedzających kompilację Dodaj:

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

Dzięki temu mogłem zbudować projekt jeszcze raz, niż zwykle, ale po ponownej edycji kodu, a następnie budowaniu, pojawił się ten sam błąd.

Uwaga: Próba zbudowania wydania zamiast kompilacji debugowania wydaje się przerywać skrypt wstępnego budowania i kończy się kodem „1”, co sprawia, że ​​VS nie jest w stanie poprawnie zbudować. Usunięcie skryptu pre-build sprawia, że ​​działa on ponownie jak „normalnie”, nadal jednak z tym samym błędem.

Rozwiązanie 2 - Uruchomienie Visual Studio jako administratora

Jest to kolejne rozwiązanie, które znalazłem, ale nie zadziałało dla mnie, więc zakładam, że Visual Studio ma już wszystkie wymagane uprawnienia i działa jako Administrator, ale tak naprawdę nie ma znaczenia.

Rozwiązanie 3 - Zmiana AssemblyVersion

W tym pytaniuKompilacja Visual Studio nie powiedzie się: nie można skopiować pliku exe z obj debug do bin debug, Znalazłem inne rozwiązanie, które obejmowało zmianęAssemblyVersion, wProperties\AssemblyInfo.cs plik, do"2.0.0.0". To jednak nie miało dla mnie żadnej różnicy.

Rozwiązanie 4 - Zamykanie projektantów UserControl przed budowaniem

Zgodnie z kilkoma różnymi odpowiedziami tu i tam w Internecie, Visual Studio najwyraźniej używa wbudowanego projektu wykonywalnego do renderowaniaUserControl projektant(?). W moim przypadku to prawdopodobnie nie jest to, ponieważ używam głównie XNA i nie używaUserControl projektant.

Rozwiązanie 5 - Czyszczenie zasobów po zamknięciu aplikacji

To może być rozwiązanie, którego nie udało mi się poprawnie wdrożyć. Myślę jednak tylko, że jeśli to jest rozwiązanie, to dlaczego nie musiałem tego robić wcześniej. Zakładam, że XNA rozładowuje wszystko, co zostanie załadowane przezContent rurociąg, dlatego to rozwiązanie nie miałoby żadnego sensu.

Jeśli jest ktoś, kto jest w stanie rozpowszechnić trochę światła na ten temat, byłby naprawdę niesamowity, ponieważ powstrzymuje mnie przed programowaniem czegokolwiek naprawdę, ponieważ nie lubię czekać 10 minut, ponieważ dokonałem 2-sekundowej zmiany cały czas.

questionAnswers(10)

yourAnswerToTheQuestion