把DLL文件打包进EXE的技巧

 

用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文件)

本文来自德仔工作室 http://www.dezai.cn/Channel/Web/ArticleShow.aspx?AI=58892

 

posted @ 2009-06-25 16:41  iDEAAM  阅读(657)  评论(0编辑  收藏  举报