2015-01-05 3 views
0

PostSharp에 의존하는 여러 프로젝트가 있습니다. 매우 자주 (시간의 50 % 이상) 내 빌드는이 오류와 함께 종료 :PostSharp 빌드 타임 오류 : "System.IO.IOException : 프로세스가 'C : ... MyProjectOutputDll.dll'파일에 액세스 할 수 없습니다."

Error 19 Unhandled exception (4.0.34.0, 32 bit, CLR 4.5, Release): System.IO.IOException: The process cannot access the file 'C:\SolutionPath\ProjectPath\obj\Debug\ProjectName.dll' because it is being used by another process. 
    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 
    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 
    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) 
    at ^Up6wxUIUnN6a.^8KD6D2SV(String _0) 
    at ^cyC/TYSlPGB/.^wvPm(^RtksFin57NJ8 _0, ^8gP93Xsl\+Imn _1) 
    at PostSharp.Sdk.Extensibility.Tasks.CompileTask.Execute() 
    at PostSharp.Sdk.Extensibility.Project.ExecutePhase(String phase) 
    at PostSharp.Sdk.Extensibility.Project.Execute() 
    at PostSharp.Hosting.PostSharpObject.ExecuteProjects() 
    at PostSharp.Hosting.PostSharpObject.InvokeProject(ProjectInvocation projectInvocation). C:\SolutionPath\ProjectPath\ProjectFile.csproj ProjectName 

그리고 오류 변화에 언급 된 프로젝트를, 언젠가는 (예를 들어) ProjectA, 그것은 SomeOtherProject 등의 다른 시간이다. 여러 번이 오류는 여러 프로젝트에서 두 번 또는 더 많이 나타납니다.

어떤 장소에서 LocationInterceptionAspect.CompileTimeValidate 메서드를 덮어 씁니다. 결과적으로 충돌이 될 수 있습니까?

는 또한 파일 (OnMethodBoundaryAspectOnExceptionAspect) 로그에 기록 로거를 사용하지만, 그것은

내가 그것을 어떻게 해결합니까 ... 더 컴파일 타임 방법이 없다?

+0

VS 외부에서 어떤 파일에 액세스 할 수 있는지 모든 가능한 경우를 확인 했습니까? 백업, 안티 바이러스 등? – Sinatr

답변

1

오류는 PostSharp가 출력 어셈블리를 디스크에 쓸 수 없음을 의미합니다. MSBuild는 종속성 프로젝트가 컴파일이 완료된 후에 실행된다는 것을 보장하므로 자체적으로 발생하지 않아야합니다.

가장 일반적인 경우는 적절한 프로젝트 종속성을 설정하지 않고 MSBuild 외부의 어셈블리에 액세스하는 경우입니다 (Visual Studio의 솔루션에 대한 상황에 맞는 메뉴 옵션 참조).

는 다음을 확인하십시오 :

  1. C#을 VB 이벤트를 구축 /.
  2. 맞춤 빌드 단계.
  3. 가로 세로 방법에서의 동적 어셈블리로드.

이 모두는 현재 프로젝트에 종속성이없는 프로젝트의 출력 파일에 액세스하면 안됩니다. 오류가 발생하면 오류를 설명 할 때 오류가 임의로 발생합니다.

+0

분명히 백그라운드에서 일부 클라우드 백업이있었습니다 ... 이제는 간섭하지 않는 또 다른 백업 백업 솔루션을 찾아야합니다 ... – Tar