Nie można skopiować odwołania do pliku.dll do bin / reference.dll. Proces nie może uzyskać dostępu do referencji do pliku.dll, ponieważ jest on używany przez inny proces

Dla jednego z moich ASP.NET 3.5 aplikacje, za każdym razem, gdy próbuję zbudować aplikację internetową, wyrzuca następujące błędy budowania w Visual Studio 2008:

Błąd 165 nie można skopiować pliku "C:\InOne\Common\DexProcessor\bin\Debug\DexProcessor.dll " do " bin \ DexProcessor.dll". Proces nie może uzyskać dostępu do pliku ' bin\DexProcessor.dll', ponieważ jest on używany przez inny proces. InVision2 Błąd 166 nie można skopiować pliku "C:\InOne\Common\DexParser\bin\Debug\InOne.DexParser.dll " do " bin\InOne.DexParser.dll". Proces nie może uzyskać dostępu do pliku 'bin\InOne.DexParser.dll', ponieważ jest on używany przez inny proces. InVision2 Błąd 167 nie można skopiować pliku "C:\InOne\Common\AlertProcessor\bin\Debug\InOne.Invision.AlertProcessing.dll " do " bin\InOne.Invision.AlertProcessing.dll". Proces nie może uzyskać dostępu do pliku 'bin\InOne.Invision.AlertProcessing.dll', ponieważ jest on używany przez inny proces. InVision2 Błąd 168 nie można skopiować pliku "C:\InOne\Common\InVision.BusinessLogic\bin\Debug\InVision.Bizneslogic.dll " do " bin\InVision.Bizneslogic.dll". Proces nie może uzyskać dostępu do pliku 'bin\InVision.Bizneslogic.dll', ponieważ jest on używany przez inny proces. InVision2 Błąd 169 nie można skopiować pliku "C:\InOne\Common\InVision.Common\bin\Debug\InVision.Pospolite.dll " do " bin\InVision.Pospolite.dll". Proces nie może uzyskać dostępu do pliku 'bin\InVision.Pospolite.dll', ponieważ jest on używany przez inny proces. InVision2 Błąd 170 nie można skopiować pliku "C:\InOne\Data\bin\Debug\InVision.Data.dll " do " bin\InVision.Data.dll". Proces nie może uzyskać dostępu do pliku 'bin\InVision.Data.dll', ponieważ jest on używany przez inny proces. InVision2 Błąd 171 nie można skopiować pliku "C:\InOne\Common\InVision.DataAccessLayer\bin\Debug\InVision.DataAccessLayer.dll " do " bin\InVision.DataAccessLayer.dll". Proces nie może uzyskać dostępu do pliku 'bin\InVision.DataAccessLayer.dll', ponieważ jest on używany przez inny proces. InVision2 Błąd 172 nie można skopiować pliku "C:\InOne\Common\InVision.DataAccessLayer.SqlClient\bin\Debug\InVision.DataAccessLayer.SqlClient.dll " do " bin\InVision.DataAccessLayer.SqlClient.dll". Proces nie może uzyskać dostępu do pliku 'bin\InVision.DataAccessLayer.SqlClient.dll', ponieważ jest on używany przez inny proces. InVision2

To zaczęło się tydzień temu i jest bardzo irytujące... Muszę wejść do folderu bin aplikacji internetowej i usunąć Pliki pdb, a następnie pozwoli mi Usuń dll przez większość czasu. Co jakiś czas mi nie pozwala, więc muszę zamknąć Visual Studio, a potem pozwala mi je usunąć. Sprawdziłem i to Visual Studio (devenv) blokuje dll. ponowne uruchomienie maszyny nie pomaga.

To naprawdę zmniejsza moją produktywność, czy jest coś, co mogę zrobić, aby to rozwiązać?


Jak wspomniano, Visual Studio 2008 (devenv.exe) jest procesem blokującym biblioteki DLL.

Zauważyłem coś... Kiedy kompiluje pomyślnie kopiuje wszystkie biblioteki DLL do folderu bin, a następnie wszystkie są usuwane, a następnie nowy zestaw jest kopiowany do kosza. Jeśli nie powiedzie się, pierwszy zestaw bibliotek DLL zostanie skopiowany, a następnie zawiedzie. Więc wydaje się, że używa folderu bin dla 2 rzeczy, kiedy powinien być tylko dla 1. Czy to pomaga??

Author: Bill the Lizard, 2009-07-13

30 answers

Problem zakończył się tym, że w sieci.config ktoś dodał:

hostingEnvironment shadowCopyBinAssemblies="false"
Po skomentowaniu tego, wszystko zaczęło się budować ok. Co za koszmar!!
 19
Author: Justin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-08 07:18:02

Użyj ProcessExplorer Aby dowiedzieć się, który proces ma otwarty plik i stamtąd przejść.

Jeśli proces obecnie używa tych DLL, nie można go usunąć i ponownie zapisać. Będziesz musiał zabić lub w inny sposób zatrzymać proces za pomocą tych bibliotek DLL podczas kompilacji.

 13
Author: Ben S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-13 18:58:37

Walczę z tym problemem od lat!

Próbowałeś dodać to do swojego PREBUILD eventu?

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

Zobacz to, aby uzyskać więcej informacji: http://nayyeri.net/file-lock-issue-in-visual-studio-when-building-a-project

Oto kolejny wątek, z kolejnymi rzeczami do wypróbowania...

Http://social.msdn.microsoft.com/forums/en-US/Vsexpressinstall/thread/5b71eb06-5047-483d-8fd3-b75c102d41e9/?prof=required

 12
Author: Developer22222222,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-11 16:21:38

Zadziałało dla mnie następujące zdarzenie pre-build:

if exist "$(TargetPath).locked.bak" del "$(TargetPath).locked.bak"
if exist "$(TargetPath).bak" del "$(TargetPath).bak"
if exist "$(TargetPath).locked" ren "$(TargetPath).locked" "$(TargetFileName).locked.bak"
if exist "$(TargetPath)" ren "$(TargetPath)" "$(TargetFileName).bak"

Zauważyłem w moim przypadku, że pliki 2 są tworzone i nie można ich usunąć. Możesz jednak zmienić ich nazwy (i nadal są używane, jeśli spróbujesz je usunąć). Przy następnej kompilacji, przemianowane pliki nie są już używane (blokada usunięta) i mogą zostać usunięte, co robi powyższy skrypt, po czym może bezpiecznie zmienić nazwę nowych zablokowanych plików, więc nie będzie problemów w generowaniu kompilacji wyjście.

Inne zdarzenia pre-build zamieszczone tutaj i w innych miejscach nie pomogły mi bardzo (działały tylko przy jednym dodatkowym build lub tylko kilku, zanim problem pojawił się ponownie). Więc teraz używam tego zamieszczonego powyżej do moich celów debugowania.

 10
Author: Marcel Gheorghita,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-09 17:45:09

Chciałem tylko powiedzieć, że ten problem zaczął się ode mnie dzisiaj. (VS 2010, C#) pracuję nad tym programem od miesiąca bez tego problemu, teraz już się zaczęło. Uruchamiam VS, zmieniam kod, kompiluję, testuję i zamykam program. Dokonaj kolejnej zmiany, skompiluj i BOOM nie może skopiować pliku " obj \ x86 \ Debug \ progname.exe " do " bin\Debug\progname.exe", ponieważ if jest używany przez inny proces.

ProcExp pokazuje tylko Visual Studio (właściwie devenv.exe) za pomocą tego pliku. Jest tylko jedna instancja vs running. W moim debug \ progname znajdują się dwie listy.exe, jeden jest DLL typu, drugi jest Uchwyt Typu.

Używanie devenv / ResetSettings niczego nie rozwiązało, ale zmarnowało 10 minut na przywrócenie wszystkiego do pożądanego widoku.

Używanie PREBUILD events rename trick wymienionych powyżej rozwiązuje problem dla kilku zmian, ale przy następnej zmianie " exe.zablokowany " plik jest zablokowany i nie można go usunąć. Wtedy zmiana nazwy nie powiedzie się.

The debug\progname.nazwa pliku exe pozostaje zablokowana nawet po zamknięciu projektu.

Zamykanie VS, ręczne usuwanie plików w folderze debugowania, otwieranie VS i moje rozwiązanie, a następnie Build->Clean rozwiązanie wydaje się działać dla mnie, przynajmniej działa teraz po tym, jak zrobiłem wszystkie te rzeczy.

Mam nadzieję, że to pomoże - rwg

 4
Author: rwg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-27 17:26:04

Niestety nie miałem szczęścia z wydarzeniami pre-build. W typowym stylu IT Crowd udało się zamknąć Visual Studio i otworzyć je ponownie.

 4
Author: Craig Nichols,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-06 23:01:18

Easy fix Dla Windows 7: Uruchom usługę "doświadczenie aplikacji". Wyszukaj "usługi" w "Panelu sterowania".

-Martin

 2
Author: Martin Lütken,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-29 10:47:54

Jeśli masz Visual Nunit, musi to być blokowanie pliku dll.

  1. Close VS
  2. Idź do taks managera, wyłącz proces Visual Nunit
  3. teraz otwórz VS i zbuduj projekt
 2
Author: Rajesh Toleti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-10 14:34:15

Witam od jakiegoś czasu mam ten sam problem. To bardzo irytujące.

Mam łatwiejsze, ale nie tak skuteczne rozwiązanie problemu. Czyszczenie projektu lub rozwiązania rozwiązuje problem.

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-08 07:44:59

Po prostu przejdź do \Debug \ bin i usuń wszystkie .pliki dll.

Działa świetnie dla mnie.

 1
Author: learn_andrd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-19 09:17:20

Miałem taki problem w projekcie www z systemem.Www.Rozszerzenia.dll z folderu Microsoft Reference Assemblies. Ustawianie" Copy Local " NA false we właściwościach reference naprawiło to.

 1
Author: tags2k,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-17 11:01:30

Możesz pobrać doskonały program Sysinternals Handle . To powie Ci, które procesy mają blokadę danych plików.

Jeśli jest to program zewnętrzny (np. skaner antywirusowy/indekser) to powinno to pomóc. Jeśli tylko zgłosi Visual Studio (devenv.exe) jako winowajca, wtedy będzie mniej pomocny!

 0
Author: Rob Levine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-13 18:58:57

Zakładam, że już wiesz, że to VS2008 blokuje pliki. Możesz spróbować uruchomić MSBuild z linii poleceń i sprawdzić, czy problemy znikną. Niestety program Visual Studio może zablokować pliki, gdy nie powinien, w niektórych trudnych do przewidzenia scenariuszach.

 0
Author: Vinay Sajip,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-13 18:59:16

Blokady plików to tylko część pracy z Visual Studio. Nie ma dobrych sposobów na obejście tego problemu.

 0
Author: Chris Ballance,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-13 19:14:01

W Visual Studio 2008 pojawił się konkretny błąd, który został naprawiony w SP1, który może być Twoim problemem. Występuje, gdy odwołujesz się do osadzonego pliku JavaScript i powoduje problem, który widzisz. Zobacz tutaj Po Więcej Szczegółów.

 0
Author: Jon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-13 20:01:22

Miałem problem z simillarem rozwiązaniem dla mnie było spojrzenie na *.plik csproj i pod znalazłem brakujący plik więc i poniżej był poprawny więc po prostu usunąłem linie i działało od razu

 0
Author: Marcin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-14 08:24:54

Usuwanie następujących linii z mojej aplikacji.config rozwiązał to dla mnie - używam VS2010.

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
          <assemblyIdentity name="nunit.framework" publicKeyToken="96D09A1EB7F44A77" culture="neutral"/>
          <bindingRedirect oldVersion="0.0.0.0-2.5.7.10213" newVersion="2.5.7.10213"/>
      </dependentAssembly>
  </assemblyBinding>
</runtime>
 0
Author: Colin Pickard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-15 10:06:55

Sprawdź, czy biblioteka DLL użytkownika i aplikacja odwołująca się do biblioteki dll są adresowane do tego samego. NET framework. Miałem przypadek, w którym ramy były różne, co spowodowało ten problem.

 0
Author: sterimick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-20 10:00:24

Zdarza mi się to czasami, gdy używam Visual Nunit do testów jednostkowych.

Wydaje się, że proces ' VisualNunitRunner.exe ' blokuje .pliki dll w katalogu docelowym.

Użyłem Unlocker aby znaleźć proces, zabić go lub odblokować pliki.

 0
Author: warrickh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-06 01:53:37

Miałem podobny problem i mogłem go rozwiązać zmieniając ' AssemblyInfo.cs '

Visual Studio Build fails: nie można skopiować pliku exe z obj \ debug do bin \ debug

 0
Author: lulalala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:29

Pliku nie można usunąć, na szczęście można zmienić jego nazwę i przenieść. Więc utworzyłem prebuild batch (używając daty i czasu jako losowego ciągu, mogą być łatwiejsze sposoby):

For /f "Tokens=2,3,4 Delims=/. " %%i In ("%Date%") Do @(
  Set Month=%%i& Set Day=%%j& Set Year=%%k
)

set ActDate=%Year%-%Month%-%Day%

For /f "Tokens=1,2,3 Delims=/.:, " %%i In ("%Time%") Do @(
  Set Hour=0%%i& Set Min=%%j& Set Sec=%%k
)

set ActTime=%Hour:~-2,2%-%Min%-%Sec%

move c:\MyProject\bin\Debug\myproject.exe c:\garbage\%ActDate%_%ActTime%_myproject.exe
 0
Author: T_xy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-27 16:11:44

Właśnie mnie to spotkało. Musiałem zabić wszystkich devenv.procesy exe (było ich 3 po zamknięciu okna VS 2010).

 0
Author: Mauricio Ramalho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-14 17:06:11

Usuń pliki binarne z folderu bin\Debug i przekompiluj je. To mi pasuje!!!

 0
Author: Subbu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-22 10:53:43

Ten problem występuje zwykle, gdy zmieniasz projekt z jednego katalogu do drugiego . W przypadku błędu kopiowania cienia możesz dodać tę linię w swoim web.config.To fix this follow the following

W sieci.plik konfiguracyjny jeśli istnieje coś takiego jak

<hostingEnvironment shadowCopyBinAssemblies="false" />

Zmień to na

<hostingEnvironment shadowCopyBinAssemblies="true" />

Albo usunąć .Wtedy będzie działać dobrze
 0
Author: Prashanth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-18 07:21:47

Używałem Visual Studio 2012, gdy zaczęło się to dziać na 7-letnim rozwiązaniu(po raz drugi lub trzeci: byłem już na tym pytaniu).

Próbowałem różnych voodoo. Wyczyściłem roztwór. Nie zadziałało. Zrestartowałem Visual Studio. Nie zadziałało. Byłem przekonany, że to ostatnie zadziała, bo to voodoo zadziałało ostatnim razem.

Ostatecznie przypomniałem sobie, że wczoraj wieczorem zainstalowano aktualizację zabezpieczeń i została skonfigurowana, gdy uruchamiałem mój komputer dziś rano - (połączone czy nie? No Idea) - więc, ponownie uruchomiłem Windows, i voila, to wszystko działało jak magia ponownie.

Dzięki MS za więcej mincing umysłu.

 0
Author: argyle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-28 17:11:13

Ja też mam do czynienia z tym problemem. Najpierw staram się usunąć .dll ale pokazuje Odmowa dostępu, a następnie zamykam mój VS i po otwarciu działa dobrze.

 0
Author: Mehedi hasan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-30 10:52:53

Podobne do odpowiedzi Benoita, ale nie wymaga instalacji żadnego narzędzia, możesz użyć polecenia tasklist (Menedżer zadań) w wierszu poleceń z przełącznikiem '/ m', aby uzyskać listę procesów za pomocą dll:

Tasklist / m mylocked.dll

Widziałem kilka postów wskazujących, że musisz to zrobić z katalogu biblioteki DLL, ale nie znalazłem, że tak jest.

 0
Author: bitcoder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-04 19:28:26

Możesz również usunąć foldery bin i obj we wszystkich projektach w rozwiązaniu, a następnie odbudować rozwiązanie.

 0
Author: HamidReza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-09 13:44:21

Otwórz swój projekt w Eksploratorze kliknij właściwość folderu bin i odznacz właściwość tylko do odczytu, która działa w moim projekcie Xamarin forms

 0
Author: Riyas K Salim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-14 20:03:20

Wreszcie jak to naprawić. Dzieje się tak, ponieważ pierwszy debug exe nadal działa. Następnie przejdź do Menedżera zadań - > Zakładka proces - > [Nazwa projektu exe] Zakończ proces exe

 0
Author: Sanket Parchande,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-13 07:06:06