码迷,mamicode.com
首页 > Windows程序 > 详细

C#将DLL嵌入到exe当中

时间:2017-03-15 11:34:35      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:初始化   get   space   代码   reference   属性   ret   调用   form   

动态加载程序集时有时引用的程序集会有依赖项,就会报各种异常;

在网上搜索了很久,终于找到了解决方法,不废话如下.
先把DLL放进资源库里,然后在dll属性里面的BuildAction选择Embedded Resource.
接着在References里面直接引用你要的dll.
接下来把下面的代码放在你要执行的类里面:

    System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)  
       {  
           string dllName = args.Name.Contains(",") ? args.Name.Substring(0, args.Name.IndexOf(,)) : args.Name.Replace(".dll", "");  
   
           dllName = dllName.Replace(".", "_");  
   
           if (dllName.EndsWith("_resources")) return null;  
   
           System.Resources.ResourceManager rm = new System.Resources.ResourceManager(GetType().Namespace + ".Properties.Resources", System.Reflection.Assembly.GetExecutingAssembly());  
   
           byte[] bytes = (byte[])rm.GetObject(dllName);  
   
           return System.Reflection.Assembly.Load(bytes);  
       }  
    public Form1()//看清楚这是窗体本来的初始化函数
       {
            //在InitializeComponent()之前调用

         AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
            InitializeComponent();
       }

 

资料原网址:http://blog.csdn.net/lin381825673/article/details/39122257

C#将DLL嵌入到exe当中

标签:初始化   get   space   代码   reference   属性   ret   调用   form   

原文地址:http://www.cnblogs.com/a849788087/p/6552977.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!