파일을 복사 할 수 없습니다-경로에 대한 액세스가 거부되었습니다


238

Visual Studio 2005를 사용하고 있습니다. 먼저 버전 제어에서 코드를 가져온 후 c # .net 응용 프로그램이 올바르게 실행됩니다. 그러나 약간의 수정을 한 후 빌드 할 때 다음 오류가 발생합니다.

오류 383 ".. \ root \ leaf \ Bin \ Debug \ test.Resources.xml"파일을 "Bin \ Debug \ test.Resources.xml"로 복사 할 수 없습니다. 'Bin \ Debug \ test.Resources.xml'경로에 대한 액세스가 거부되었습니다. li.rollmodel

이 문제가 왜 발생하는지 아는 사람이 있습니까?

편집 전체 프로젝트 소스 코드 폴더가 읽기 전용이며 읽기 전용 속성을 제거 할 수 없음을 알 수 있습니다.

먼저이 폴더의 읽기 전용 속성을 제거하는 방법을 알려줄 수 있습니까? 제거하려고 시도했지만 읽기 전용 속성이 유지됩니다. 버전 관리 측면에서도 시도했지만 작동하지 않았습니다.


네트워크 공유에 있습니까? 컴퓨터에 대한 관리 액세스 권한이 있습니까? 이 질문은 serverfault 또는 수퍼 유저에게 더 적합 할 수 있습니다.
arunkumar

아니요, 내 컴퓨터를 사용하고 있습니다. 관리자 액세스 권한이 있습니다
ricky

내가 수동으로 porbably 문제가 읽기 전용 파일을 MSBUILD 관련이 필요한 위치, 한 위치에서 파일을 복사하여 그 문제를 해결
리키

답변:


277

bin 폴더에서 논쟁적인 파일을 삭제하고 프로젝트를 다시 작성 하여이 문제를 해결했습니다.


50
이전 게시물을 알고 있지만 지금은 같은 문제가 있습니다. 경우에 따라 폴더를 삭제하기위한 액세스가 거부되므로 VS도 닫혀 있어야합니다.
Eon

1
작은 참고 사항 : 처음에는 dll의 출력 폴더가 아닌 기본 프로젝트의 출력 폴더에서 이러한 파일을 삭제해야한다는 것을 이해하지 못했습니다. 따라서 경고 :)
Piero Alberto

6
내 경우에는 VS를 닫아도 폴더를 비우고 폴더를 삭제할 수 없습니다. ProcessExplorer는 "VBCSCompiler.exe"가 여전히 폴더를 사용하고 있음을 보여주었습니다. 이 경우 Windows에서 로그 아웃하거나 프로세스를 종료하면 솔루션을 다시 빌드하고 모든 작업을 다시 수행 할 수 있습니다.
S. Jensen

2
필자의 경우 폴더와 솔루션이 ReadOnly로 바뀌고 VS가 폴더를 빌드하는 데 문제가있는 이유는 일부 파일이 GoogleDrive와 동기화되지 않고 해당 프로세스에 의해 잠 겼기 때문입니다. 그래서 내가 올바르게 다시 빌드하려면 GoogleDrive를 닫아야했다.
konrad

1
Bitdefender Antivirus Free가 범인이라는 것을 알았습니다.
Warwick

123

폴더가 읽기 전용이 아닌지 확인하고 솔루션을 다시 빌드하십시오.


12
녹색으로 채워진 '읽기 전용'확인란을 제거하려고합니다. '적용'을 클릭 한 다음 '확인'을 클릭 한 다음 해당 폴더의 속성을 다시 확인하면 이전 상태에서 다시 읽을 수 있습니다 ( '읽기 전용'확인란이 녹색으로 채워짐). 이에 대한 해결책이 있습니까?
Vikram

또한 파일이 잠겨 있지 않은지 확인하십시오. 제 경우에는 파일이 공유에 있었고 다른 사람이 파일을 열었습니다.
Dan Bechard

읽기 전용 특성을 제거하기 전에 Visual Studio를 닫으십시오. 문제의 파일이 사용 중일 수 있으므로 (잠금)
Gautam Jain

4
빌드를 차단하는 dll의 ReadOnly 및 Hidden 특성을 지우는 Visual Studio Extension을 만들었습니다. UnBlockDllExtension : marketplace.visualstudio.com/…
vrnithinkumar

69

이 문제를 해결했습니다. Visual Studio를 닫았다가 다시 연 다음 솔루션을로드하고 솔루션을 다시 빌드하십시오. TFS와 VIsual Studio 2010을 사용하면서 문제가 발생했습니다.


22
VS2013에서 동일한 문제를 추가하십시오. IT 군중의 전형적인 사례. "안녕하세요. IT입니다. 전원을 껐다 켜 보셨습니까?"
Maxime Rouiller 2018 년

1
같은 시나리오 : TFS와 VS 2010. 같은 문제. 같은 솔루션입니다. +1
ajeh

2
이것은 VS2015에서도 발생했습니다 : p
Yoo Matsuo

4
VS2017에서도 마찬가지
arame3333

1
나는 이미 이것을 고치려고 애
쓰고

50

프로세스를 종료 VBCSCompiler.exe하고 다시 빌드하십시오.


3
이것이 나를 위해 해결 한 것입니다. 친절한 낯선 감사합니다 : D
Morsus

그렇습니다.
kal kokah

대단히 감사합니다, 당신은 친절한 낯선 사람입니다! : D
Agent007

언젠가 그것은 항상 나를 위해 일하지는 않았지만, 나는이 문제의 일부를 해결할 것이라고 말해야합니다.이 문제를 일으키는 다른 것도 있습니다.
Amit Bisht

이것도 시도해보십시오. stackoverflow.com/a/12740768/2445111
Amit Bisht

23

나는이 문제에 들어갔다.

먼저 bin과 obj 폴더를 소스 제어 프로그램에 매핑했는지 확인하십시오.

이진 폴더의 파일을 읽기 전용 보관 파일로 변환하여 Visual Studio에서 코드를 컴파일 할 때 파일을 덮어 쓰지 못하게 할 수 있습니다.

이 폴더에서 매핑을 제거하고 변경 사항을 확인한 후 다시 시도하십시오.

TFS (Team Foundation Server) 및 Visual Studio 2010을 사용하여 문제가 발생했습니다.

이것이 누군가를 돕기를 바랍니다.


1
Heitorolecarte의 답변이 내 문제를 해결했으며 Visual Studio 2012 및 TFS2010에서 발생할 수 있다고 덧붙였습니다.
Rodney


9

Visual Studio 2013을 사용합니다.이 문제가 두 번 발생했습니다.

  1. 처음에는 관리자 권한없이 Visual Studio를 실행하고있었습니다. 그래서 VS를 닫고 ' 관리자 권한으로 실행 '옵션을 사용하여 시작했습니다 . 이것은 내 문제를 해결했습니다.

  2. 두 번째 경우에는 VS를 관리자로 실행할 때마다 VS를 여러 번 다시 시작했습니다. 또한 솔루션을 여러 번 다시 작성했습니다. 그러나 그럼에도 불구하고 나는 오류가 발생했습니다. 그 후 대상 위치에서 관련 파일을 제거하고 (파일이 이미 존재하는 위치의 이전 빌드에서 파일이있을 수 있음) 솔루션을 다시 빌드했습니다 . 그 후 오류가 사라지고 모든 것이 순조롭게 진행되었습니다!



7

이로 인해 Visual Studio 2017에서 다시 머리를 사로 잡았습니다.이 경우 Application Insights 프로세스 ServiceHub.DataWarehouseHost.exe가 원인입니다.

스레드 경고 MSB3026에 설명 된 해결 방법이 있습니다 . "obj \ Debug \ netcoreapp1.1 \ src.pdb"를 "bin \ Debug \ netcoreapp1.1 \ src.pdb"로 복사 할 수 없음 ( 사전 빌드 추가) 프로젝트가 진행될 때마다 프로세스를 종료하기 위해 프로젝트에 이벤트. 해당 링크에서 인용 :

  • 프로젝트에서 마우스 오른쪽 버튼 클릭 속성
  • 속성 선택
  • 빌드 이벤트
  • 사전 빌드 이벤트 명령 행
taskkill /IM ServiceHub.DataWarehouseHost.exe /F 2>nul 1>nul
Exit 0
  • 저장하고 빌드

6

이 문제가 왜 발생하는지 아무도 모를 수 있습니까?

수동 복사를 통해 문제를 해결했다는 귀하의 답변을 살펴보면 작업중 인 코드가 다른 사용자 (관리자 권한도 있음)가 작성한 것이므로 사용자에게 잠겨 있다고 말합니다. 복사를 수행하여-? 붙여 넣기, 당신은 당신이 필요한 모든 액세스 권한을 가진 소스의 자신의 사본을 만들었습니다. 유일하게 알아 두어야 할 것은이 경우 다른 개발자가 사본 작업을해야하는 경우 이전에 겪었던 것과 똑같은 문제가 발생한다는 것입니다.


6

먼저 파일 위치로 이동하십시오. 그런 다음 파일의 폴더-> 등록 정보-> 확인되지 않은 읽기 전용 옵션을 마우스 오른쪽 버튼으로 클릭 하고 파일 및 하위 폴더에 적용하십시오. 내 문제가 해결되었습니다. 행복한 코딩!


3

.NET이 아닌 모든 종속성 / 참조를 다시 추가하고 트릭을 수행했습니다.


3

이 문제를 직접 해결했습니다. 문제는 다른 곳에서 솔루션을 열었다는 것입니다. 그것을 닫은 후에 작동합니다


나는 또한 이것을했다. 다른 컴퓨터에서 디버깅 할 때 항상 대상이 네트워크 드라이브에 있는지 분명한 쉬운 항목을 먼저 확인하십시오.
Simon Unsworth

3

같은 문제가 있었지만 문제가 자주 발생하기 때문에 Visual Studio를 다시 시작할 때마다 옵션이 없었습니다 .

Unlocker설치하여 처리했습니다 ( 설치시 툴바를 설치하려고 시도하므로 이것을 선택 취소하는 것을 잊지 마십시오 ).이 응용 프로그램 은 잠긴 ".xml"-File의 이름을 바꾸거나 삭제하는 빠른 액세스를 제공합니다 . 나는 이것이 해결 방법 일 뿐이라는 것을 알고 있지만 나에게는이 문제를 해결하는 가장 빠른 해결책이었다.


고마워 지난 한 해 동안이 문제가 발생하여 관리자간에 전환하지 않기 때문에 발생했다고 생각했지만 이제는 팬더 바이러스 백신 관련 중요 프로세스 (작업 관리자에없는 PSANHost.exe)가 잠겨 있다는 것을 알고 있습니다. 파일.
yeejuto

3

오래된 게시물이지만이 좀비는 VS 2017을 강타하고 있습니다 (왜 "일부"프로젝트인지 파헤 치지 않았습니다). 이 경우 사용자 권한 이 아니며 IIS Express 프로세스가 여전히 파일을 사용하고 있습니다.

작업 표시 줄에 아이콘이 표시됩니다 IIS Express 아이콘

  1. 마우스 오른쪽 버튼으로 클릭
  2. 출구
  3. rebuild이 성가신 "permission denied"메시지 없이도 가능해야합니다 .

"Visual Studio 다시 시작"이 문제를 "수정"하는 이유이기도합니다. 이렇게하면 IIS Express가 중지됩니다.

어 ...


2

솔루션에 새 설치 프로젝트를 추가 한 다음 주 응용 프로그램 프로젝트의 / bin / release 폴더에서 설치 프로젝트의 응용 프로그램 파일 폴더로 직접 파일을 추가 할 때이 문제가 발생했습니다. 설치 프로젝트의 소스 제어로 인해 주 응용 프로그램 프로젝트의 빌드를 완료하지 못했습니다.

솔루션 : 설치에 포함 할 모든 파일을 포함 할 프로젝트 외부에 별도의 덤프 폴더를 작성하고 거기에서 추가하십시오. 이제 새로운 설치 패키지마다 파일을 모두 복사해야한다는 점에서 고통 스럽습니다. 프로세스를 매끄럽게 만들기 위해 빌드 후 작업으로 자동화 된 빌드로 무언가를 할 수 있는지 알 수 있습니다.


2

파일을 솔루션으로 복사하는 경우 파일이 읽기 전용 모드가 아닌지 확인하십시오. 파일을 마우스 오른쪽 버튼으로 클릭하고 속성 옵션을 선택 취소하여 문제를 해결하십시오.


2

나는 같은 오류가 있었지만 Perforce 버전 관리를 사용하고 있습니다. 내가 고친 방법은 다음과 같습니다.

  1. 닫힌 Perforce P4V 클라이언트
  2. Visual Studio 2010을 다시 시작했습니다 (필요하지 않을 수도 있음).
  3. 성공한 프로젝트를 재건
  4. 매우 행복하고 동시에 혐오감을 느꼈습니다.

1
나도 같은 설정을 가지고 있지만, 3 단계와 4 단계 :(를 가져올 수 없습니다
user3260977

2

나도 같은 문제가 있었다. 경로 액세스가 거부되어 복사 할 수없는 오류 메시지가 표시됩니다. 필자의 경우 모든 dll 및 xml 파일 등은 D : \ TFS \ Example \ Bin \ Debug 폴더에 있습니다.

Bin 폴더를 마우스 오른쪽 버튼으로 클릭하고 속성을 클릭 한 후 속성 아래에서 읽기 전용 확인란이 선택되어 있음을 확인했습니다.

읽기 전용 확인란의 선택을 취소하고 표시된 새 팝업에서 적용을 클릭하고 확인을 클릭했습니다.

Visual Studio로 돌아가서 오류 메시지를 표시하는 솔루션을 빌드했습니다.

Voilaa .. 이번에는 오류없이 성공적으로 빌드됩니다.

이것이 완벽한 지 모르겠지만 문제를 해결하기 위해이 작업을 수행했습니다.


2

작업 관리자를 확인하고 devenv.exe 프로세스가 정지되어 있지 않은지 확인하십시오. 런 어웨이 프로세스를 종료하고 다시 시도하십시오.


2

파일 경로로 이동 한 다음이 파일의 읽기 전용 확인란을 선택 취소하십시오.


1

나는 오래된 스레드를 알고 있지만 몇 분 전에 나와 같은 대답을 찾는 사람들을 위해 먼저 컴퓨터를 다시 시작하는 것이 좋습니다. 그것은 나를 위해 고쳐졌습니다. 이전에는 수동으로 폴더로 복사 할 수 없었습니다.


1
나에게도 도움이되었습니다. 2020 갱
Vitor Ceolin

1

MVC 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 정리 옵션을 클릭하십시오. 나는 비슷한 문제가 있었고 재건 전에 프로젝트를 청소하여 해결했습니다.


1

나는 또한 같은 문제가 있었다. 루트 폴더의 읽기 전용 속성을 선택 취소하여 문제를 해결했습니다.


때로는 해결책이 이것처럼 간단하고 명백합니다. 머리를 계속 두드리고 복잡하고 끝없는 절차를 해결하는 대신 이러한 유형의 간단한 가능성을 확인하면 인생이 훨씬 쉬워집니다. 필자에게 필요한 도움을 줄 수있는 방대한 전문가 커뮤니티를 제공해 주신 StackOverflow에 감사드립니다.
Choudhury Saadmaan Mahmid

1

나는 또한이 문제가 있었다. 이 문제를 해결하는 방법은 다음과 같습니다.

  • bin프로젝트에서 폴더를 제외하십시오 .
  • 비주얼 스튜디오를 닫습니다.
  • C 드라이브의 디스크 정리.
  • Visual Studio에서 프로젝트를 다시 엽니 다.
  • 그런 다음 솔루션을 다시 빌드하십시오.
  • 프로젝트를 실행하십시오.

이 과정은 저에게 효과적입니다.



1

대상 웹 사이트의 bin 폴더에서 문제가되는 대상 파일 (예 : "Bin \ Debug \ test.Resources.xml")을 제거하고 다시 빌드하여 문제를 해결할 수있었습니다.


1

1) Visual Studio 솔루션을 닫습니다.

2) 명령 프롬프트로 이동-> 관리자 권한으로 실행-> iisreset / stop

3) c-> Windows-> Microsoft.Net-> Framework64-> v4.030319-> 임시 Asp.NET 파일->이 경로의 모든 파일과 폴더를 탐색하십시오.

4) 명령 프롬프트로 돌아갑니다-> iisreset / start

5) 이제 Visual Studio를 열고-> 관리자 권한으로 실행-> 솔루션을 정리하고 빌드하십시오 (다시 빌드하지 마십시오.


0

폴더 속성을 읽기 전용이 아닌 것으로 변경해서는 안됩니다. 이 오류 메시지가 표시되는 이유는 소스 제어에서 .Net에 의해 자동으로 생성 된 파일을 위해 예약 된 bin 폴더 이외의 어딘가에있는 기타 파일 만 저장하고 소스에 추가하고 싶지 않기 때문입니다. 제어.

사용하지 말고 Environment.CurrectDirectory(현재 사용하고 있다고 가정) % appdata % address에 "MyProjectName"이라는 폴더를 만들고 다음을 사용하십시오.

System.IO.Path.Combine(Environment.GetEnvironmentVariable("appdata"),"YourProjectName").


0

그래서 방금 동일한 문제, 내 원인에 부딪 쳤습니다. 개발 폴더를 공유하여 Mac을 Xamarin을 사용하여 IOS 응용 프로그램의 빌드 호스트로 사용할 수있었습니다. 프로젝트는 Mac에서 실행되어 dll의 소유권을 얻었으므로 다른 곳에서 해당 dll을 변경할 수 없었습니다. Mac에서 응용 프로그램을 중지하면 소유권이 다시 내게 돌아와서 전체 액세스가 가능해졌습니다. 나는 이것이 이후에 있기를 바랍니다.

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