Je voulais utiliser deux versions différentes de la même bibliothèque (OpenCVSharp 2.x et OpenCVSharp 3.x) Eh bien, j'ai téléchargé ces deux packages à la fois dans le projet séparé (appelons-le OCV2Wrapper et OCV3Wrapper) et référence les deux wrappers dans mon projet. J'ai dû renommer les bibliothèques d'un package (2.x) et les référencer manuellement parce que: Peut-on ajouter 2 versions différentes du même package dans NuGet . J'ai lu des alias externes et j'ai utilisé un alias externe dans l'un des wrappers (2.x dans mon cas). Mais j'ai des problèmes majeurs:
Quelle est la bonne approche pour ce scénario en C #?
Je veux utiliser les deux wrappers en solution car la version 2.x contient des algorithmes (SIFT et SURF) et la version 3.x contient des algorithmes (Kaze et AKaze). Je peux vivre que les deux paquets seraient hors de nuget mais je préfère que 3.x soit de nuget et que la version 2.x soit configurée manuellement.
Comme déjà indiqué, il n'y a rien de mal à référencer 2 versions différentes d'un package de nugget, tant que c'est dans différents projets Visual Studio que ces références sont faites.
Mais c'est aussi là que se termine la partie facile, mais je pense qu'il reste quelques options. Selon vos besoins, je vois les options suivantes.
J'espère que cela vous aidera un peu, afin que vous n'ayez pas à modifier le code source tiers la prochaine fois.
OK donc, je résous ce problème en téléchargeant le code source entier pour la version wrapper 2.X. Renommé son espace de noms en ABCDEF2 où ABCDEF était l'espace de noms d'origine. Construisez mon propre paquet de nuget avec ma propre clé et ... publiez-le sur notre serveur de nuget privé. C'est une telle solution boiteuse mais il n'y a pas d'autre moyen que de télécharger manuellement les packages d'origine et de le référencer directement avec un nom de fichier différent, etc. et vous perdez les avantages du nuget.