在.net Core项目中引用外部DLL

本文关键字:引用 外部 DLL 项目 net Core | 更新日期: 2023-09-27 18:13:36

我有我自己的。dll文件,我曾经在nodejs中使用Edge.js,我正试图使用它现在与。net核心应用程序,但发现没有地方/没有如何获得访问它,或定义它。

有没有类似

的东西
"files":
{
    "":"MyLibrary.dll"
}

using MyLibraryFile.dll

以便我可以使用其中的函数?

我的程序集文件结构是:MyLibraryFile.dll

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

using MyLbrary;using MyLbraryFile;都不起作用

我需要使用这个与MS Code编辑器,而不是与MS Studio。并且不希望使用NuGet package

在.net Core项目中引用外部DLL

。.Net Core 2支持直接引用外部.dll(例如。Net标准库,经典。Net框架库)。你可以通过Visual Studio UI:右键单击Dependencies->Add reference->Browse并选择外部.dll

也可以编辑.csproj文件:

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

您可能会遇到以下错误:

未处理异常:System.IO.FileNotFoundException: Could not load file or assembly

然后删除'bin文件夹并重建项目。应该可以解决这个问题。

这怎么可能

Net Core 2.0支持.Net Standard 2.0Net Standard 2.0提供了连接.Net Core的兼容模式。Net Standard)和.NET Framework。它可以重定向引用,例如从mscorlib.dll (Net)到System.Int32。框架)到System.Runtime.dll (Net。核心)。但是,即使您的。net core应用程序成功编译了依赖于外部dll,如果有任何外部库使用的。net标准没有的API,您可能仍然会在运行时遇到兼容性问题。

  • 。. NET Core只能通过Nuget来处理依赖关系。如何在Visual Studio中导入一个。net Core项目到另一个。net Core项目?从。net Core XUnit项目中引用标准dll。

  • 使用VS Code,你可以添加对Nuget包修改项目的引用。json文件。查看"dependencies"部分

    定义项目的包依赖关系的对象,该对象的每个键是一个包的名称,每个值包含版本信息。有关更多信息,请参阅NuGet文档站点上的依赖项解析文章。

    更新:从。net Core 1.1开始,你需要通过添加<PackageReference> section来修改。csproj文件。为例:

    <ItemGroup>
     <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
     <PackageReference Include="MySql.Data" Version="6.9.9" />
    </ItemGroup>
    
  • 在c# using中添加命名空间,不引用汇编


您可以使用以下代码添加dll:

[DllImport("MyLbraryFile.dll", SetLastError = true, CharSet = CharSet.Auto)]

你所要做的就是把dll放到同一个目录下。

https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute (v = vs.110) . aspx