Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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
Asp.net Visual Studio DllNotFoundException_Asp.net_Visual Studio 2010_C# 4.0 - Fatal编程技术网

Asp.net Visual Studio DllNotFoundException

Asp.net Visual Studio DllNotFoundException,asp.net,visual-studio-2010,c#-4.0,Asp.net,Visual Studio 2010,C# 4.0,稍后,在main方法中,我调用gvContext(),它抛出DllNotFoundException。在我的项目中,我进入了project->Properties并设置了引用路径,这样我就有了一个名为“resources”的文件夹,其中包含了包括gvc.dll在内的所有dll。我原以为这会奏效,但事实并非如此。我需要做什么 注意:我不能像通常那样使用Add引用,我意识到考虑到Graphviz不是C#库,这种行为是正常的。我对术语也有点模糊,为什么它被称为“非托管DLL”?这似乎是因为它不是从C代

稍后,在main方法中,我调用gvContext(),它抛出DllNotFoundException。在我的项目中,我进入了project->Properties并设置了引用路径,这样我就有了一个名为“resources”的文件夹,其中包含了包括gvc.dll在内的所有dll。我原以为这会奏效,但事实并非如此。我需要做什么

注意:我不能像通常那样使用Add引用,我意识到考虑到Graphviz不是C#库,这种行为是正常的。我对术语也有点模糊,为什么它被称为“非托管DLL”?这似乎是因为它不是从C代码编译而来的,但这是真的吗


如果这有助于澄清任何问题,我将继续关注。

问题是可执行文件找不到可执行文件的路径。在运行/bin文件夹并查看其工作情况后,尝试将其放入/bin文件夹。如果是这样,您的资源文件夹要么a)找不到,要么b)您的编译复制操作设置不正确


至于“什么是非托管的”,COM和本机组件的内存要么由库本身处理(总是本机的,COM在某些情况下可能由运行时处理),要么由.NET以外的其他程序处理。CLR无法管理内存使用情况,因为它们不是.NET组件。这就是为什么它们被称为“非托管”的原因。

这是有效的。我知道如何创建生成规则,以便将我需要的所有.dll复制到Debug/Release文件夹中。这是最好的办法吗?
    public const string LIB_GVC = "gvc.dll";
    public const string LIB_GRAPH = "graph.dll";
    public const int SUCCESS = 0;


    [DllImport(LIB_GVC)]
    public static extern IntPtr gvContext();