怎样做一个单一应用程序,就是整个程序只有一个exe文件。(运行库.net framework不考虑),两个问题:
1:应用程序引用了很多动态链接库,应用程序运行时需要动态链接库支持,有没有办法将动态链接库中的元数据提取出来,放在EXE中,就像C++中的静态库lib那样使用。这样我就可以做成一个单一应用程序。
2:如何将资源文件也加到exe文件中,如图片,xml文件(app.config)等。csc.exe 的命令开关 /r /res是不是就是我想解决问题的方法,如何在IDE中使用,请高手指教。

解决方案 »

  1.   

    友情SF ,只有写程序时把DLL放进程序
      

  2.   

    全部当成资源包到程序里面去,不过dll就需要用反射调用了,效率不高。
      

  3.   

    如果这样用的话 DLL已经失去了动态连接库的本意了 你还不如将dll提供的功能自己写代码实现呢
      

  4.   

    zhouhongyun(最终幻想) 
    全部当成资源包到程序里面去,不过dll就需要用反射调用了,效率不高。回:怎么反射调用,性能相差远吗?
    -----------------------------
    jiatong1981(末日之痕) 
    如果这样用的话 DLL已经失去了动态连接库的本意了 你还不如将dll提供的功能自己写代码实现呢
    回:dll源吗太多太复杂,把代码加到主调程序工作量太大了。
      

  5.   

    lizhizhe2000(武安侯)
    当作资源 运行的时候释放出来回:不想做成安装包,这个客户强烈要求的。客户就是想要一个单一的应用程序,从网上下载下来,不用安装,直接就能用,还可以自动升级(smart client)。我现在已实现了自动升级的功能,但因此也用了很多框架(application update block 2.0,.net framework1.1的)。所以就出现了我所提出来的问题。
    或者有没有办法实现单一的smart client应用程序。大家不要怪我另提问题,解决了我另开贴给分。
      

  6.   

    1. 好多混淆器都支持这个功能,比如 Dotfuscator Community Edition, MaxToCode最新版号称也支持(我还没试过)2.在 IDE中将资源文件加入工程,生成操作选"嵌入的资源"即可
      

  7.   

    long long ago 我也有这样的想法
      

  8.   

    用webservice判断版本,将升级文件下载到本地,用bat文件将当前正在运行的exe删除,替换成新的文件,利用的就是bat文件能删除自己的功能。