fragilebanana16 发表于 2021-4-28 18:46

C# 添加和exe非同目录的引用问题

我在项目添加了app config item,本应该生成.exe.config文件,但是我生成的是.dll.config,然后我在app.config的probe path添加了exe同目录的mylib文件夹下的.dll文件,之后关闭了dll的“拷贝到本地”选项,然后报错filenotfound,但是如果打开“拷贝到本地”就没有问题,强内外搜了个遍,我甚至开始怀疑是不是社区版的vs不支持自定子目录保存dll了



目录结构,子目录下dll,设置app.config,copy local false报filenotfound

```
-hello.exe
- mylib
--say.dll
```
同级dll可以,但是会copy local
```
-hello.exe
-say.dll
```

nanaqilin 发表于 2021-4-28 19:15

调试的时候需要把引用的dll文件放在debug目录下,要是生成release版需要放在release目录下

fragilebanana16 发表于 2021-4-28 19:35

nanaqilin 发表于 2021-4-28 19:15
调试的时候需要把引用的dll文件放在debug目录下,要是生成release版需要放在release目录下

这是dll的路径ConsoleApp1\ConsoleApp1\bin\Debug\netcoreapp3.1\lib,这是exe的路径ConsoleApp1\ConsoleApp1\bin\Debug\netcoreapp3.1,有没有那种工具可以分析exe需要的程序集的路径的?

nanaqilin 发表于 2021-4-28 20:49

windows的不知道,我知道linux的

pedoc 发表于 2021-4-28 21:06

netcore貌似不在支持这个特性,这是netframework的

fragilebanana16 发表于 2021-4-28 21:31

pedoc 发表于 2021-4-28 21:06
netcore貌似不在支持这个特性,这是netframework的

属性配置成net5.0还是一样

pedoc 发表于 2021-4-29 08:58

fragilebanana16 发表于 2021-4-28 21:31
属性配置成net5.0还是一样

说是这么说,前不久我尝试转换一个net462的项目到net5desktop。其中对CefSharp也是存在这个情况,因为我重定向了依赖位置,其他都没啥问题,但是cef就是跑不起来。
这种问题你还是直接dllimport写相对目录或者是dynamicloader来完成这个需求吧
页: [1]
查看完整版本: C# 添加和exe非同目录的引用问题