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

Has*_*sef 32 c# .net-core

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

是否有类似的东西

"files":
{
    "":"MyLibrary.dll"
}
Run Code Online (Sandbox Code Playgroud)

或者喜欢

using MyLibraryFile.dll
Run Code Online (Sandbox Code Playgroud)

这样我可以使用它中的功能?

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

namespace MyLibrary
{
    public class Inventory
    {
        public async Task<object> Invoke(object input)
    {
}
Run Code Online (Sandbox Code Playgroud)

既不工作using MyLbrary;也不 using MyLbraryFile;工作

我需要在MS Code编辑器中使用它,而不是在MS Studio中使用它.并且不想使用NuGet package

Alb*_*rtK 48

.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>
Run Code Online (Sandbox Code Playgroud)

您可以面对以下错误:

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

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

怎么可能

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

  • 愚蠢的是,它现在位于“添加项目引用”-&gt;浏览下 (5认同)
  • 添加了无法加载的引用。按照建议重建项目对我有用 (4认同)
  • 我在 Visual Studio 2019 中有一个 .NET Core 3.1 项目,并且没有“依赖项 &gt; 添加引用 &gt; 浏览”选项。我看到的只是“添加项目引用”、“添加共享项目引用”和“添加 COM 引用”。 (4认同)

Set*_*Set 9

  • .NET Core仅通过Nuget与依赖项一起使用. 如何将.NET Core项目导入Visual Studio中的另一个.NET Core项目?引用与.NET Core XUnit项目相关的标准dll.

  • 使用VS Code,您可以添加对Nuget包修改project.json文件的引用.查看"依赖项"部分

    定义项目的包依赖关系的对象,此对象的每个键都是包的名称,每个值都包含版本控制信息.有关更多信息,请参阅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>
    
    Run Code Online (Sandbox Code Playgroud)
  • 在C#中using添加命名空间,而不是对程序集的引用.


  • 真正不方便的是,您可以在C#项目中执行“添加引用”,并且只指向您自己创建的.NET Core程序集dll,它将对其进行很好的引用,而intellisense将对此起作用。但是,该应用程序将无法运行,因为引用的dll无法加载(它不在TRUSTED_PLATFORM_ASSEMBLIES中,如果您将环境变量COREHOST_TRACE设置为= 1,则将看到该应用程序)。因此,您花了整整一个下午来弄清楚VS Add Reference为何不起作用。谢谢女士。 (3认同)