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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
一个.NETDLL问题_.net_Visual Studio_Dll_Dll Dependency - Fatal编程技术网

一个.NETDLL问题

一个.NETDLL问题,.net,visual-studio,dll,dll-dependency,.net,Visual Studio,Dll,Dll Dependency,我创建了一个C文件,并希望将其编译成DLL供将来使用。但是,此.cs文件依赖于另一个DLL。在.cs文件中的代码中,我正在执行以下操作: using anotherlib.dll; 当我试图将它编译成DLL时,编译器告诉我它找不到另一个缺少指令或程序集引用的otherlib.DLL 正确的方法是什么 我正在使用.NET 2.0。您需要右键单击解决方案资源管理器中的项目,然后单击添加引用 浏览其位置并将其添加为引用 这将提供更多信息。您需要添加对该特定DLL的引用 如果您使用的是Visual S

我创建了一个C文件,并希望将其编译成DLL供将来使用。但是,此.cs文件依赖于另一个DLL。在.cs文件中的代码中,我正在执行以下操作:

using anotherlib.dll;
当我试图将它编译成DLL时,编译器告诉我它找不到另一个缺少指令或程序集引用的otherlib.DLL

正确的方法是什么


我正在使用.NET 2.0。

您需要右键单击解决方案资源管理器中的项目,然后单击添加引用

浏览其位置并将其添加为引用


这将提供更多信息。

您需要添加对该特定DLL的引用

如果您使用的是Visual Studio,请尝试以下操作

在解决方案资源管理器中右键单击项目 选择添加引用 转到“浏览”选项卡 导航到磁盘上的DLL位置并选择“确定” 您可能需要将using语句添加到所需的命名空间中 如果您有DLL的源代码,那么使用项目引用比使用文件引用要好得多。只需将项目添加到同一解决方案中,重复上述步骤1-2,然后选择项目而不是浏览


如果未使用Visual Studio,则需要使用/r:标志将DLL的完全限定路径传递给编译器

不要在代码中使用,而是将其添加为程序集引用。在VisualStudio中,右键单击引用并添加DLL。然后在您的代码中使用DLL中内容的名称空间。

using语句用于导入名称空间。还必须添加程序集引用才能实际使用命名空间。如果从命令行使用csc.exe,则可以使用命令行参数/reference:filename.dll指定程序集引用。如果您使用的是Visual Studio,则可以右键单击项目并选择Add Reference…

您不能以这种方式在C中使用using语句

在C中,Using指的是名称空间。您可以通过在项目或编译器中引用另一个DLL来包括它。如果使用的是Visual Studio,请添加另一个otherlib.dll作为项目引用,然后执行以下操作:

using TheNamespaceFromAnotherLibDLL;

您需要使用/r引用它。如果您使用的是命令行编译器。这里有一个链接:

如果您使用的是VisualStudio,只需将其添加为项目中的引用即可

首先,您需要在项目中添加程序集引用。 在VisualStudio中,右键单击引用并添加DLL。 之后,您可以使用关键字访问代码中的DLL
还有一件事,你可以把你正在访问的DLL放在你的代码中,放在你的项目的bin文件夹中,你的项目DLL就是在这个文件夹中生成的。因为假设您将DLL提供给其他人,这样您就可以轻松地将bin文件夹提供给其他人。因此,他/她可以友好地使用您的DLL。由于依赖DLL,永远不会出现错误。

编译.cs文件时使用的环境或命令行文本是什么?是否尝试从命令行编译它?类似于csc/target:library/r:OtherAssembly.DLL Foo.cs,但我必须给出csc的完整路径,环境是带.net 2.0Ouch的WindowsXP,你比我晚了两秒,并且净胜10分。这就是我的FGITW理论-达哈,可能就是这样。VS中的项目编译和运行没有问题。但是当我通过系统提示编译成dll时,它就看不到引用了。@JaredPar:好的,如果我像你说的那样编译它,传递完整路径到它,这是否意味着如果这个dll在生产应用程序中使用,会寻找相同的路径?@Gnomiza,这里有两个问题。1编译DLL,该DLL需要完整路径,因为它存在于开发计算机上。2在生产应用程序中加载DLL。2混合使用操作系统和CLR规则来查找DLL,但两者都独立于1中使用的路径。最简单的解决方案是在同一目录中部署DLL。ok。这回答了我的问题。我只是想确保,如果我添加对位于我机器上的新dll的引用,如果我将引用的dll添加到productionie中与新烘焙的dll位于同一目录的bin文件夹中,则不会出现生产问题。所有这些都包含在其中,为了简单起见,我在示例中使用了以下内容: