Reference external DLL in .NET Core project
.NET Core works with dependencies only via Nuget. How do I import a .NET Core project to another .NET Core project in Visual Studio? and Referencing standard dlls from a .NET Core XUnit project related.
Using VS Code you can add references to Nuget package modifying project.json file. Look into "dependencies" section
An object that defines the package dependencies of the project, each key of this object is the name of a package and each value contains versioning information. For more information, see the Dependency resolution article on the NuGet documentation site.
Update: Starting from .NET Core 1.1, you need to modify .csproj file by adding
<PackageReference>
section. As example:<ItemGroup> <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" /> <PackageReference Include="MySql.Data" Version="6.9.9" /> </ItemGroup>
In C#
using
add namespace, not reference to assembly.
.Net Core 2 supports a direct reference to external .dll
(e.g. Net Standard libraries, classic .Net Framework libraries). You can do it through Visual Studio UI: right click on Dependencies->Add reference->Browse
and select your external .dll
.
Alternatively, you can edit .csproj
file:
<ItemGroup>
<Reference Include="MyAssembly">
<HintPath>path\to\MyAssembly.dll</HintPath>
</Reference>
</ItemGroup>
You can face with the following error:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly
then just remove \bin
folder an rebuild the project. It should fix the issue.
How it is possible
Net Core 2.0
supports .Net Standard 2.0
. Net Standard 2.0
provides a compatibility mode to connect .Net Core
(.Net Standard) and .NET Framework
. It can redirect references e.g. to System.Int32
from mscorlib.dll
(Net. Framework) to System.Runtime.dll
(Net. Core). But even if your net core app is successfully compiled with dependency on external dll
you may still have issues with compatibility during runtime if there is any API used by external library which .Net Standard doesnât have.