Visual Studio 빌드 실패 : obj \ debug에서 bin \ debug로 exe 파일을 복사 할 수 없음


193

업데이트 : 이 버그를 재현하는 샘플 프로젝트 는 Microsoft Connect에서 찾을 수 있습니다 . 또한 아래의 대답에 제시된 솔루션이 해당 샘플 프로젝트에서 작동하는지 테스트하고 확인했습니다 . 이 방법으로 문제가 해결되지 않으면 다른 문제가있을 수 있습니다 (별도의 질문에 속함).


이것은 이전에 스택 오버플로와 다른 장소에서 묻는 질문이지만 지금까지 찾은 제안 중 어느 것도 도움이되지 않았으므로 새로운 질문을 시도해야합니다.

시나리오 : 간단한 Windows Forms 응용 프로그램 (C #, .NET 4.0, Visual Studio 2010)이 있습니다. 여기에는 대부분의 다른 양식이 상속하는 몇 가지 기본 양식이 있으며 데이터베이스 액세스를 위해 Entity Framework (및 POCO 클래스)를 사용합니다. 공상도없고 멀티 스레딩도 없습니다.

문제 : 한동안은 괜찮 았습니다. 그런 다음 응용 프로그램을 시작하려고 할 때 Visual Studio를 빌드하지 못했습니다. "파일 '... bin \ Debug \ [ProjectName] .exe'을 (를) 삭제할 수 없습니다. '... bin \ Debug \ [ProjectName] .exe'경로에 대한 액세스가 거부되었습니다. ' 라는 경고가 표시 됩니다." 및 오류 파일을 복사 할 수 "없습니다 'OBJ \ 86 \ 디버그 \ [프로젝트 이름] .EXE'에서 '빈 \ 디버그 \ [프로젝트 이름] .EXE'. 프로세스가 파일 '빈 \ 디버그 \에 액세스 할 수 없습니다 [프로젝트 이름] .EXE "다른 프로세스에서 사용 중이기 때문입니다." (Rebuild를 실행할 때 경고와 오류가 모두 발생하지만 Build를 실행할 때만 오류가 발생한다고 생각하지 않습니까?)

경고 및 오류 메시지의 내용을 완벽하게 이해합니다 .Visual Studio는 exe 파일을 덮어 쓰려고하지만 동시에 어떤 이유로 든 파일을 잠그려고합니다. 그러나 이것은 문제에 대한 해결책을 찾는 데 도움이되지 않습니다 ... 내가 찾은 유일한 것은 Visual Studio를 종료하고 다시 시작하는 것입니다. 양식을 변경하고 나서 다시 같은 문제가 발생하여 다시 시작해야 할 때까지 빌드 및 실행이 작동합니다.

위에서 언급했듯이 이것은 알려진 문제인 것 같으므로 제안 된 솔루션이 많이 있습니다. 내가 이미 시도한 것을 나열하면 사람들이 건너 뛸 것을 알 수 있습니다.

  • 새로운 깨끗한 솔루션을 만들고 이전 솔루션에서 파일을 복사하십시오.
  • 프로젝트의 사전 빌드 이벤트에 다음을 추가하십시오.

    if exist "$(TargetPath).locked" del "$(TargetPath).locked"
       if not exist "$(TargetPath).locked" if exist "$(TargetPath)" move "$(TargetPath)" "$(TargetPath).locked"
    
  • 프로젝트 속성 (.csproj 파일)에 다음을 추가합니다.

    <GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

그러나 그들 중 누구도 나를 위해 일하지 않았으므로 아마도 내가 약간 좌절하기 시작한 이유를 알 수 있습니다. 어디를 봐야할지 모르겠어요. 누군가 내게 무언가를 줄 수 있기를 바랍니다! 이것은 VS의 버그입니까, 그렇다면 패치가 있습니까? 아니면 내가 잘못했거나 순환 참조 또는 이와 유사한 것이 있습니까? 그렇다면 어떻게 알 수 있습니까?

모든 제안은 높이 평가됩니다 :)

업데이트 : 마찬가지로 코멘트에 언급 아래, 나는 또한 실제로 그 과정 Explorer를 사용하여 검사 한 것입니다 파일을 잠그고 비주얼 스튜디오.


4
응용 프로그램이 제대로 닫혔는지 확인 했습니까? 작업 관리자가 프로세스 목록에 [ProjectName] .exe를 표시합니까?
miensol

2
나는 이것을 전에 가지고 있었고 단순히 파일 이름을 .old 등으로 바꾸고 빌드를 다시 실행했습니다. 내가 아는 해결책은 아니지만 그것은 나를 위해 일했다.
codingbadger

@ miensol : 예, 제대로 닫히는 것 같습니다. " '[1848] [ProjectName] .vshost.exe : 관리 (v4.0.30319)'프로그램이 코드 0 (0x0)으로 종료되었습니다." @ Barry : bin \ Debug에서 exe 파일 이름을 바꾸면 작동하지만 실제로는 해결책이 아니며 매번 해야하는 것이 상당히 성 가실 것입니다. 그래도 Visual Studio를 다시 시작하는 것보다 조금 낫습니다.
Julian Julian

2
@Naliluj : 리소스 포럼과 관련이있을 수 있다고 설명하는 Microsoft 포럼 에서이 기사를 발견했습니다. resx 파일을 사용하는 경우 힌트를 줄 수 있습니다.
Patrick

1
후손을 위해이 문제가 있었고 <GenerateResourceNeverLockTypeAssemblies> true </ GenerateResourceNeverLockTypeAssemblies> 요소를 csproj 파일에 추가하여 해결했습니다.
ThisIsTheDave

답변:


117

이것은 어리석게 들릴지 모르지만 Windows 7에서 VS2010을 실행하여 이러한 모든 솔루션을 시도했습니다. 이름을 바꾸고 건물을 제외하고는 아무 것도 지루하지 않았습니다. 결국, 나는 범인을 추적했고, 믿기 어렵다는 것을 알게되었습니다. 하지만 AssemblyInfo.cs에서 다음 코드를 사용하고있었습니다 ...

[assembly: AssemblyVersion("2.0.*")]

이것은 매우 일반적이지만 어떤 이유로 버전을 2.0.0.0으로 변경하면 다시 작동합니다. Windows 7 관련 항목인지 (3-4 주 동안 만 사용 했음) 또는 무작위인지 또는 무엇인지 알지 못하지만 나를 위해 수정했습니다. VS가 생성 된 각 파일에 대한 핸들을 유지하고 있다고 생각합니다. 그래서 물건을 늘리는 방법을 알고 있습니까? 나는 확실하지 않으며 전에 이런 일이 일어나는 것을 본 적이 없다. 그러나 다른 사람이 머리카락을 뽑은 경우 시도해보십시오.


12
그것은 하나의 미친 아이디어입니다, 나는 당신에게 그것을 줄 것입니다;) 더 미친 것은, 그것이 실제로 작동하는 것입니다! 나는 이것을 여러 번 테스트했으며 "2.0. *"과 같은 어셈블리 버전을 사용할 때 오류가 발생하지만 대신 "2.0.0"을 사용하면 매력으로 작동한다는 것을 확인할 수 있습니다! 더 많은 사람들이 이것을 테스트하도록 촉구하며, 그것이 효과가 있다고 생각되면이 답변에 투표하십시오. 이것은 알아야 할 것이기 때문입니다! 마이크로 소프트가 이것을 받아들이기를 바란다 ... drharris :)
Julian

2
VS를 다시 시작할 때 언젠가 오류가 발생하지 않았습니다. 이 오류가 발생할 때마다 VS 2010을 다시 시작해야합니다
Sharique

6
참고 ... 이것은 나를 위해 작동하지 않았다. 내 설정은 항상 다음과 같습니다. [어셈블리 : AssemblyVersion ( "1.0.0.0")] [어셈블리 : AssemblyFileVersion ( "1.0.0.0")]
tbone

4
현재 [어셈블리 : AssemblyVersion ( "1.0.0.0")] 인 경우 [어셈블리 : AssemblyVersion ( "2.0.0.0")] (예 : '1'대신 '2')로 바꾸십시오. 그것은 나를 위해 일했다. 확인하지는 않았지만 버전을 현재 가지고있는 것 이외의 것으로 변경하면이 문제를 해결할 수 있습니다.
Frederick The Fool

1
dll에서도 작동합니다! VS는 dll을 복사 할 수 없으며 BOTH [assembly : AssemblyVersion] 및 [assembly : AssemblyFileVersion ()]을 1.0. *에서 2.0.0.0으로 변경하면 작동합니다.
AZ.

14

이 문제에 대한 더 이상의 피드백을 얻지 못했기 때문에 결국 내 솔루션이 된 것을 공유한다고 생각했습니다.

Barry가 원래 게시물에 대한 주석에서 제안한 것처럼 수동으로 '... bin \ Debug [ProjectName] .exe'의 이름 을 다른 이름 (예 : '[ProjectName] 1.exe' )으로 바꾸는 것은 한 가지 해결 방법입니다 (I ' m 그러나 파일을 직접 삭제할 수는 없으며 삭제를 방지하는 동일한 잠금도 이름 바꾸기를 방해한다고 생각하는 것처럼 조금 이상하다고 말할 수 있습니다.) 좋은 해결책은 아니지만 (적어도 두 번 수행 한 후 거의 일상이됩니다) 합리적이고 빠르며 적어도 처음에는 Visual Studio를 다시 시작하는 것보다 훨씬 빠릅니다.

누군가 궁금해하는 경우 에도이 문제를 반 무작위로 볼 수 있다고 덧붙일 수도 있습니다. 일반적으로 양식의 디자인 모드에서 일부 변경을 수행 한 후에 발생합니다 (항상 그런 것은 아님). 비즈니스 논리 코드 또는 비 시각 관련 코드 만 변경하면 일반적으로 발생하지 않습니다 (그러나 때로는 그렇지 않습니다 ...). 실제로 실망 스럽지만 적어도 나에게 도움이되는 해킹이 있습니다. 다음 프로젝트 가이 문제에 직면하지 않기를 바랍니다.

@ 배리 : 귀하의 의견에 대한 신용을 얻고 싶다면 언제든지 답변으로 게시하고 받아 들일 것입니다 :)


이것이 내가 과거에 한 일이므로 이것을 투표했습니다. 나는 더러운 솔루션이지만 동의합니다. VS는 몇 번의 반복 으로이 문제가있었습니다. 네트워크 디렉토리에서 프로젝트를로드하고 있습니다. 완전히 신뢰할 수 있지만 중요하지 않습니다. 드라이브 매핑인지 UNC인지는 중요하지 않습니다. 네, MS는이 문제를 해결해야합니다. 그들은 재현 할 수 없다는 닫힌 버그가 있습니다. 절름발이!
Josh Robinson

14

하나의 간단한 해결책을 찾았습니다. 프로젝트 폴더 및 하위 폴더에 대해 Windows 인덱싱 서비스를 비활성화하십시오.


2
이것은 나를 위해 일했다. 프로세스 탐색기가 devenv.exe가 잠금 핸들을 잡고 있음을 보여 주면서 왜 그런지 이해하지 못합니다. 그럼에도 불구하고 인덱싱을 해제하면 문제가 해결되었습니다.
Fopedush

1
@Fopedush 당시에는이 질문을 보지 못했지만 동일한 솔루션 으로이 문제가 발생했습니다. 이 답변 에는 왜 도움이되는지에 대한 설명이 있습니다.
대런 헤일

1
이것은 나를 위해 그것을했다.
Martin Capodici

12

VS2008 (Windows 7 x32)의 WPF 프로젝트와 동일한 문제 (MSB3021)가 있습니다. 이전 실행 후 응용 프로그램을 너무 빨리 다시 실행하려고하면 문제가 나타납니다. 몇 분 후 exe 파일이 자체적으로 잠금 해제되고 응용 프로그램을 다시 실행할 수 있습니다. 그러나 그러한 긴 일시 정지는 나를 화나게합니다. 정말 도움이 된 유일한 것은 VS를 관리자로 실행하는 것입니다.


1
이 정확한 문제에 대한 최근 버그 보고서를 찾았습니다. connect.microsoft.com/VisualStudio/feedback/details/558848/… 이 버그 보고서는 버그를 재현 할 수있는 샘플 프로젝트를 제공했습니다. drharris가 제안한 솔루션도 거기에서 작동했습니다 (샘플 프로젝트에 대한 단계별 솔루션은 위의 링크에 게시 된 해결 방법 참조).
Julian

이것은 나에게도 효과가있는 유일한 솔루션입니다. 감사합니다 @Nailuj!
Winger

VS를 다시 시작하는 것보다 쉽습니다.
Elvedin Hamzagic 2016 년

1
연결 문제에 대한 "페이지를 찾을 수 없음", 그냥 당황에서 삭제 했습니까? = S 게시 된 솔루션 / 해결 방법이 있습니까?
Coops

9

이 문제가 발생하면 빌드하려는 프로젝트가 obj 폴더의 .exe를 잠그는 솔루션의 시작 프로젝트로 설정되어 있다는 사실과 관련이 있습니다 (작업 관리자에도 나타납니다). 솔루션에서 다른 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 시작 프로젝트 설정을 선택하십시오. 그러면 잠금이 해제되고 작업 관리자에서 잠금이 해제되어 빌드 할 수 있습니다.


1
이것은 나를 위해 매번 작동합니다. 서비스를 위해 생성되고 시작된 vshost 프로세스와 관련이있는 것 같습니다
jaywayco

8

나는 여기의 답변에서 다른 모든 제안을 시도했지만 그중 아무것도 효과가 없었습니다. 결국 Process Monitor를 사용하여 VS2010이 빌드하지 못한 .exe가 시스템 프로세스에 의해 잠겨 있음을 발견했습니다 (PID = 4). 이와 관련된 상황을 SO로 검색 하면이 답변 이 산출되었습니다 .

요약 : Application Experience 서비스를 비활성화 한 경우 (내처럼) 다시 활성화 한 후 시작하십시오. 2 년간의 악화가 끝났습니다.


+1 이전에 다른 모든 작업을 시도했습니다 (1. 작업 관리자, 2. 프로세스 탐색기, 즉 어떤 창에서는 허용되지 않는 핸들 닫기, 3. 바이러스 백신 비활성화, 4. Windows 인덱싱 서비스에서 APP_DATA / Local / Microsoft / Visual Studio 제외). ) 그러나이 팁은 "응용 프로그램 경험"서비스가 벽에 머리를 부딪히는 유일한 방법입니다. 나는 그것을 가능하게했고 문제는 사라졌다. 재밌는 것은 다시 비활성화 한 후 모든 것이 여전히 괜찮다는 것입니다. 더 이상 문제가 없었습니다. 그러나 분명히 이것이 나를 위해 분류 한 유일한 것입니다.
Tomás

나도 일해! 작동하는 다른 유일한 방법 은 응용 프로그램을 실행하기 전에 bin 폴더를 삭제하는 것이지만 실행하기 전에 항상 삭제해야합니다. 매우 성가신 일입니다.
E_Blue

6

나도 이것과 매우 비슷한 문제가 있었고 내 경우에는 bin \ debug 폴더를 VMware 및 VMware, VMWare, VM 게스트 아래의 탐색기 또는 안티 바이러스에서 공유 폴더로 사용할 수있게했기 때문에 게스트 아래의 프로그램 (하나는 설치되지 않은 것으로 생각되지만)은 파일에 대한 핸들을 잡고 있습니다.


Avast를 설치했으며 오늘 아침에 내 DLL에 바이러스가 있다는 임의의 MVC 오류가 발생했습니다. 오류가 발생하면 더 이상 MVC 프로젝트를 빌드 할 수 없습니다. Avast File System Shield에 예외를 추가했으며 모든 것이 다시 작동합니다.
더스티


4

Process Explorer어떤 프로세스가 파일을 잠그고 있는지 정확하게 찾으려면 다운로드 를 제안 합니다. 다음에서 찾을 수 있습니다.

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx


동의합니다. 파일을 잠그는 것이 반드시 VS는 아닙니다. 바이러스 검사기는 유죄 일 수 있습니다. 도움이되는지 바이러스 검사기를 끄십시오.
폴리 펀

죄송합니다. 이미 그 작업을 수행 한 것을 언급하지 않았습니다. 그리고 파일 ([ProjectName] .vshost.exe)에 대한 잠금이있는 Visual Studio (devenv.exe)라고합니다. 그래서 그것은 나에게별로 도움이되지 않습니다.
줄리안

@ ShellShock : 내 안티 바이러스 (Avast)를 비활성화해도 도움이되지 않습니다.
줄리안

나를 위해 Sysinternals ProcessExplorer를 사용하면 해당 파일에 대한 핸들을 볼 수 있지만 클릭하면 해당 파일을 보유하고있는 응용 프로그램이 표시되지 않으며 핸들을 닫으려고하면 "프로세스를 여는 동안 오류가 발생합니다. 유효하지 않습니다. " ProcessExplorer에서 오류가 발생했습니다. 그러나 잠금은 여전히 ​​유지됩니다.
tbone February

4

Visual Studio를 사용하면 오류를 재현하는 간단한 프로젝트를 만들 수 없었습니다.

내 솔루션은 Visual Studio Hosting 프로세스를 비활성화하는 것이 었습니다.

관심있는 사람들을 위해 문제가되는 핸들에 대한 핸들 추적을 첨부했습니다.

0:044> !htrace 242C
--------------------------------------
Handle = 0x000000000000242c - OPEN
Thread ID = 0x0000000000001cd0, Process ID = 0x0000000000001a5c

0x000000007722040a: ntdll!ZwCreateFile+0x000000000000000a
0x0000000074b4bfe3: wow64!whNtCreateFile+0x000000000000010f
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x00000000772184c8: ntdll!LdrpInitializeProcess+0x00000000000017e2
0x0000000077217623: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bea0
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773d0066: ntdll_773b0000!NtCreateFile+0x0000000000000012
0x000000007541b616: KERNELBASE!CreateFileW+0x000000000000035e
0x0000000075b42345: KERNEL32!CreateFileWImplementation+0x0000000000000069
0x000000006a071b47: mscorwks_ntdef!StgIO::Open+0x000000000000028c
--------------------------------------
Handle = 0x000000000000242c - CLOSE
Thread ID = 0x0000000000000cd4, Process ID = 0x0000000000001a5c

0x000000007721ffaa: ntdll!ZwClose+0x000000000000000a
0x0000000074b3f2cd: wow64!whNtClose+0x0000000000000011
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x000000007724d177: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bfe4
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773cf992: ntdll_773b0000!ZwClose+0x0000000000000012
0x0000000075b42642: KERNEL32!BaseRegCloseKeyInternal+0x0000000000000041
0x0000000075b425bc: KERNEL32!RegCloseKey+0x000000000000007d
*** WARNING: Unable to verify checksum for mscorlib.ni.dll
0x0000000068f13ca3: mscorlib_ni+0x0000000000233ca3
0x0000000069bc21db: mscorwks_ntdef!CallDescrWorker+0x0000000000000033
0x0000000069be4a2a: mscorwks_ntdef!CallDescrWorkerWithHandler+0x000000000000008e
--------------------------------------
Handle = 0x000000000000242c - OPEN
Thread ID = 0x00000000000006cc, Process ID = 0x0000000000001a5c

0x0000000077220e0a: ntdll!NtOpenKeyEx+0x000000000000000a
0x0000000074b5d1c9: wow64!Wow64NtOpenKey+0x0000000000000091
0x0000000074b5313b: wow64!whNtOpenKeyEx+0x0000000000000073
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x000000007724d177: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bfe4
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773d0fca: ntdll_773b0000!NtOpenKeyEx+0x0000000000000012
0x0000000075b42721: KERNEL32!LocalBaseRegOpenKey+0x000000000000010c
0x0000000075b428c9: KERNEL32!RegOpenKeyExInternalW+0x0000000000000130
0x0000000075b427b5: KERNEL32!RegOpenKeyExW+0x0000000000000021
--------------------------------------
Handle = 0x000000000000242c - CLOSE
Thread ID = 0x0000000000000cd4, Process ID = 0x0000000000001a5c

0x000000007721ffaa: ntdll!ZwClose+0x000000000000000a
0x0000000074b3f2cd: wow64!whNtClose+0x0000000000000011
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x000000007724d177: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bfe4
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773cf992: ntdll_773b0000!ZwClose+0x0000000000000012
0x0000000075b42642: KERNEL32!BaseRegCloseKeyInternal+0x0000000000000041
0x0000000075b425bc: KERNEL32!RegCloseKey+0x000000000000007d
0x0000000068f13ca3: mscorlib_ni+0x0000000000233ca3
0x0000000069bc21db: mscorwks_ntdef!CallDescrWorker+0x0000000000000033
0x0000000069be4a2a: mscorwks_ntdef!CallDescrWorkerWithHandler+0x000000000000008e
--------------------------------------
Handle = 0x000000000000242c - OPEN
Thread ID = 0x0000000000001cd0, Process ID = 0x0000000000001a5c

0x0000000077220e0a: ntdll!NtOpenKeyEx+0x000000000000000a
0x0000000074b5d1c9: wow64!Wow64NtOpenKey+0x0000000000000091
0x0000000074b5313b: wow64!whNtOpenKeyEx+0x0000000000000073
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x00000000772184c8: ntdll!LdrpInitializeProcess+0x00000000000017e2
0x0000000077217623: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bea0
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773d0fca: ntdll_773b0000!NtOpenKeyEx+0x0000000000000012
0x0000000075b42721: KERNEL32!LocalBaseRegOpenKey+0x000000000000010c
0x0000000075b428c9: KERNEL32!RegOpenKeyExInternalW+0x0000000000000130
--------------------------------------
Handle = 0x000000000000242c - CLOSE
Thread ID = 0x0000000000000cd4, Process ID = 0x0000000000001a5c

0x000000007721ffaa: ntdll!ZwClose+0x000000000000000a
0x0000000074b3f2cd: wow64!whNtClose+0x0000000000000011
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x000000007724d177: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bfe4
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773cf992: ntdll_773b0000!ZwClose+0x0000000000000012
0x0000000075b42642: KERNEL32!BaseRegCloseKeyInternal+0x0000000000000041
0x0000000075b425bc: KERNEL32!RegCloseKey+0x000000000000007d
0x0000000068f13ca3: mscorlib_ni+0x0000000000233ca3
0x0000000069bc21db: mscorwks_ntdef!CallDescrWorker+0x0000000000000033
0x0000000069be4a2a: mscorwks_ntdef!CallDescrWorkerWithHandler+0x000000000000008e
--------------------------------------
Handle = 0x000000000000242c - OPEN
Thread ID = 0x0000000000001cd0, Process ID = 0x0000000000001a5c

0x0000000077220e0a: ntdll!NtOpenKeyEx+0x000000000000000a
0x0000000074b5d1c9: wow64!Wow64NtOpenKey+0x0000000000000091
0x0000000074b5313b: wow64!whNtOpenKeyEx+0x0000000000000073
0x0000000074b3cf87: wow64!Wow64SystemServiceEx+0x00000000000000d7
0x0000000074ac276d: wow64cpu!TurboDispatchJumpAddressEnd+0x0000000000000024
0x0000000074b3d07e: wow64!RunCpuSimulation+0x000000000000000a
0x0000000074b3c549: wow64!Wow64LdrpInitialize+0x0000000000000429
0x00000000772184c8: ntdll!LdrpInitializeProcess+0x00000000000017e2
0x0000000077217623: ntdll! ?? ::FNODOBFM::`string'+0x000000000002bea0
0x000000007720308e: ntdll!LdrInitializeThunk+0x000000000000000e
0x00000000773d0fca: ntdll_773b0000!NtOpenKeyEx+0x0000000000000012
0x0000000075b42721: KERNEL32!LocalBaseRegOpenKey+0x000000000000010c
0x0000000075b428c9: KERNEL32!RegOpenKeyExInternalW+0x0000000000000130

--------------------------------------
Parsed 0x358E stack traces.
Dumped 0x7 stack traces.
0:044> !handle 242c ff
Handle 242c
  Type          File
  Attributes    0
  GrantedAccess 0x120089:
         ReadControl,Synch
         Read/List,ReadEA,ReadAttr
  HandleCount   2
  PointerCount  3
  No Object Specific Information available

질문의 맨 위에있는 경우 버그 보고서 및 오류를 재현하는 샘플 프로젝트가있는 Microsoft Connect 링크가 있습니다. connect.microsoft.com/VisualStudio/feedback/details/558848/…
Julian

호스팅 프로세스를 비활성화하면 나에게 도움이되었습니다. 다시 활성화 한 후에도 계속 작동합니다. 수백 가지 솔루션을 시도 하면서이 문제를 해결하기 위해 4 시간을 보냈습니다. 이것은 심지어 원격으로 작동하는 유일한 것입니다.
Drew Chapin

4

문제가 아직 해결되지 않은 경우 :

비주얼 스튜디오의 오류는 다음과 같습니다

"이 프로세스는 다른 프로세스에서 사용 중이기 때문에 'bin \ Debug ** app.exe **'파일에 액세스 할 수 없습니다."

따라서 창의 작업 관리자 (Ctrl + Shift + Esc)로 이동하여 응용 프로그램 이름을 찾은 다음 Endprocces로 강제로 닫으십시오.


3

다른 가능성이 있습니다.

vs2012 / win7 에서이 오류를 수신 한 후 bin 디렉토리에서 파일을 삭제하려고 시도했으며 탐색기는 파일이 XAML UI 디자이너에서 사용 중임을 나타냅니다.

VS에서 열었던 모든 탭을 닫고 VS를 닫은 다음 작업 관리자에서 모든 MSBuild 프로세스를 강제 종료했습니다. 마지막으로 VS를 다시 시작한 후 솔루션을 빌드 할 수있었습니다.


그리고 다른 가능한 원인 :

이 문제의 또 다른 원인을 발견했습니다. 코드 리팩토링을 수행하고 프로젝트를 솔루션 안팎으로 이동 한 후 프로젝트 참조가 더 이상 솔루션의 프로젝트를 예상 한대로 참조하지 않았습니다.

이 비주얼 스튜디오는 일부 프로젝트를 동시에 빌드 할 수 있다고 생각하여 파일 잠금을 생성한다고 오해했습니다.

편집 : VS2012를 사용하여 최근 몇 번이 나이 문제가 발생했으며 빌드 순서를 올바른 종속성으로 설정하고 VS가 실행중인 msbuild 프로세스를 종료 한 다음 VS를 다시 시작하면 문제가 해결됩니다. 확실하게 msbuild 프로세스를 종료하지만 VS를 닫으면 프로세스도 종료됩니다.

내가 일반적 으로이 작업을 수행하는 것은 마지막 빌드에서 참조하지 않은 솔루션 내의 다른 프로젝트에 의존하도록 프로젝트를 리팩터링하는 것입니다. 이것은 때때로 VS를 혼란스럽게하는 것처럼 보이고 빌드 순서를 업데이트하지 않습니다.

빌드 순서를 확인하려면 : 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 "프로젝트 빌드 순서 ..."를 선택하고 각 프로젝트에 대한 종속성이 올바르게 표시되는지 확인하십시오.


우리는 최근 WinPhone 8 프로젝트에서 이것을 경험했습니다. 설명 할 수없는 원인은 Tuple 유형을 사용하고있었습니다. Tuple을 사용한 코드를 제거하면 문제가 해결되었습니다. 리턴 된 문제점을 코드를 다시 추가하십시오.
Seamus

수동으로 모든 MSBuild.exe를 작업을 죽여야 - 나는 트릭을하지 않았다 VS 폐쇄, VS2012와 같은 문제가 있었다
도망 치다

VS 2013을 사용하고 있으며 각 빌드 전에 작업 관리자에서 "XDesProc.exe * 32"프로세스 (Microsoft Visual Studio XAML UI Designer)를 종료 할 수있었습니다. 디자인 뷰에서 * .xaml 파일을 열 때마다 XAML UI 디자이너가 다시로드되는 것처럼 보이기 때문에 VS를 다시 시작할 필요가 없습니다.
Tim Sexton

3

IIS 다시 시작-디버거에 연결된 프로세스 일 수 있음


3

바이러스 백신을 비활성화하고 시도하십시오. 나는 또한 그 문제에 직면하고 있었지만 안티 바이러스가 비활성화되면 바이러스 백신으로 인해 응용 프로그램이 차단되었습니다.


3

나는 같은 오류에 직면했다.

모든 종속 프로젝트 / 라이브러리 의 bin 폴더 내용을 모두 삭제하여 문제를 해결했습니다 .

이 오류는 주로 버전 변경으로 인해 발생합니다.



1

간단한 일을 먼저하십시오.

실행중인 프로세스가 솔루션의 일부를 잠그지 않았는지 확인하십시오.

예를 들어, Windows 서비스 (일반적으로 콘솔에서 단위 테스트)에서 "InstallUtil"을 실행했습니다.

이로 인해 Windows 서비스 프로젝트의 bin 폴더에 일부 dll이 잠겼습니다. 내가 재건 할 때이 문제에서 예외가 발생했습니다.

Windows 서비스를 중지하고 다시 빌드하면 성공했습니다.

이 문제의 고급 단계를 수행하기 전에 응용 프로그램의 Windows 작업 관리자를 확인하십시오.

따라서 발자국 소리가 들리면 말이 얼룩말이 아니라고 생각하십시오! (의대생 친구로부터)


1

나는 같은 문제가 있었다. bin \ debug에서 obj ....로 복사 할 수 없다고 말했습니다.

웹 프로젝트를 빌드 할 때 내 dll이 bin \ debug가 아닌 bin 폴더에 있음을 알았습니다. 게시하는 동안 bin \ debug에서 파일을 찾고있었습니다. 그래서 편집기에서 웹 프로젝트 파일을 열고 bin \ debug 인스턴스를 찾은 후 모든 dll이 bin \ debug \ mylibrary.dll로 언급되었습니다. 경로에서 모든 \ debug를 제거하고 다시 게시했습니다. 이번에는 vs 폴더에서 모든 dll을 찾아서 게시 할 수있었습니다.

웹 프로젝트 파일 에서이 경로가 어떻게 바뀌 었는지 전혀 모르겠습니다.

나는 이것을 디버깅하는 데 5 시간 이상을 보냈고 마침내 스스로 해결책을 찾았다.

이것이 정답 입니다.


1

위의 방법 중 어느 것도 작동하지 않고 콘솔 응용 프로그램을 개발중인 경우 :

Program.cs에 문자를 입력 한 다음 삭제하십시오. 왜 이것이 작동하는지 모르겠지만 매번 '복사 할 수 없습니다'문제를 해결하는 것 같습니다.


1

이것은 Avast에 의해 일반적으로 발생합니다.

일반적으로 릴리스에서 프로젝트를 실행할 수 있지만 디버그에서 실행하면 정기적으로 실패합니다.

프로젝트 폴더에 대한 제외를 추가하면 문제가 사라지는 것 같습니다. 다른 바이러스 백신 소프트웨어로 인해 발생할 수도 있다고 가정합니다.


1

.exe 및 .pub 파일의 이름을 바꾸면 나에게 도움이되었지만 실제로 지루합니다. 또한 디버그 세션 중에 편집 할 수없는 문제에 직면합니다. 마지막으로 다음과 같이 고급 보안 설정 페이지로 이동했습니다.

https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k%28%22VS.ERR.DEBUG_IN_ZONE_NO_HOSTPROC%3a11310%22%29;k%28TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION % 3dV4.0 % 22 % 29 & rd = true

"ClickOnce 보안 설정 사용"확인란을 선택 취소 한 다음 다시 선택하십시오. 며칠 동안 문제가 없었습니다 ....


1

나를 위해 이것은 대상 폴더 ( C:\users\username\source\repos\project\project\bin\debug\app.publish) 에서 명령 프롬프트를 열어서 발생했습니다 .

DEBUGGING이 게시 폴더에 액세스해야하는 이유를 잘 모르지만 명령 창을 닫으면 문제가 해결되었습니다.


1

단위 테스트를 디버그하거나 단위 테스트를 실행하려고 할 때 누군가이 문제가 발생하는 경우 파일을 해제하려면 다음 두 프로세스를 종료해야했습니다.

죽일 프로세스.


0

제공 한 몇 가지 솔루션을 시도했지만 때때로이 오류가 계속 발생합니다. 내 프로세스가 실행 중이 아니라고 인터넷 탐색기로 실행 파일을 삭제하려고하면 파일 목록에서 제거되지만 F5와 voila를 누르면 파일이 다시 시작됩니다. 전혀 삭제되지 않았습니다.

그러나 TotalCommander를 통해 파일을 삭제하면 exe 파일이 실제로 삭제되고 프로젝트를 성공적으로 빌드 할 수 있습니다.

Windows 7 x64 및 Total Commander 7.56a 32 비트를 사용하고 있습니다.


0

다른 답변은 저에게 효과적이지 않았지만 Visual Studio에서 열린 탭을 모두 닫으면 문제가 해결 된 것으로 보입니다.


0

나는 이것이 매우 오래된 질문이라는 것을 알고 있지만 최근에 VS 2012에서 "obj에서 bin으로 복사 할 수 없습니다"오류가 발생했습니다. 특정 프로젝트를 다시 작성하려고 할 때마다 메시지가 나타납니다. 유일한 해결책은 모든 재 구축 전에 깨끗하게하는 것입니다.

많은 조사를 한 결과 내 파일 중 하나에 불완전한 pragma 경고 문구가있어 컴파일이 성공하지 못했지만 VS가 파일을 잠그는 데 혼란을 겪었습니다.

필자의 경우 파일 맨 위에 다음이 있습니다.

#pragma warning(

그게 다야. 나는 잠시 동안 무언가를 시도했지만 산만 해져서 프로세스를 끝내지 않았지만 그 특정 라인에 대한 VS 경고가 셔플에서 사라졌습니다. 결국 나는 경고를 보았고, 그 줄을 제거하고 그 이후로 매번 작동합니다.


0

비슷한 문제에 직면했을 때 작동하는 유일한 것은 다음과 같습니다.

  • 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 설정으로 이동하여 디버그 및 릴리스 빌드가 동일한 설정을 대상으로하는지 또는 응용 프로그램이로드하거나 저장하려고하는 설정이 있는지 확인하십시오.
  • C : \ Users (YourUserAccount) \ AppData \ Local (YourAppName) 폴더를 삭제합니다.
  • 내가 가진 파일이 "차단됨"으로 간주되지 않았는지 확인하십시오. 프로젝트에 포함 된 파일을 마우스 오른쪽 버튼으로 클릭하면 하나의 아이콘이 실제로 차단되어 인터넷에서 다운로드 되었기 때문에 불량으로 간주됩니다. 차단 해제 버튼을 클릭해야했습니다 (예 : http://devierkoeden.com/Images/Articles/Dynamicweb/CustomModules/Part1/BlockedFiles.png- "이 파일은 다른 컴퓨터에서 가져 왔 으므로 도움이되지 않을 수 있습니다.) 이 컴퓨터를 보호하십시오. ").

0

WCF를 사용하는 Windows 서비스의 경우 WFC 호스트 프로세스를 종료하고 작동했습니다. 이것이 일어날 때 나는 그것을 싫어하고 때때로 무작위로 발생합니다.


0

내 솔루션은 버전, 프로세스가 잠기거나 다시 시작하거나 파일을 삭제하는 것과 관련이 없습니다.

문제는 실제로 빌드가 실패하여 정확한 오류가 발생하지 않았기 때문입니다. 실제 문제는 디자인 결함이었습니다.

// Either this should be declared outside the function, or..
SomeObject a = new SomeObject(); 

Task.Factory.StartNew(() =>
{
   while (true)
   {
      a.waitForSomething();
   }
});

// ...this should not be called
a.doSomething(); 

"a"의 범위를 함수 외부로 변경하거나 이후에 "a"를 사용하지 않으면 Task.Factory.StartNew();다시 빌드 할 수있었습니다.

이것은 Windows7x64 sp1에서 VS2012 업데이트 4를 사용할 때 발생했습니다.

에러 메시지:

C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (3390,5) : 오류 MSB3030 : "obj \ x86 \ Debug \ xxx.exe"파일을 찾을 수 없으므로 파일을 복사 할 수 없습니다. .


0

VS2013 에서이 오류가 정기적으로 발생합니다. 합리적으로 잘 작동하는 것으로 보이는 것은 응용 프로그램을 실행하기 전에 Rebuild Solution을 수행하는 것입니다. CLEAN을 수행하는 것이 때로는 효과가 있지만 Rebuild Solution이 더 일관되게 작동하는 것으로 나타났습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.