关于生成exe和dll到指定目标目录 找不到dll的问题

水目 2016-09-18 12:46:27
问题是这样的 最近看到过一个程序 是将dll生成到指定的目录 该目录有Config,Plugin,Lib等目录,有exe文件
如下目录结构
--App
----Config(文件夹)
----Plugin(文件夹)
----Lib(文件夹)
----Test.exe
注:Test.exe和Plugin.Lib下的dll文件都是其他项目中通过输出路径生成进去的,也就是App文件夹不在任何dll或者exe项目文件夹中
程序开始运行(Test.exe)后,会加载Plugin和Lib文件夹的dll运行

我也尝试这么去做,我exe项目中引用了Plugin下的dll文件(相对路径),编译没有问题,但是调试的时候找不到Plugin下的dll

尝试了 用privatepath加载
也尝试了 AppDomain的AssemblyResolve 事件去加载 都没成功

因为在还没开始运行main方法就报异常 找不到Plugin下的某个dll(当然这是在main方法中有用到Plugin下dll的内容时),所以没法调试具体哪里的错.




using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using My.Service; //Plugin下dll命名空间

class Program
{
static void Main(string[] args)
{
AppDomain app = AppDomain.CurrentDomain;
app.AssemblyResolve += App_AssemblyResolve;
//注释掉下面一行就不会报错 放开就会报找不到相应的dll文件
IContainer container = Container.Instance();



我的本意是想公用 Plugin,Lib,以及config文件夹,不太的程序只要生产相应的exe到Plugin同级目录下,运行exe即可,这样的话就不用每个项目都去创建以上的文件夹

请各位高手指导下 ,谢谢
...全文
116 点赞 收藏 回复
写回复
回复

还没有回复,快来抢沙发~

发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告