Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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# C语言中的DLL依赖关系#_C#_Dll - Fatal编程技术网

C# C语言中的DLL依赖关系#

C# C语言中的DLL依赖关系#,c#,dll,C#,Dll,我从源项目生成了一个DLL。让我们调用issourceProject.dll 此项目依赖于first.dll,以及其他dll 当我运行sourceProject.dll时,我得到一个错误,first.dll“缺少一个或多个项目引用” 如果我理解正确,sourceProject.dll正在尝试使用first.dll中的类,但first.dll显然对它自己的dll之一的引用不正确。结果,first.dll再次构建(在sourceProject.dll的运行时),但构建不正确。最后,sourcePro

我从源项目生成了一个DLL。让我们调用issourceProject.dll

此项目依赖于first.dll,以及其他dll

当我运行sourceProject.dll时,我得到一个错误,first.dll“缺少一个或多个项目引用”

如果我理解正确,sourceProject.dll正在尝试使用first.dll中的类,但first.dll显然对它自己的dll之一的引用不正确。结果,first.dll再次构建(在sourceProject.dll的运行时),但构建不正确。最后,sourceProject.dll崩溃,因为first.dll坏了

这是真的吗

谢谢, 凯文

当我运行sourceProject.dll时


无法在.NET中运行DLL。您可以在应用程序中使用不同类型的程序集(控制台、WinForms、ASP.NET等)。因此,如果
sourceProject.dll
依赖于
first.dll
,则使用
sourceProject.dll
的应用程序需要在其工作文件夹中同时包含这两个程序集(桌面应用程序的当前文件夹和ASP.NET的bin文件夹)。

解决方案生成中不包括My be your first项目。通过右键单击解决方案文件来检查configuration manager


我想你要工作这是你必须先建立你的第一个项目(手册),然后再建立另一个。

是的。如果First.dll有错误,它将不会被输出。因此,当sourceProject.dll运行时,First.dll将重新生成?是。如果未构建或已更改,它将被重新编译,比如说,我创建了一个属于sourceProject.dll的新类。创建新类时,sourceProject.dll(引用first.dll)将重新构建first.dll?sourceProject.dll如何知道first.dll是否已更改?只有当它是项目引用时,它才会知道first.dll的更改。如果first.dll来自第三方(或程序集引用),则它已生成。在这种情况下,它(first.dll)不能有错误的引用,因为它已生成。假设sourceProject.dll依赖于:first.dll、second.dll和third.dll。然后sourceProject.dll需要包含first.dll、second.dll和third.dll所依赖的所有dll?@Kevin,这取决于。如果
sourceProject.dll
使用反射等运行时类型绑定,则不一定需要引用这些依赖项。当然,在最终的可运行应用程序中,您需要引用它们。如果您使用静态绑定,那么显然您需要引用first.dll、second.dll或sourceProject.dll,甚至不会编译。
   sourceProject.dll --> first.dll