如果缺少dll文件,如何在C#项目中使用interop.x.dll文件?

时间:2020-01-04 17:30:48

标签: c# visual-studio msbuild

我是C#编程的菜鸟。 我目前正在尝试在Visual Studio中运行C#项目。在构建项目时,找不到特定的程序集或目录文件。 在.csproj文件中,该库的com目录存在:-

float

当我查看文件夹的文件夹时,得到文件Interop.SREYELINKLib.dll。 但是,.dll文件不在项目中。 如何解决此编译错误?

1 个答案:

答案 0 :(得分:1)

当我查看文件夹的bin时,我得到了文件 Interop.SREYELINKLib.dll。但是,.dll文件不存在于 项目。如何解决此编译错误?

SREYELINKLib的意思是Interop.SREYELINKLib.dll。它们代表相同的文件。 Interop.SREYELINKLib.dll是它的全名,如下图所示。因此,遇到这种情况时,这不是错误,这很正常。

enter image description here

在构建项目时,我正在获得特定的装配体或 找不到目录文件。在.csproj文件中, 该库存在:-

首先,我认为您遇到了构建错误,即系统找不到特定的com引用。如果是这样:

自Net 4.0以来,Microsoft已将EmbedInteropTypes添加到VS中。并且EmbedInteropTypes=true意味着在DLL中使用的直接嵌入到项目输出文件中的代码等效于将com引用直接嵌入到project.dll或project.exe中,因此您不必输出com引用,从而优化项目。

但是在某些特殊情况下,由于某些原因嵌入互操作类型时,互操作层会失败。您的代码无法访问,只能手动添加(EmbedInteropTypes=False)。您可以看到this

因此,请单击SREYELINKLib中的Solution Explorer,然后将Embed Interop Types设置为False。另外,请不要忘记确保将Copy Local设置为True。要检查它,请打开xxx.csproj文件,并确保已添加 <EmbedInteropTypes>False</EmbedInteropTypes>

此外,请在您的项目中使用Interop.SREYELINKLib.dll而非SREYELINKLib.dll

希望它可以为您提供帮助。

相关问题