2012-05-10 2 views
1

런타임시 라이센스 오류 메시지를 제거하기 위해 소스에서 Krypton.Toolkit.dll을 다시 빌드해야했습니다. 참고 문헌에서 나는 오래된 크립톤 어셈블리를 제거하고 소스의 것들로 대체했다. (및 관련 캐스트 타입 에러)잘못된 어셈블리를 타겟팅하는 VS

Could not load file or assembly 'ComponentFactory.Krypton.Toolkit, Version=4.0.0.0, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e'

나는 오류 메시지를 이해 :

지금 오류를 얻고있다. 내 새 참조가 같은 이름을 가지고 있지만 이름이 전혀 없으므로 PublicKeyToken이 없습니다.

내가 이해할 수없는 것은 참조가 완전히 대체 될 때 이전 PublicKeyToken을 계속 찾고있는 이유입니다. 이 DLL은 GAC에 없습니다. 내 주요 프로젝트 .csproj 파일에서 참조 일치 PKT와 첫 이러한 DLL에서


. 나는 두 개의 어셈블리에 강력한 이름을 부여하고 이전 참조를 대체했습니다.

그런 다음 프로젝트를 정리하고 다시 작성한 후 새 강력한 이름이 csproj 파일에서 대체되었습니다. 그러나 Visual Studio는 오류 창에 표시된 것처럼 앞서 언급 한 프로젝트에서 여전히 a87e673e9ecb6e8e을 찾고 있습니다.


. 참조가 내 프로젝트와 동일한 타사 DLL을 참조하고 있으며 충돌하는 곳이 있습니다.

답변

1

솔루션의 일부가 여전히 강력한 이름의 버전에 대한 참조를 보유하고있는 것으로 보입니다.

.csproj (VB에서 작업하는 경우 .vbproj)를 열어서 해당 참조를 원하는 텍스트 편집기에서 찾을 수 있습니다.

<Reference Include="ComponentFactory.Krypton.Toolkit, Version=4.0.0.0, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e, processorArchitecture=MSIL"> 
</Reference> 

PublicKeyToken을 검색하는 것으로 충분합니다.

찾을 경우 강력한 이름의 버전을 계속 참조하는 프로젝트를 알 수 있습니다.

당신은 참조를 해결하기 위해 특정 경로에보고 링커를 지시

<Reference ... > 
    <HintPath>..\SomePath\ComponentFactory.Krypton.Toolkit.dll</HintPath> 
</Reference> 

같은 서브 노드를 볼 수 있습니다.

프로젝트 파일을 수동으로 편집 (먼저 백업)하거나 해당 지식을 사용하여 VS를 통해 참조를 업데이트 할 수 있습니다.

UPDATE

은 (는이 경우처럼) 문제가 다시 다른 크립톤 버전, 문제를 진단하는 좋은 도구를 참조하는 참조 된 DLL 함께하는 융합 밝혀지면 로그 뷰어

http://msdn.microsoft.com/en-us/library/e74a18c4.aspx

참고 퓨전 로그 뷰어 반드시 관리자 권한으로 실행됩니다. 그렇지 않은 경우 결과가 표시되지 않지만 달리 불만을 제기하지는 않습니다.

+0

고마워요. 제가 배워야 할 것이 었습니다. :) – Amicable

+0

처음에는이 파일들을 내 메인 프로젝트'.csproj' 파일에서 참조 했으므로 두 어셈블리에 강력한 이름을 지정하고 대체했습니다. 프로젝트를 지우고 다시 빌드하면 새로운 강력한 이름이'PublicKeyToken = a87e673e9ecb6e8e'을 대체하지만 Visual Studio는 앞서 언급 한 프로젝트에서 여전히'a87e673e9ecb6e8e'을 찾고 있습니다. – Amicable

+0

.csproj에'a87e673e9ecb6e8e'에 대한 언급이 없습니까? –