我有自己的.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
答案 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.0
。 Net 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 导航解决方案资源管理器中:
答案 3 :(得分:-1)
您可以使用以下代码添加dll:
[DllImport("MyLbraryFile.dll", SetLastError = true, CharSet = CharSet.Auto)]
您所要做的就是将dll放在同一目录中。