우리 팀에서는 여러 팀이 WPF를 기반으로 동일한 제품의 다른 모듈을 개발하고 있습니다. 일부 모듈은 동일한 어셈블리를 참조합니다. Log4net, 자체 프레임 워크 등 ... 영향을 최소화하기 위해 각 팀이 다른 팀이 동일하게 수행하지 않고 해당 모듈에서 참조하는 어셈블리 버전을 업데이트 할 수있게하고 싶습니다. 프리즘이 가능합니까?프리즘을 사용하면 두 모듈이 동일한 어셈블리의 다른 버전을 참조 할 수 있습니까?
0
A
답변
3
이것은 가능하지만 프리즘과는 아무런 관련이 없습니다. 조사 할 내용은 binding redirects입니다.
바인딩 리디렉션을 사용하면 어셈블리의 버전 X에 대한 참조가 실제로 버전 Y를 사용해야 함을 지정할 수 있습니다. 이렇게하면 서로 다른 팀이 서로의 종속성을 개별적으로 업데이트 할 수 있지만 응용 프로그램을 배포 할 때는 바인딩 리디렉션은 모두 어셈블리 버전을 가리 킵니다.
많은 변경 사항이 도입되지 않은 어셈블리의 최신 버전으로 참조를 리디렉션하는 것이 일반적입니다. 변경 사항을 깨면 런타임에 예외가 발생할 수 있습니다.
<dependentAssembly>
<assemblyIdentity name="OurInHouseLibrary" publicKeyToken="32ab4ba45e0a69a1" culture="en-us" />
<bindingRedirect oldVersion="1.0.0.0-1.0.32.27762" newVersion="1.0.32.27762" />
</dependentAssembly>
이 버전 1.0.32.27762
을 통해 버전 1.0.0.0
조립 OurInHouseLibrary
에 대한 참조가 이제 버전 1.0.32.27762
에 조립 OurInHouseLibrary
참조하도록 지정 : 여기
내가 반대 제안하지만, 또 다른 옵션은 즉, 다른 어셈블리로 리디렉션 할 codeBase
요소를 사용하는 것입니다
<dependentAssembly>
<assemblyIdentity name="OurInHouseLibrary" publicKeyToken="32ab4ba45e0a69a1" culture="en-us" />
<codeBase version="1.0.0.0" href="v1.0\OurInHouseLibrary.dll" />
<codeBase version="1.1.0.0" href="v1.1\OurInHouseLibrary.dll" />
</dependentAssembly>
Here가 동일한 어셈블리의 여러 버전을로드하는 이유를 설명 Microsoft에서 기사입니다 나쁜 것. 주 이슈 중 하나는 Type
ID입니다. 다른 버전의 유형 대신 한 버전의 유형을 사용할 수 없으므로 (캐스트 할 수없는 경우 포함)
관련 문제
- 1. 동일한 어셈블리의 다른 버전 참조
- 2. MEF를 사용하여 동일한 어셈블리의 다른 버전을로드 할 수 있습니까?
- 3. 동일한 참조 어셈블리의 여러 버전
- 4. C# 동일한 어셈블리의 서로 다른 두 버전 참조
- 5. LINQPad에서 같은 어셈블리의 두 가지 다른 버전을 참조하십시오.
- 6. 동일한 어셈블리의 다른 버전로드
- 7. 다른 어셈블리의 인터페이스를 보호 할 수 있습니까?
- 8. 동일한 어셈블리의 다른 버전을 참조하는 DLL을 동적으로로드하는 방법은 무엇입니까?
- 9. 프리즘 - 여러 모듈이 동일한 서비스를 등록 할 경우 어떻게 되나요?
- 10. 참조 된 어셈블리의 ConfigurationManager
- 11. 동일한 .NET 어셈블리의 다른 버전 감지
- 12. 동일한 어셈블리의 다른 버전 사용
- 13. 사용하면 모듈이
- 14. 프리즘을 사용하여 WPF 응용 프로그램에서 뷰를 관리 할 수 있습니까?
- 15. 동일한 프로젝트의 두 GWT 모듈이 GAE의 동일한 데이터베이스에 액세스 할 수 있습니까?
- 16. 동일한 앱의 두 버전을 Playstore에 업로드 할 수 있나요?
- 17. 다른 스마트 포인터가 동일한 객체를 참조 할 수 있습니까?
- 18. 어떻게 서로 다른 어셈블리의 객체를 서로에 캐스트 할 수 있습니까?
- 19. Thread.Yield를 사용하면 CPU가 동일한 프로세스 또는 동일한 프로세서의 다른 스레드로 컨텍스트 전환을 수행 할 수 있습니까?
- 20. 필드가 두 개의 서로 다른 테이블을 참조 할 수 있습니까?
- 21. GAC와 다른 버전을 가리키는 참조 추가
- 22. WF에서 동일한 어셈블리의 여러 버전을 실행하려면 어셈블리 이름을 강하게 사용해야합니까?
- 23. 타사 어셈블리의 특정 버전을 적용하십시오.
- 24. 동일한 어셈블리의 여러 버전로드
- 25. 두 테이블이 서로 참조 할 수 있습니까?
- 26. WPF Prism을 사용하면 두 모듈이 같은 영역을 동시에 사용하지 못하게 할 수 있습니까?
- 27. 동일한 어셈블리의 여러 버전을 참조하여 생성 된 경고가 무시할 수 있습니까?
- 28. 프리즘을 사용하여 호스트에서 모듈에 영역을 삽입 할 수 있습니까?
- 29. 동일한 모듈이 왜 다르게 가져올 수 있습니까?
- 30. 두 포인터가 동일한 참조
바인딩 리디렉션과 간단한 시나리오에서 사용하는 방법에 대해 알고 있습니다. 그러나 다른 프리즘 모듈이 동일한 어셈블리의 다른 버전을 참조 할 때 작동하지 못했습니다 (응용 프로그램을 배포 한 후에도 다른 버전을 유지하려고합니다). – rlesias
이것이 가능하다고 생각 되더라도, 참조 된 어셈블리의 정적 메서드가 어딘가에 있으면 어떻게 될까요? 두 개의 정적 메서드 (버전마다 하나씩)가 필요하거나 두 버전 모두 동일한 정적 메서드를 사용하기를 기대 하시겠습니까? 정적 필드에 대해 같은 질문을하면, 엉망이 될 수 있습니다. – Lukazoid
나는 각 모듈이 설정 파일에 무엇이 설정되어 있는지에 따라 정확한 버전을 선택할 것으로 기대한다. 그것은 비록 작동하지 않는 것 같습니다. – rlesias