C# 如何把DLL打包到EXE程序里面

yindaitao 2010-01-21 10:15:28
问题--比如现在有个程序,分2部分!一部分是DLL文件,一部分是EXE程序,在项目里面添加引用。DLL文件所在的目录似乎固定了,如果运行EXE程序找不到DLL文件就运行错误。。

想法--如何把DLL文件打包到EXE程序里面?结果是。。程序只有1个整体了。。只要运行了EXE程序就自动把DLL释放出来。。如何做呢?这样的话就可以有效的防止DLL被删除导致程序运行错误的问题。。

知道的大侠请给个详细的例子。。我是新手来滴。。理解能力也只有那么滴好- -!当然有教程就更好拉。。。
...全文
1798 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yindaitao 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 snria 的回复:]
C# codestaticvoid 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= Properties.Resources.IrisSkin2;//{GetData是命名空间} fs.Write(buffer,0, buffer.Length);
fs.Close();
}//*****************************s Application.Run(new Form1());
}
修改你项目资源下的Program.cs文件 替换Main()函数为上面的代码
[/Quote]

运行的时候提示引用不存在?
yindaitao 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lianshaohua 的回复:]
把dll以resource的形式打包,然后放到exe中就可以了,运行程序时,先释放资源,
[/Quote]

在什么位置写释放代码呢?
yindaitao 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 yindaitao 的回复:]
问题--比如现在有个程序,分2部分!一部分是DLL文件,一部分是EXE程序,在项目里面添加引用。DLL文件所在的目录似乎固定了,如果运行EXE程序找不到DLL文件就运行错误。。

想法--如何把DLL文件打包到EXE程序里面?结果是。。程序只有1个整体了。。只要运行了EXE程序就自动把DLL释放出来。。如何做呢?这样的话就可以有效的防止DLL被删除导致程序运行错误的问题。。

知道的大侠请给个详细的例子。。我是新手来滴。。理解能力也只有那么滴好- -!当然有教程就更好拉。。。
[/Quote]

在什么位置写释放代码呢?
snria 2010-01-21
  • 打赏
  • 举报
回复

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 = Properties.Resources.IrisSkin2;//{GetData是命名空间}
fs.Write(buffer, 0, buffer.Length);
fs.Close();
}
//*****************************s
Application.Run(new Form1());
}

修改你项目资源下的Program.cs文件 替换Main()函数为上面的代码
ck11926375 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lianshaohua 的回复:]
把dll以resource的形式打包,然后放到exe中就可以了,运行程序时,先释放资源,
[/Quote]
up
soulsteal 2010-01-21
  • 打赏
  • 举报
回复
在解决方案下建立一个安装项目,里头有得选的...把依赖项一起打包,安装的时候就会出现了
BeyondYV 2010-01-21
  • 打赏
  • 举报
回复
这个问题倒是没研究过,我是把DLL和EXE放在一个文件夹里,完了再添加引用,用时就一起拷着走。不过我这样冒失不对。
King0113 2010-01-21
  • 打赏
  • 举报
回复
打包项目的时候直接把所需要的dll给打包进去。放在程序根目录就可以了~
ztenv 2010-01-21
  • 打赏
  • 举报
回复
把dll以resource的形式打包,然后放到exe中就可以了,运行程序时,先释放资源,
goto_code 2010-01-21
  • 打赏
  • 举报
回复
加在资源文件中
bailei0000 2010-01-21
  • 打赏
  • 举报
回复
路过学习一下

110,538

社区成员

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

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

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