我用的是WINFORM
虽然VS有自带安装部署程序,但是我现在有一些原因需要自己DIY一个安装过程。
界面什么的都差不多了
但是就是不知道把若干文件杂合成一个exe的文件
请大家赐教

解决方案 »

  1.   

    你要diy到什么程度。InstallShield比自带的安装程序制作较灵活一点
      

  2.   

    Install Sheild 
    安装制作工具
      

  3.   

    也不可以用Windows Installer等工具
    因为安装界面是不能有的,要有,也是要我去自定义安装界面的。
    其实也算不上什么安装
    就是几个文件,要压缩在一起成一个exe
    之后点击exe,要把集成在里面的几个文件给解压缩到某个路径下。
      

  4.   

    不是的。
    不能有解压缩的过程界面的。
    你可以理解为,用户点击我的XX.EXE之后,我偷偷的从XX.EXE里解压缩出几个文件,莫名其妙的放在了硬盘某处。但是这个过程,界面什么的,都是由我来DIY控制的。或者你干脆理解为没有过程也行。完全没有过程,就种植了几个木马文件,就这么理解吧
      

  5.   

    一种简单的方法:
    单击菜单:项目->属性->资源,选择添加文件,现有文件,将需要的Test.Exe文件作为资源加进项目
    然后,在解决方案资源管理器里的Resources文件夹里,找到刚才作为资源身份加进来的Test.exe文件,在属性窗口选择基生成操作的属性为嵌入的资源,保存一下
    你再回头到到项目的Properties文件夹里,查看Resources.Designer.cs文件,里面有如下代码:
    internal static byte[] Test {
                get {
                    object obj = ResourceManager.GetObject("Test", resourceCulture);
                    return ((byte[])(obj));
                }
            }意思就是,项目将Test.exe文件作为byte[],而且是只读的属性,要访问,需要全完整的命名空间即可如MyWork.Properties.Resources.Test.Test就可以得到Test.exe文件的对应字节数组
    再将字节数组写成文件改好文件名即可:byte[] bytes = MyWork.Properties.Resources.Test;
                FileStream fs = new FileStream(@"e:\Test.exe", FileMode.Create);
                fs.Write(bytes, 0, bytes.Length);
                fs.Flush();
                fs.Close();
    找到E盘的Test.exe文件双击运行,一切正常
      

  6.   

    谢谢yangglemu
    1,我不是在做木马。
    2,请问我把一个文件添加进资源后,我怎么取出来呢?比如我添加进资源的,是一个MP3格式的文件,我怎么取出来并复制到某处呢?
    请指教
      

  7.   

                byte[] bytes = MyWork.Properties.Resources.Test;
                FileStream fs = new FileStream(@"e:\Test.exe", FileMode.Create);
                fs.Write(bytes, 0, bytes.Length);
                fs.Flush();
                fs.Close();
    已经写的很清楚了,嵌入的Exe文件是以byte[]字节数组的形式放在你的资源文件里,是只读的属性
    然后将此字节数组用FileStream类写在磁盘上即可
    我试过了,写出来的文件能够正常执行
      

  8.   

    使用winrar压缩程序为exe文件,再点击安装
      

  9.   


    谢谢你,你代码里的MyWork是什么意思啊?