2009-06-25 5 views
2

집 프로그램에서 업데이트하기가 매우 쉽기 때문에 XCOPY 배포를 공유 네트워크 드라이브에 사용하여 여러 프로그램을 하나의 폴더에 배포했습니다. 공유 DLL NNC.dll이 있습니다. 자주 수정되지는 않지만 최근에 배포 했으므로 배포 할 때 중요한 변경 사항이므로 덮어 쓸 수 없습니다..NET DLL 버전 및 xcopy 배포

NNC 프로젝트에서 어셈블리 이름을 변경하여 NNC 1.1.dll이 네트워크의 같은 폴더에 복사되는 경우 새로 배포 된 프로그램은 새 DLL과 이전 DLL을 NNC.DLL로 가져옵니다. 이상적으로는 좋겠지 만 배포하고 싶지는 않을 것입니다. 그리고 모든 프로그램에서 아직 수정하지 않은 변경 사항이있는 오래된 프로그램을 최신 프로그램으로 가져오고 있습니다.

어셈블리의 이름이 강하며 일치하도록 버전 번호를 업데이트했습니다. 당신을 가정

답변

2

그것은 내 질문에 기대했던 방식대로 작동했습니다.

1

가 있습니다

  • ClassLibrary, 버전 = 1.0.0.0, 문화 = 중립, PublicKeyToken은 = f31de59ccff6c2c9

  • ClassLibrary, 버전 = 2.0.0.0, 문화 = 중립, PublicKeyToken = f31de59ccff6c2c9

없음의 코드/구성 유일한 해결책은 될 것이다에 :

,536
  • oldbin라는 새 폴더 91,363,210
    1. 복사 1.0.0.0는 아무튼 경우 (추가 (I 공유 DLL의 이전 버전을 사용하는 말은 옛날에 의해) 각 이전 응용 프로그램의 경우 2.0.0.0
    2. 과 1.0.0.0 교체 't은 다음 항목에) 이미 구성 파일 AppName.exe.config 존재 :

      <configuration> 
      <runtime> 
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly> 
      <assemblyIdentity name="ClassLibrary" publicKeyToken="f31de59ccff6c2c9" culture="neutral" /> 
      <codeBase version="1.0.0.0" href="oldbin\ClassLibrary.dll"/> 
      </dependentAssembly> 
      </assemblyBinding> 
      </runtime> 
      </configuration> 
      

    이 방법으로 새로운 응용 프로그램이 새 어셈블리를 사용하는 오래된 응용 프로그램 폴더 oldbin에서 이전 어셈블리를 얻을 것이다.