왜 항상 응용 프로그램을 사용하고 최신 GAC 버전을 대신에 참조되는 버전입니까?

StackOverflow https://stackoverflow.com//questions/10700669

문제

컨텍스트

저는 2 가지 어셈블리의 버전에 설치된 GAC,1.0 버전과 2.0 버전.나는 응용 프로그램을 만들었는가를 참조하 1.0 로 특정 버전입니다.

문제

실행할 때 응용 프로그램,이드 버전 2.0 에는 반면 응용 프로그램이 특별히 참조 버전 1.0 입니다.

질문

왜 이런 일이 무엇입니까?할 수 있는 방법 강제 내용을 로드 버전을 컴파일되었습니까?

그것은 보이지 않는다는 것을 나에게는 아무것도 함께 할 수 바인딩으로 리디렉션 내용되지 않았더라도 알고 있 버전 2.0 의 경우 나는 그것을 참조"특정 버전"메타데이터에 true 로 설정되어 있습니다.

감사합니다.


편집:

어셈블리 내가 참조하는 것은 실제로는 오라클도 있습니다.DataAccess 에스 일반 패키지입니다.는 것으로 나타났 다른 어셈블리라는 정책이 있습니다.x.xxx.Oracle.DataAccess 곳에 게시된 GAC.


Edit2:

후으로 찾고 있습니다.DataAccess 정책을 발견 구성을 정의하는 바인딩을 리디렉션:

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"/>
            <bindingRedirect oldVersion="4.112.0.0-4.112.3.0" newVersion="4.112.3.0"/>
        </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

도 추가 반전한 바인딩을 리디렉션으로 내 응용 프로그램의 구성,정책에 GAC 인 우선 순위입니다.내가 찾는 MSDN 문서 치료 받고 제안을 무시하는 정책 구성:

<publisherPolicy apply="no" />

하지만 그것은 여전히 작동하지 않습니다...


Edit3:

나는 정책을 제거에서의 GAC 시 내 기계입니다.그것은 마지막으로 일했다.그것처럼 생각하지 않습 confortable 솔루션을 개발 하지만 전에 본 정책 하의 내용을 의미를 비활성화 정책은 옳은 일을 수도 있습니다.


최종 편집:

Igor 주셨습니다.모두 작업했던를 해결하기 위해 이러한 정책이었을 사용하여 publisherPolicy 설정에서 오른쪽 configruation 섹션:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"/>
      <publisherPolicy apply="no"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>
도움이 되었습니까?

해결책

후에 당신은 편집 질문이 이 정책에 파일에 영향을 미치는 어셈블리를 구속력이 있습니다.

의 경우 오라클라는 파일이 있어 정책입니다.X.Y.Oracle.DataAccess.config 내용과 이와 유사한:

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"/>
            <bindingRedirect oldVersion="10.1.0.000-10.2.0.100" newVersion="10.2.0.100"/>
        </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

정책에 의해 설치된 오라클 설치 관리자 및 리디렉션 Oracle.DataAccess.dll 최신 버전으로,Oracle 믿는 라이브러리 이전 버전과 호환됩니다.

편집:당신이 원하지 않는 경우 게시자가 적용될 정책 특정 어셈블리, 를 넣어 요소 요소:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
        <assemblyIdentity name="myAssembly" publicKeyToken="..."  culture="en-us" />
        <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
            <publisherPolicy apply="no" />
    </dependentAssembly>
</assemblyBinding>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top