[visual-studio-2010] VSTS 2010 SGEN : 오류 : 파일 또는 어셈블리를로드 할 수 없습니다 (HRESULT에서 예외 : 0x80131515).

VS2010에서 이상한 문제가 발생했습니다. 우리는 TFS를 사용하여 API dll을 빌드하고 완전히 신뢰할 수있는 매핑 된 네트워크 드라이브를 사용하여 프로젝트에서이를 참조했습니다. 우리는 적어도 2 년 동안 그렇게 일했고 모든 것이 완벽하게 작동했습니다.

오늘 저는 웹앱을 vs2010으로 변환했고 Release에서 컴파일하면 다음과 같은 결과가 나타납니다.

SGEN : 오류 : 파일 또는 어셈블리 ‘file : /// L : \ Api \ Release API_20100521.1 \ Release \ CS.API.Exceptions.dll’또는 해당 종속성 중 하나를로드 할 수 없습니다. 작업이 지원되지 않습니다. (HRESULT에서 예외 : 0x80131515)

이상한 점은 디버그 프로필 아래에서 작동한다는 것입니다.

나는 추가 시도

<runtime>
   <loadFromRemoteSources enabled="true" />
</runtime>

app.config로 들어가도 여전히 운이 없습니다 ( http://social.msdn.microsoft.com/Forums/en/msbuild/thread/d12f6301-85bf-4b9e-8e34-a06398a60df0http://msdn.microsoft.com/ 참조) ko-kr / library / dd409252 (VS.100) .aspx )

참조 된 모든 dll이 bin 폴더에 복사되기 때문에 prod에서 네트워크 공유에서 코드가 실행되지 않기 때문에이 문제는 Visual Studio 또는 msbuild에서 발생한 것이라고 확신합니다.

누구든지 해결책 (또는 검색 경로에 대한 아이디어)이 있으면 알려주세요!

편집 : 직렬화 어셈블리 생성이 꺼져 있기 때문에 디버그 모드에서 작동하는 것으로 나타났습니다. 제목에서 알 수 있듯이 경로를 신뢰할 수 없다고 말하는 유틸리티이기 때문에 정말 SGEN 문제입니다.



답변

Windows 탐색기에서 어셈블리 DLL을 찾아 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 “차단 해제”단추를 눌러이 오류를 수정할 수있었습니다. DLL에는 외부 파일로 표시하는 스트림이 있으며 차단 해제를 클릭하면 해당 지정이 제거됩니다.


답변

빌드가 네트워크 공유에서 dll을 참조하는 TFS 빌드 서버에서 동일하거나 유사한 문제가 발생했습니다.

문제는 CLR v4 보안 정책 모델이 이전 버전 이후로 변경되었으며 이전과 같이 어셈블리를 샌드 박싱하지 않는다는 것입니다.

문제를 해결하려면 sgen.exe의 위치를 ​​찾아 다음 내용으로 동일한 폴더에 sgen.exe.config를 생성하십시오.

<configuration>
  <runtime>
    <loadFromRemoteSources enabled="true" />
  </runtime>
</configuration>

sgen.exe는 일반적으로

"C:\Program Files\Microsoft SDKs\Windows\v[current version]\bin\NETFX 4.0 Tools"

다음 블로그 게시물에서 .NET 4.0의 CAS 정책에 대한 몇 가지 변경 사항을 읽을 수 있습니다. 링크


답변

같은 문제가 있었고 구성 변경이 작동하지 않았습니다. 프로젝트 속성에서 직렬화 어셈블리 생성을 해제로 설정했을 때만 작동했습니다.


답변

동일한 오류가 발생하여 DLL이 “차단”되었음을 알았습니다. 탐색기에서 DLL을 열고 오른쪽 클릭-> 속성-> ‘차단 해제’를 누릅니다.

http://cantgrokwontgrok.blogspot.com/2009/10/visual-studio-unknown-build-error.html


답변

이 똑같은 문제가 있었고 C : \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools 아래에 sgen.exe.config를 추가하여 수정했습니다.

다른 사람들이 말했듯 이이 간단한 구성으로

<?xml version ="1.0"?>
<configuration>
  <runtime>
    <loadFromRemoteSources enabled="true" />
  </runtime>
</configuration>


답변

64 비트 버전의 TFS 빌드 서비스를 실행하는 사용자를 위해 다음 경로에 구성 파일을 만들어야했습니다.

 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\x64

그리고 파일 내용 :

<?xml version ="1.0"?>
<configuration>
<runtime>
    <loadFromRemoteSources enabled="true" />
</runtime>
</configuration>


답변

나는 같은 문제가 있었고 GAC에 어셈블리를로드하고 일했습니다.