2009-09-08 2 views
1

이 쿼리를 다시 게시합니다 .Soory,하지만 이미 묻는 쿼리에 대한 의문을 제기하는 방법을 모릅니다.특정 위치에서 참조로 COM dll을 추가하십시오.

내 프로젝트에서 COM DLL을 참조로 사용하고 있습니다. 그 dll이 컴퓨터의 어느 위치에서든 참조되기를 바랍니다.

<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  <dependentAssembly>    <assemblyIdentity     name="MyAssembly"     culture=""     publicKeyToken="8968ee41e78ce97a" />    <codeBase     version="1.0.0.0"     href="file://c:/some_path/myassembly.dll" />  </dependentAssembly> </assemblyBinding></runtime> 

위의 코드를 App.config 파일에 추가했습니다. 이전에 서명되지 않은 Interop.Microsoft.Office.Interop.Excel.dll에 서명 한 후 PublicKeytoken에 적절한 값을 부여했습니다.

나는 잘 동작한다고 생각합니다. 내가 응용 프로그램을 실행할 때

하지만 EXE 파일은 DLL이 같은 폴더 & 너무

서명되지 않은 버전에서 발표 할 예정이다.

내 코드에 누락 된 것이 있으면 누구든지 나를 제안 할 수 있습니까?

감사합니다, 미트

추신 : 코딩 동안, 나는 DLL의 서명되지 않은 버전의 참조를 추가했다. C에서 : \ 프로그램 파일이 ... \ 정확한 상황을 재현하지 않고 이것은 단지 추측

답변

0

[이미 기존의 DLL, 마이크로 소프트 제공] ... 그것은 당신이에서

<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/> 

누락이 나타납니다 모든 내가 본 모든 예제뿐만 아니라 위의 < assemblyIdentity ...> 태그 뒤에 항상 < bindingRedirect ...>가옵니다. 또한 다음과 같은 범위로 원본 버전을 지정할 수도 있습니다.

<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="2.0.0.0"/> 
0

나는 해결책이 있다고 생각합니다. 내 질문에 언급했듯이, 나는 dll의 이전 [unsigned] 버전에 대한 참조를 추가했다. 난 그 & 서명 된 dll의 참조를 추가 제거, App.config [내 질문에 언급 된]로 변경했다.

관련 문제