把DLL文件打包进EXE的操作技巧
时间:2021-06-25 09:26:45|栏目:.NET代码|点击: 次
废话就不多说了,直接进入主题吧
用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文件)
用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文件)
栏 目:.NET代码
下一篇:ASP.NET笔记之 viewstate与cache的使用
本文标题:把DLL文件打包进EXE的操作技巧
本文地址:http://www.codeinn.net/misctech/147684.html






