关于项目之间的调用

不告诉你嘎嘎 2016-01-09 09:28:12
两个项目,A,B.
A是框架,需要把B加载到A中.A是wpf的主程序,B是winform.两个互相独立.采用动态加载的形式把B加载到A的窗口中.
加载没问题,已经实现了.但是遇到一个新问题.在成功加载B之后,B所需的引用项依赖项配置文件等都加载到A的debug目录下了.我想能不能设个文件夹,在加载B的时候不会出现文件都到了debug中这个情况,这个应该咋处理?
...全文
146 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
至于其他的dll,你需要处理一下 => 至于其他的dll,你需要在B程序中处理一下
不告诉你嘎嘎 2016-01-11
  • 打赏
  • 举报
回复
引用 7 楼 xdashewan 的回复:
图片你可以放resources里,数据库文件等你得在B程序就分好次级目录,这样copy过来就不必放在根目录了
不能通过代码动态加载吗?
  • 打赏
  • 举报
回复
WPF可以HostForm http://www.codeproject.com/Tips/130414/Host-Windows-Form-Controls-in-WPF/ 配置文件没办法,.Net默认加载的配置文件都是与exe关联的,并且文件名还得一样,只是加了个.config后缀 除非B程序不用ConfigurationManager.AppSettings这样直接取,而是这样读取(static config) ExeConfigurationFileMap map = new ExeConfigurationFileMap(); map.ExeConfigFilename = @"D:\B.config"; config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None); config.Appsettings[xxx] 至于其他的dll,你需要处理一下 如果在A的子目录里,直接用AppDomain.CurrentDomain.SetupInformation.PrivateBinPath = 子目录名;(分号分隔) 否则处理一下AppDomain.CurrentDomain.AssemblyResolve事件,通过文件名逐个指定 http://www.tuicool.com/articles/mQVrUbJ
xdashewan 2016-01-11
  • 打赏
  • 举报
回复
图片你可以放resources里,数据库文件等你得在B程序就分好次级目录,这样copy过来就不必放在根目录了
不告诉你嘎嘎 2016-01-11
  • 打赏
  • 举报
回复
引用 5 楼 xdashewan 的回复:
你得copy过来,你A引用的B,其实就如同你A依赖B,那么B的依赖项实际上就视为A的依赖项
我用的是Assembly.LoadForm();这样会加载程序集,就是相关联的DLL都会加载进来.这样没什么问题,但是程序集中的图片,数据库文件等不会被加载.还会报找不到目标文件的错误. 你说的直接复制也是可行的,但是复制后都在根目录下才可以,这样程序就会显得很乱,尤其是会有重名的风险. 这么说你明白吗?
xdashewan 2016-01-11
  • 打赏
  • 举报
回复
你得copy过来,你A引用的B,其实就如同你A依赖B,那么B的依赖项实际上就视为A的依赖项
不告诉你嘎嘎 2016-01-11
  • 打赏
  • 举报
回复
可能还是我没说清楚.我用的是LoadForm();这样就是加载整个程序集,但是比如B中相关的图片啊,数据库文件啊.配置文件啊,都无法在指定目录中读取.都会到我A中的根目录下寻找.我应该怎么指定这个目录呢?
Justin-Liu 2016-01-09
  • 打赏
  • 举报
回复
B引用的dll取消copytolocal?
cheng2005 2016-01-09
  • 打赏
  • 举报
回复
在A的程序中手动加载程序集
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
不告诉你嘎嘎 2016-01-09
  • 打赏
  • 举报
回复
问题描述不对,我在重新说一下.就是我在A中通过反射动态加载了B的主程序.但是B主程序的依赖项怎么在指定文件夹中找到呢?

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧