web-dev-qa-db-fra.com

Packages NuGet dans Unity

Je souhaite utiliser des packages NuGet dans Unity. J'ai réalisé qu'Unity trouve les DLL téléchargées selon cet article ( https://www.what-could-possably-go-wrong.com/unity-and-nuget/ ). Le fichier nuget.config peut être configuré pour télécharger les packages dans le dossier Plugins du dossier Assets. Le problème est que NuGet télécharge plusieurs versions de chaque DLL (par exemple net46, netcore50, netstandard21, etc.) et Unity n'aime pas plusieurs DLL portant le même nom. Je sais que je pourrais simplement mettre le DLL à l'intérieur du dossier Plugins à la main, mais malheureusement ce n'est pas une solution qui me plairait.

Avez-vous une idée de comment contourner ce problème? Est-il possible de configurer NuGet pour n'en télécharger qu'un DLL pour chaque dépendance?

8
BlazeOHTion

Vous ne voulez vraiment pas suivre le chemin de la configuration d'Unity pour qu'il fonctionne automatiquement avec Nuget. Cet article est assez ancien. Avec Unity 2018, vous obtenez un niveau de compatibilité .net standard 2.0, qui devrait être parfait pour les packages Nuget. Téléchargez simplement le package à l'aide d'un projet VS distinct (comme mentionné dans l'article), puis prenez la version netstandard20 du DLL et placez-le dans votre projet Unity.

1
Arshia001

Vous devez configurer le nuget téléchargé/se trouve dans le dossier packages/plugins manuellement. Nuget ne sait pas quel plugin peut utiliser l'unité et comment. Vous pouvez définir leurs paramètres dans l'inspecteur: éditeur, autonome ... x86, x64 ...

0
Viktor Kadza Jr.

Il y a NuGet2Unity qui permet de convertir n'importe quel package Nuget en un '.unitypackage'. Je l'ai utilisé pour convertir "SpecFlow" et j'ai pu importer le package Unity résultant. Découvrez leur Exemples .

Cela a fonctionné pour moi avec:

dotnet.exe run -n specflow --version 3.0.225

Notez que vous devrez peut-être ignorer les dépendances fournies par le NugetPackage qui sont déjà fournies par l'unité elle-même.

0
Roni