在点网核心中使用外部.dll

时间:2016-10-18 12:20:37

标签: c# .net-core

我有自己的.dll文件,我曾经在nodejs中使用Edge.js, 我现在尝试使用dot net core app,但是没有找到/不知道如何访问它,或者定义它。

有类似

的东西
"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

4 个答案:

答案 0 :(得分:35)

.Net Core 2 支持直接引用外部.dll(例如Net Standard库,经典.Net Framework库)。您可以通过Visual Studio UI执行此操作:右键单击Dependencies->Add reference->Browse并选择外部.dll

或者,您可以修改.csproj文件:

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

您可以面对以下错误:

  

未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集

然后只需删除\bin文件夹即可重建项目。它应该解决这个问题。

怎么可能

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

答案 1 :(得分:7)

  • .NET Core仅通过Nuget使用依赖项。 How do I import a .NET Core project to another .NET Core project in Visual Studio?Referencing standard dlls from a .NET Core XUnit project相关。

  • 使用VS Code,您可以添加对Nuget包修改project.json文件的引用。查看&#34;依赖关系&#34;节

      

    定义项目的包依赖关系的对象,此对象的每个键都是包的名称,每个值都包含版本控制信息。有关更多信息,请参阅NuGet文档站点上的依赖性解决方案文章。

    更新:从.NET Core 1.1开始,您需要通过添加<PackageReference>部分来修改.csproj文件。例如:

    <ItemGroup>
     <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
     <PackageReference Include="MySql.Data" Version="6.9.9" />
    </ItemGroup>
    
  • 在C#using添加命名空间,而不是对程序集的引用。

答案 2 :(得分:1)

在 Visual Studio 导航解决方案资源管理器中:

  1. 在引用中右键单击 -> 添加引用
  2. 在文件资源管理器中查找您的 dll,选择并点击接受按钮
  3. 再次编译。

VS Add dll to project

答案 3 :(得分:-1)

您可以使用以下代码添加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

相关问题