web-dev-qa-db-fra.com

Utilisation de .dll externe dans le noyau net

J'ai mon propre fichier .dll que j'avais l'habitude d'utiliser avec Edge.js dans nodejs, j'essaie de l'utiliser maintenant avec l'application dot net core, mais je n'ai trouvé aucun endroit où/comment y accéder, ni le définir. .

est-ce qu'il y a quelque chose comme

"files":
{
    "":"MyLibrary.dll"
}

ou comme

using MyLibraryFile.dll

afin que je puisse utiliser les fonctions qu'il contient?

ma structure de fichier d'assemblage est: MyLibraryFile.dll

namespace MyLibrary
{
    public class Inventory
    {
        public async Task<object> Invoke(object input)
    {
}

et non plus using MyLbrary; ni using MyLbraryFile;travaillé

J'ai besoin de l'utiliser avec l'éditeur de code MS, pas avec MS Studio. et ne veulent pas utiliser NuGet package

27
Hasan A Yousef

. Net Core 2 prend en charge une référence directe à un .dll Externe (par exemple, les bibliothèques Net Standard, les bibliothèques classiques .Net Framework). Vous pouvez le faire via l'interface utilisateur de Visual Studio: cliquez avec le bouton droit de la souris sur Dependencies->Add reference->Browse Et sélectionnez votre externe .dll.

Vous pouvez également éditer le fichier .csproj:

<ItemGroup>
  <Reference Include="MyAssembly">
    <HintPath>path\to\MyAssembly.dll</HintPath>
  </Reference>
</ItemGroup>

Vous pouvez faire face à l'erreur suivante:

Exception non gérée: System.IO.FileNotFoundException: impossible de charger le fichier ou l'assembly

puis supprimez simplement le dossier \bin et reconstruisez le projet. Cela devrait régler le problème.

Comment c'est possible

Net Core 2.0 Prend en charge .Net Standard 2.0. Net Standard 2.0 Fournit un mode de compatibilité pour connecter .Net Core (. Net Standard) et .NET Framework. Il peut rediriger des références, par exemple. à System.Int32 de mscorlib.dll (Net. Framework) à System.Runtime.dll (Net. Core). Toutefois, même si votre application Internet principale est correctement compilée avec une dépendance vis-à-vis de dll externe, vous pouvez toujours rencontrer des problèmes de compatibilité lors de l’exécution si une API utilisée par la bibliothèque externe n’est pas disponible .Net Standard.

41
AlbertK
  • .NET Core fonctionne avec des dépendances uniquement via Nuget. Comment importer un projet .NET Core dans un autre projet .NET Core dans Visual Studio? et Référencement de dll standard à partir d'un projet .NET Core XUnit lié.

  • En utilisant VS Code, vous pouvez ajouter des références au fichier Nuget en modifiant le fichier project.json . Rechercher dans la section "dépendances"

    Un objet qui définit les dépendances de package du projet, chaque clé de cet objet est le nom d'un package et chaque valeur contient des informations de contrôle de version. Pour plus d'informations, consultez l'article Résolution de dépendances sur le site de documentation de NuGet.

    Mise à jour: à partir de .NET Core 1.1, vous devez modifier le fichier .csproj en ajoutant <PackageReference> section. À titre d'exemple:

    <ItemGroup>
     <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
     <PackageReference Include="MySql.Data" Version="6.9.9" />
    </ItemGroup>
    
  • En C # using ajouter un espace de noms, pas référence à Assembly.


8
Set