[Unity] Assembly-CSharp-firstpass.dll의 Sharing violation on path 에러
- 환경
- Unity 2020.3.7f1
- Windows 10
- Visual Studio Community 2019
- 증상
- 유니티 에디터와 Visual Studio가 열린 상태에서 스크립트가 컴파일 될 때 아래와 같은 에러 발생
- Copying assembly from ‘Temp/Assembly-CSharp-firstpass.dll’ to ‘Library/ScriptAssemblies/Assembly-CSharp-firstpass.dll’ failed. Detailed error: Sharing violation on path
- 유니티 에디터와 Visual Studio가 열린 상태에서 스크립트가 컴파일 될 때 아래와 같은 에러 발생
- 분석
- Assembly-CSharp-firstpass.dll은 무엇인가.
- Assembly-CSharp-firstpass.dll은 컴파일 순서에 따라 첫번째로 컴파일 된 결과물이다. Standard Assets과 Plugins에 포함된 스크립트들이 대상이고 첫번째 Phase이기 때문에 firstpass라는 네이밍이 붙는다.
- Sharing violation on path는 어떤 의미인가.
- 파일 IO 스트림이 열려 있거나 파일이 다른 프로세스로부터 사용 중이란 의미이다. 사용 중이기 때문에 복사하거나 복사 되지 못하는 경우라고 볼 수 있다.
- Assembly-CSharp-firstpass.dll은 무엇인가.
- 해결
- 유니티 이외의 다른 프로세스가 Library 폴더 내에 dll을 사용하는 경우는 어떤 경우일지 모르겠지만, 커뮤니티를 검색하다 보니 Kaspersky 및 Windows Defender에 관한 것이 있었다. 그래서 해당 폴더(Library)를 ‘Microsoft Defender > 바이러스 및 위협 방지 설정’에서 제외 시켜 보았더니 더 이상 에러가 발생하지 않았다. 다만, Unity 2017을 사용할 때는 일어나지 않았던 일이어서 2020 버전으로 변경하면서 생긴 것인지 혹은 다른 환경 변화로 인한 것인지는 확실히 알 수 없다.