2016-09-29 3 views
2

내 프로젝트에서 동일한 어셈블리 (structmap v2.6.4 대 v3.1.4.1)의 서로 다른 두 버전에 대한 참조가있는 두 개의 종속성이 있는데,이를 너겟으로 올바르게 해결할 수있는 방법이 있습니까?두 가지 종속성에 대한 두 개의 패키지 버전

+0

별도의 프로젝트에 두 버전이 모두 필요합니까, 아니면 모든 프로젝트에서 동일한 버전을 원하십니까? – confusedandamused

+0

동일한 프로젝트에 두 버전이 필요합니다. 프로젝트 A에서 두 개의 종속성 B와 C (구조 맵이 필요하지만 다른 버전이 필요합니다)가 필요합니다. – rad

+0

왜 다른 버전이 필요합니까? – Steven

답변

1

이 문제에 접근 할 수있는 한 가지 방법은 기본적으로 NuGet 패키지 Costura.Fody을 사용하는 것입니다.이 패키지는 프로젝트에서 사용할 수 있도록 모든 버전의 .dll을 기본적으로 묶습니다.

첫 번째 단계는 솔루션 탐색기에서`FodyWeavers.xml를 볼 수 있습니다 패키지를 설치 한 후 패키지를

를 설치하는 것입니다. 이것은이 당신이 할 수 있습니다 무엇

<?xml version="1.0" encoding="utf-8"?> 
<Weavers> 
<Costura/> 
</Weavers> 

가 대신 하나입니다 ... 포함하거나 특정 .DLL 년대를 제외 편집 할 수 있지만 때마다 나는 지금까지 난 그냥되는 끝 기본값을 유지를 사용했다 .dll은 솔루션 (또는 다른 곳)의 Libraries 폴더에 있으며, Costura.Fody는 솔루션에있는 모든 .dll을 하나의 큰 dll (XML이 작성된 프로젝트 내에서)로 묶을 것입니다.

이렇게하면 두 버전을 모두 참조 할 수 있습니다. 최근에 .dll의 두 가지 버전을 사용하는 프로젝트에서이 작업을 수행해야했기 때문입니다.

제대로 작동했는지 확인하려면 NuGet 패키지를 추가하기 전에 프로젝트 .dll의 크기를 볼 수 있습니다. 이후에는 번들로 된 .dll 파일을 모두 추가하기 위해 크기가 커졌습니다.

도움이 되었기를 바랍니다. 궁금한 점이 있으면 알려주세요.

관련 문제