Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用单独DLL的类库中缺少DLL_C#_.net_Dll - Fatal编程技术网

C# 使用单独DLL的类库中缺少DLL

C# 使用单独DLL的类库中缺少DLL,c#,.net,dll,C#,.net,Dll,在C.NET4.0中,我正在创建一个类库/DLL,我计划在许多其他项目中重用它。这个类库本身将使用几个DLL。例如,我正在创建的类库可能引用以下几个DLL: ServerConnectorLibrary references: Lib1.dll Lib2.dll Lib3.dll 构建此文件时,我会将ServerConnectorLibrary.dll作为bin\Debug文件夹中的输出 我现在想要的是在其他项目中使用这个ServerConnectorLibrary.dll。但是,当我将DLL

在C.NET4.0中,我正在创建一个类库/DLL,我计划在许多其他项目中重用它。这个类库本身将使用几个DLL。例如,我正在创建的类库可能引用以下几个DLL:

ServerConnectorLibrary references:
Lib1.dll
Lib2.dll
Lib3.dll
构建此文件时,我会将ServerConnectorLibrary.dll作为bin\Debug文件夹中的输出

我现在想要的是在其他项目中使用这个ServerConnectorLibrary.dll。但是,当我将DLL添加到我的新项目并运行时,会出现以下错误:

FileNotFoundException: Could not load file or assembly "Lib1.dll".

如果我将Lib1.dll添加到新项目的bin\Debug文件夹中,则问题不会得到解决。

您可以将所有依赖项合并到一个程序集中。下面是一个关于CodeProject的老例子

这里还有一个StackOverflow线程


否则,请确保将每个依赖项的属性设置为“复制本地”,然后将这些依赖项与库一起包含。这些都是DLL,所以它们在运行时动态链接,不同于可能静态链接的旧C++和C库。

如果ServCelpSerialRabal.dll引用LIb1.dll,则这是正常的,那么它依赖于它,因此如果您引用Server CelpDealRealAR.DLL,则还需要引用LIb1.dll和所有其他依赖项。将依赖DLL复制到Bin文件夹不是一个好主意,请正确引用它。谢谢您的建议。在VisualStudio中,我对DLL的引用是一个绝对文件路径。当我将应用程序发送到另一台计算机时,该计算机显然没有DLL。我该如何引用它,以便部署应用程序和DLL?只要所有引用的DLL都已将CopyLocal设置为true(通常为默认值),则在编译应用程序时,它们将被复制到Bin目录。它们在任何给定计算机上的位置实际上与部署应用程序无关,但它们是项目文件中的相对路径,只是在“属性”窗口中显示为绝对路径。使用Fuslogvw.exe解决程序集解析问题。