winform 资源文件和dll文件的问题

BXS_null 2018-04-24 01:19:20
我想单独运行winform的exe文件,但是里面引用了其他的dll文件,想在能把dll文件放到资源文件里面去引用吗? 还是说有其他办法让我既引用dll又能让exe文件单独运行的
...全文
460 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BXS_null 2018-04-24
  • 打赏
  • 举报
回复
引用 5 楼 weixin_40068689 的回复:
解决了 解决方法:在program.cs里面的的头部加入代码 AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; 然后在写一个方法 private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { string resourceName = "WindowsFormsApp2." + new AssemblyName(args.Name).Name + ".dll"; using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) { byte[] assemblyData = new byte[stream.Length]; stream.Read(assemblyData, 0, assemblyData.Length); return Assembly.Load(assemblyData); } } WindowsFormsApp2是程序名字 这样就解决了
哦 对了,还需要把引用的dll文件添加到根目录里面并且将属性里面设置为嵌入文件
BXS_null 2018-04-24
  • 打赏
  • 举报
回复
解决了 解决方法:在program.cs里面的的头部加入代码 AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; 然后在写一个方法 private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { string resourceName = "WindowsFormsApp2." + new AssemblyName(args.Name).Name + ".dll"; using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) { byte[] assemblyData = new byte[stream.Length]; stream.Read(assemblyData, 0, assemblyData.Length); return Assembly.Load(assemblyData); } } WindowsFormsApp2是程序名字 这样就解决了
BXS_null 2018-04-24
  • 打赏
  • 举报
回复
引用 3 楼 u012315837 的回复:
资源里面可以放文件啊,运行时写入到磁盘即可。但是你要解决先有鸡还是先有蛋的问题,因为没有dll你的程序运行不了。除非你的主程序也是释放出来的,要么所有dll都是动态加载的。
。额怎么写入磁盘。。我这边应该是先有鸡吧,我是点击一个按钮的时候才会运行那个dll里面的方法,不点击可以正常运行
58662877 2018-04-24
  • 打赏
  • 举报
回复
资源里面可以放文件啊,运行时写入到磁盘即可。但是你要解决先有鸡还是先有蛋的问题,因为没有dll你的程序运行不了。除非你的主程序也是释放出来的,要么所有dll都是动态加载的。
BXS_null 2018-04-24
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
既然 exe 的运行需要某个 dll,那么这个 dll 就是不可缺少的 只要 exe 能找到这个 dll,那么 dll 放在哪里都无所谓,关键是:找得到 你可以和 exe 放在一起,也可以放到操作系统搜索路径(由环境变量 PATH 指示)中,也可以你自己指定一个目录、也可以包含在 exe 文件中....
怎么让他包含在exe之中
xuzuning 2018-04-24
  • 打赏
  • 举报
回复
既然 exe 的运行需要某个 dll,那么这个 dll 就是不可缺少的 只要 exe 能找到这个 dll,那么 dll 放在哪里都无所谓,关键是:找得到 你可以和 exe 放在一起,也可以放到操作系统搜索路径(由环境变量 PATH 指示)中,也可以你自己指定一个目录、也可以包含在 exe 文件中....

110,534

社区成员

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

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

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