把DLL文件打包进EXE的技巧(C#)

 

废话就不多说了,直接进入主题吧

用VS2005建立一个windows项目,取名test

引用dll文件

编写代码,正常引用dll里的类库,

同时在test项目添加资源文件(该文件就是刚才引用的dll文件)

VS2005会自动生成引用代码,我这里引用的是IrisSkin2.dll

internal static byte[] IrisSkin2 {
            
get {
                
object obj = ResourceManager.GetObject("IrisSkin2", resourceCulture);
                
return ((byte[])(obj));
            }

        }

然后在Main(program.cs)函数里加入代码

 

static void Main()
        
{
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(
false);

            
string path = Application.StartupPath + "\";
            
string dllFileName = "IrisSkin2.dll";
            
//******加载IrisSkin2.dll******
            if (!File.Exists(path + dllFileName))   //文件不存在
            {
                FileStream fs 
= new FileStream(path + dllFileName, FileMode.CreateNew, FileAccess.Write);
                
byte[] buffer = GetData.Properties.Resources.IrisSkin2;//{GetData是命名空间}
                fs.Write(buffer, 
0, buffer.Length);
                fs.Close();
            }

            
//*****************************
            
            Application.Run(
new GDForm());
        }

编译test项目,生成exe文件,

然后删除引用的dll文件(注意是先编译,再删除)

复制该exe文件就可以在别的地方运行了(不用dll,运行EXE会自动生成DLL文件)

posted on 2009-05-17 22:31  关寒融冰  阅读(6226)  评论(4编辑  收藏  举报

鲁ICP备07018066号-1