简单描述一下:比如我有三个C++的dll文件a.dll\b.dll\c.dll,其中a需要引用b和c的内容。我希望将这三个dll文件统一放在一个子文件夹Device1下,于是在Native.cs文件中这样引用a [DllImport("Device1\\a.dll")]
    这样子引用a没有问题,可是系统会提示找不到b或c文件,必须将b和c放在根目录下才行。
    项目中总会碰到使用第三方设备api的时候,当设备多的时候各种dll文件放在根目录下显得很杂乱,按目录归类就显得很有必要了,不知道各位朋友有没有这方面的经验,不吝赐教!

解决方案 »

  1.   

    把你的Device1在工程属性里添加到引用路径应该就可以找到了。
      

  2.   

    2楼的方法试过了,不行的。
    我是在C#中引用C++的dll文件的。
      

  3.   

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <probing privatePath="文件夹;文件夹2"/>
    </assemblyBinding>
    </runtime>
    </configuration>
    在配置文件 里上面的的试试
      

  4.   

    请问配置文件是否指的是“应用程序名.exe.config”?
    文件夹路径是从项目文件夹开始还是从Debug目录开始?
      

  5.   


    就是
    用程序名.exe.config
      

  6.   

    刚刚试了一下,是路径从Debug目录(也就是当前目录)开始的。
    不过该方法只适用于.Net的Dll,对C++的Dll无效。
      

  7.   

    怎么可能,同一目录下还找不到,a真是SB
    试试 调用a的方法前设置Environment.CurrentDirectory="Device1的绝对路径"