문제

이에 따라 게시자 정책 파일을 GAC에 추가하려고합니다. 하지만 테스트 서버에서 파일을 추가하려고 할 때 문제가 있습니다.

"어셈블리의 매니페스트 '정책에 지정된 모듈 .3.0.assemblyname.dll'을 찾을 수 없습니다."

내 정책 파일은 다음과 같습니다.

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="*assemblyname*"
                          publicKeyToken="7a19eec6f55e2f84"
                          culture="neutral" />
        <bindingRedirect oldVersion="3.0.0.0"
                         newVersion="3.0.0.1"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

도와주세요!

감사


나는 기본값을 제외하고는 (기본값을 제외하고) 자체가없는 새로운 어셈블리로 처음부터 문제를 다시 만들었습니다. 모든 지역 개발 기계에서 잘 작동하지만 정책 파일을 GAC에 추가하는 것과 동일한 오류를 제공합니다. 서버에서!

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="TestAsm"
                          publicKeyToken="5f55456fdcc9b528"
                          culture="neutral" />
        <bindingRedirect oldVersion="3.0.0.0"
                         newVersion="3.0.0.1"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

다음 방식으로 연결됩니다

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\al.exe /link:PublisherPolicy.xml /out:policy.3.0.TestAsm.dll /keyfile:..\..\key.snk /version:3.0.0.0
pause

도와주세요!

도움이 되었습니까?

해결책

와우 - 알았어.

나는 이것이 의미하는 바에 정확히 더 많은 관심을 기울여야했다.

(MSDN) 방법 : 게시자 정책 만들기

중요 참고 : 원래 게시자 정책 파일이 어셈블리와 동일한 디렉토리에 있지 않으면 게시자 정책 어셈블리를 글로벌 어셈블리 캐시에 추가 할 수 없습니다.

그 요구 사항은 솔직히 말해서 등록하지 않았기 때문에 기괴합니다. GAC에 추가하려는 어셈블리에 컴파일 된 원래 정책 파일은 정책 어셈블리를 추가 할 때 정책 어셈블리와 동일한 폴더에 있어야합니다.

다른 팁

좋아 ... 그냥 기본 사항을 확인하고 싶어요 ....

당신은 분명히 GAC에 종속 어셈블리의 두 버전을 설치 했습니까?

Assembly : AssemblyVersion ()] 속성의 버전 번호가 올바른지 확인 했습니까?

그리고 당신은 [어셈블리 : 조립 전환()] 그리고 아니다 집회: 어셈블리 파일 전환("1.0.0.1")].

업데이트: 내 실수, 당신은 GAC에 최신 버전의 어셈블리 만 있으면됩니다. 나는 단지 여기서 그것을 시도했고 그것은 작동합니다. 나의 다른 생각은 공개 키 토큰이 동일하고 당신이 어셈블리 이름을 철자하지 않았는지 확인하는 것입니다.

또한 정책 파일을 생성 할 때 어셈블리 링커의 /버전 스위치를 사용하여 버전 번호를 3.0.0.0으로 명시 적으로 설정하십시오. 그리고 /플랫폼 스위치를 지정하지 마십시오. 예를 들어

al.exe /link:assembly.config /out:policy.3.0.assembly.dll 
         /keyfile:mykey.snk /version:3.0.0.0

Wise를 사용하여 GAC에 정책 어셈블리를 추가하려면 정책을 추가하는 것과 동일한 작업을 수행합니다. 따라서 정책 어셈블리를 현명한 "글로벌 어셈블리 캐시"에 추가하고 기계의 동일한 위치에 정책 파일 (.config)이있는 한 Wise는 자동으로 GAC에 추가됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top