为什么类库(dll)也不生成lib文件?

时间:2016-01-18 22:08:15

标签: c# c++ .net dll

我正在尝试使用C ++(C ++ / Cli)项目创建和使用C#库(dll)。但是我的C#库并没有(或生成).lib文件。我被告知我需要一个lib文件,但我不确定如何制作它。

您可以查看代码here

我已将.dll文件包含在我的C ++项目中,但无法运行。

我收到以下错误:

  

未处理的类型' System.IO.FileNotFoundException'发生在未知模块中。附加信息:无法加载文件或程序集' ClassLibrary1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其中一个依赖项。系统找不到指定的文件。

我很擅长使用.dll和.lib文件。 此问题与我发现的其他问题here

有关

1 个答案:

答案 0 :(得分:3)

.NET程序集(在您的情况下是C#库)不是普通的dll,换句话说,它们不像其他标准(本机)Windows dll那样公开它们的API。相反,他们以其他.NET无法理解的方式公开他们的API。

有两种方法可以为C ++项目公开.NET API。

1-将C ++本机项目转换为托管C ++项目(即.NET C ++程序集),然后您可以将C#库作为.NET引用添加到C ++项目中,并将其称为托管库。

2-您可以将.NET库转换为COM +库,然后将其作为COM +依赖项从C ++中使用。

简而言之,通过.lib文件直接使用.NET API不是.NET的功能