2009-06-24 3 views
0

9.3 버전이 설치된 컴퓨터에서 공급 업체의 라이브러리 버전 9.1에 대해 빌드 된 응용 프로그램의 문제를 해결하려고합니다. 공급 업체는 모든 버전을 9.0에서 9.3 dll로 리디렉션하는 게시자 정책 파일을 제공했으며 GAC에 설치되었습니다..NET 어셈블리 바인딩 실패 (리디렉션이있는 다른 버전), 이상한!

버전 9.2에 맞게 작성된 최신 버전의 응용 프로그램에서는 게시자 정책 파일이 발견되고 모든 것이 올바르게 작동합니다. 9.1 연결 버전에서는 게시자 정책 파일이 fuslogvw 결과에서 전혀 언급되지 않습니다. 여기

이 fuslogvw에서 성공적인 부하의 예입니다

LOG: This bind starts in default load context. 
LOG: Using application configuration file: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe.Config 
LOG: Using machine configuration file from c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config. 
LOG: Post-policy reference: ESRI.ArcGIS.System, Version=9.1.0.722, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86 
LOG: GAC Lookup was unsuccessful. 
LOG: Attempting download of new URL file:///C:/Program Files/NatureServe/Vista/ESRI.ArcGIS.System.DLL. 
LOG: Attempting download of new URL file:///C:/Program Files/NatureServe/Vista/ESRI.ArcGIS.System/ESRI.ArcGIS.System.DLL. 
LOG: Attempting download of new URL file:///C:/Program Files/NatureServe/Vista/ESRI.ArcGIS.System.EXE. 
LOG: Attempting download of new URL file:///C:/Program Files/NatureServe/Vista/ESRI.ArcGIS.System/ESRI.ArcGIS.System.EXE. 
LOG: All probing URLs attempted and failed. 

주 : 표시 이름, 문화, 공개 키 토큰이 동일

LOG: This bind starts in default load context. 
LOG: Using application configuration file: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe.Config 
LOG: Using machine configuration file from c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config. 
LOG: Publisher policy file is found at C:\WINDOWS\assembly\GAC_MSIL\policy.9.2.ESRI.ArcGIS.System\9.3.0.1770__8fc3cc631e44ad86\ESRI.ArcGIS.System.config. 
LOG: Publisher policy file redirect is found: 9.2.0.1324 redirected to 9.3.0.1770. 
LOG: ProcessorArchitecture is locked to MSIL. 
LOG: Post-policy reference: ESRI.ArcGIS.System, Version=9.3.0.1770, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=MSIL 
LOG: Found assembly by looking in the GAC. 
LOG: Binding succeeds. Returns assembly from C:\WINDOWS\assembly\GAC_MSIL\ESRI.ArcGIS.System\9.3.0.1770__8fc3cc631e44ad86\ESRI.ArcGIS.System.dll. 
LOG: Assembly is loaded in default load context. 

그리고, 여기에 실패 .

그래서 (버전 # 외에) 다른 점은 무엇입니까? .NET이 정책 파일을 찾는 이유는 무엇입니까? 이것을 극복하기 위해 우리가해야 할 검은 마술은 무엇입니까 (9.1 플랫폼에 대한 우리의지지를 떨어 뜨릴 수있을 때까지)?

답변

0

아, 인터넷에 문제를 게시의 마법 :

그것은 정책 파일의 경로처럼 보이는 난 단지 추측 할 수있어 폴더 이름의 일환으로 '9.2'버전 문자열을 포함 이는 공급 업체의 9.2 버전 라이브러리에 대한 요청에 대해서만 해결 될 것임을 의미합니다.

그래서 정책 파일 자체가 버전 9.0 이후로 리디렉션되기 때문에 불완전하게 설치되어있는 것 같습니다.

here과 같이 응용 프로그램 구성 파일에 리디렉션을 포함 할 수 있습니다. 공급 업체의 소프트웨어 버전이 조건에 맞아야합니다.

나는 해결책으로 그것에 대해 너무 감탄하지 않는다는 것을 인정한다 ...

관련 문제