2012-08-23 3 views
7

VS 2010 솔루션의 모든 프로젝트SGEN : 오류 : (HRESULT에서 예외 : 0x8013141A) 파일 또는 어셈블리를로드 할 수 없습니다 서버 2003을 우승,

닷넷 1.1에서 migurated 된 닷넷 3.5 솔루션은 지연 서명입니다 . soluton은 Debug를 성공적으로 빌드 할 수 있지만 다음 오류가있는 릴리스에서는 항상 실패합니다. SGEN : 오류 : 파일 또는 어셈블리를로드 할 수 없습니다. 'AssemblingX, 버전 = 1.0.5000.0, 문화 = 중립, PublicKeyToken = xxxxxxxx'또는 해당 종속성 중 하나. 강력한 이름 유효성 검사에 실패했습니다. (예외 HRESULT에서 : 0x8013141A)

AssemblingX 내가 원하는 프로젝트입니다. 이 프로젝트의 모든 참조 된 DLL은 로컬 폴더에 저장되고 이미 서명되었습니다. 내가 프로젝트 AssemblingX의 속성을 변경하여 서명하면 솔루션을 성공적으로 릴리스 할 수 있습니다.

는 내가이 http://social.msdn.microsoft.com/Forums/nl-NL/msbuild/thread/695581ae-77e7-4c3a-bb3f-6472b8c47f65

에 안내 그러나 아무것도 변경되지 따라 "loadFromRemoteSources"를 가능하게하는 sgen.exe.config를 만들었습니다. 어떤 아이디어?

감사합니다.

답변

17

이 문제는 Strong Name Validation과 관련이 있습니다. AssemblyXIldasm.exe (C : \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin)에 엽니 다. PublicKeyToken을 예로 들면 pkt123을 예로 들어 보겠습니다. 이제 관리자 모드에서 VS 명령 프롬프트를 열고 sn.exe 명령을 실행하십시오. 예 :

sn -Vr *,pkt123 

솔루션을 다시 빌드하면 모든 것이 정상적으로 완료되어야합니다.

그렇지만 지금도 같은 오류가 발생하면 다른 버전의 sn.exe를 실행해야합니다. 찾으려면 Visual Studio 명령 프롬프트로 이동하십시오.

c:\Program Files(x86)>dir /s sn.exe 

5 ~ 10 초가 걸릴 수 있으며 sn.exe 파일 목록을 제공해야합니다. 위와 같이 경로로 이동하여 sn.exe (필수 또는 소유)를 실행하십시오. 어느 것을 실행할 지 모를 경우 모든 sn.exe를 실행하십시오. 그것은 당신의 문제를 해결해야만합니다. 그렇지 않다면 알려 주시고 RnD를 다시 진행 시키십시오.

+0

굉장한 해결책, 감사합니다 :) – Mark

+0

감사 표시 .... :) – Sandy

+0

생명의 은인 !! 감사 – mo13

3

저는이 유일한 대답에 대해 의견을 말할 수 없기 때문에 나는이 답변을받은 다른 사용자가 다른 사람과 똑같은 실수를 저 지르지 않았는지 확인하고 싶었습니다. 강력한 명명 유틸리티에 대한 MSDN 설명서에 따르면 Vr (서명 건너 뛰기) 스위치를 사용하면 악의적 인 어셈블리가로드 될 수 있으므로 DEVELOPMENT not deployment에서만 사용해야합니다.여전히 삭제하거나 AllowStrongNameBypass (DWORD)를 설정할 필요가 해결되지 않을 경우

http://msdn.microsoft.com/en-us/library/k5b5tt23(v=vs.80).aspx

0

"1"키

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 

64 비트에 컴퓨터에서,

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework 
1

필자의 경우 그 이유는 네이티브 라이브러리가 다른 폴더에 작성된 다음 나머지 응용 프로그램에 빌드 되었기 때문입니다.

0

cmd를여십시오.

Cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin" 

실행 :

sn –Vr **AssemblingX** name (without dll extension), **PublicKeyToken**

(코드)

솔루션 재구성. 그리고 해결되어야합니다.