Volevo utilizzare due diverse versioni della stessa libreria (OpenCVSharp 2.xe OpenCVSharp 3.x) Bene, ho scaricato questi due pacchetti entrambi nel progetto separato (chiamiamolo OCV2Wrapper e OCV3Wrapper) e fanno riferimento a entrambi i wrapper nel mio progetto. Ho dovuto rinominare le librerie da un pacchetto (2.x) e fare riferimento ad esse manualmente perché: Can we add 2 different versions of same package in NuGet. Ho letto degli alias esterni e ho usato un alias esterno in uno dei wrapper (2.x nel mio caso). Ma ho alcuni problemi principali:Utilizzo di due diverse versioni dello stesso pacchetto di nuget
- mie librerie rinominate non vengono copiati nella costruzione del progetto di lancio (quella che fanno riferimento entrambi i wrapper), ma è nella build del 2.x involucro
- E non funzionano perché ancora non è possibile trovare il tipo dal mio wrapper 2.x anche quando copio manualmente le mie librerie rinominate da 2.x wrapper.
Qual è l'approccio corretto per questo scenario in C#?
Voglio utilizzare entrambi i wrapper in soluzione perché la versione 2.x contiene algoritmi (SIFT e SURF) e 3.x versione contiene algoritmi (Kaze e AKaze). Posso vivere che entrambi i pacchetti sarebbero fuori da nuget ma preferisco che 3.x sia di nuget e la versione 2.x sia configurata manualmente.
Hai affermato di aver creato almeno tre progetti nella soluzione, corretto? La limitazione della domanda che hai postato è per un progetto.È possibile aggiungere diverse versioni di un pacchetto nuget a diversi progetti senza alcun problema. E fintanto che i tuoi due progetti gestiscono il codice del pacchetto nuget e fai riferimento ai due nel tuo terzo progetto, tutto andrebbe bene –
OK, capisco. MA quando lo faccio (uso due wrapper per due diverse librerie) quindi nella mia build di programma eseguibile non ho librerie da 2.x wrapper (che sono referenziate manualmente da browse e rinominate in modo da evitare conflitti di sovrascrittura del nome) – LightCZ
Confermato il comportamento, anche io non vedo Nuget ottenere automaticamente la libreria versione inferiore –