C_Sharp 板


LINE

※ 引述《scdog (嘿￿ﰠ￾N￾N￾ ￾  )》之铭言: : 请问一下我把complier後的exe档拿去一台没装.net的电脑上执行 : 他却说需安装.net framework....并无法初始话程式 : 我的exe file是在debug目录下直接拿出来的 : 请问该如何解决,或run exe file需要packageㄇ??thx : ※ 编辑: scdog 来自: 61.218.111.98 (01/13 09:54) : 推 libery:要执行一定得装.net framework 59.104.238.148 01/13 不知道这个对您有没有帮助 :] ============================ 大内高手专栏: 工具介绍:Thinstall 作者:蔡学镛 2004 年 9 月 软体开发完毕,需要开始考虑到部署 (deployment) 的问题。部署往往不是一件简单的事 ,有一些问题需要解决。早期,Java 尚未普及时,许多 Java 程式员都会面临一个困扰 ,那就是:用 Java 开发出来的软体,不保证可以在其他人的 PC 上执行,因为别人可能 没有安装 JRE (Java Runtime Environment,Java 执行环境)。即使有安装 JRE,JRE 的 版本可能也不对。即使是现在,这个问题依然存在。 同样地,.NET现在也遇到这个问题。目前,只有 Windows Server 2003 预先安装好 .NET Framework,其他的作业系统都没有预先安装 .NET Framework。这会造成有些公司在评 估开发工具时,会舍弃 .NET,而就 MFC,甚至回到 Win32 API,毕竟 MFC 和 Win32 的 DLL 在所有的 Windows 平台上都有。我常觉得这可称为「旧技术不死,只是凋零」,凋 零得还真慢呢! 如果让安装程式将 .NET Framework 附在其中,会造成一些问题:安装 .NET Framework 时需要有足够的权限,权限不够则无法安装。例如,Guest 帐户无法存取 Registry,安 装 .NET Framework 需要存取 Registry。另外,体积也是一个大问题,.NET Framework 下载超过 20MB(安装後超过100MB)。 幸好,有一些软体厂商提供工具可以解决此问题,Thinstall 正是一个这样的工具。在 . NET Framework 尚未普及的今日,这样的工具更显得重要。Thinstall 是 Jitit 公司的 产品,你可以在 http://thinstall.com/ 找到它的资料,以及下载 30 天试用版。 顾名思义, Thinstall 是 Thin-Install 的意思,让软体免於安装的困扰。利用 Thinst all ,可以将一个软体的许多档案包装 (package) 成一个 EXE 档,不需要解压缩,不需 要安装 (install),就可以直接执行。利用 Thinstall ,你可以将 .NET Framework 和 你的程式,以及相关的档案都包装在一起,变成一个自给自足的 EXE 档。 除了将 .NET Framework 包装进 EXE 之外,Thinstall 还有一些额外的好处,包括了: 可以将 3rd Party 程式库,以及相关的档案,都包装在一个 EXE 档中,让程式执行时, 不会有档案遗失的状况。 Thinstall 使用的压缩技术,压缩比例可以比 ZIP 或 RAR 更高。 Thinstall 并不会将整个 .NET Framework 都包装进 EXE,只把有使用到的部分包装进 E XE,加上使用压缩技术,这使得包装出来的程式体积不大,一般都在 3~8MB 之间。 Thinstall 有使用加密技术,可以保障资料档案不会轻易地被他人窥视与窜改,程式也更 不容易被反编译和反组译。 Thinstall 整合安装程式的功能,可以建立开始选单 (Start Menu) 与桌面捷径 (Deskto p Shortcut)。 Thinstall 可以让软体变成 30 天试用版 (Trial)。 使用 Thinstall 也不是全然没有缺点,最明显的缺点是,执行效率会或多或少受到影响 ,且浪费更多记忆体。我的经验是,大多数的程式感觉不出效率变差,但某些用到特殊的 技巧的程式,其效率的确变差了。另外,使用 Thinstall 时,必须考虑到法律的问题。 因为 Thinstall 将许多程式库都包装进来,这些别人开发的程式库 (包括.NET Framewor k) 是否可以随着你的 EXE 而散播,Thinstall 的使用者需要好好研究其授权方式。 Thinstall 的使用方式非常容易,你可以在 Thinstall 的网站上看到用法介绍。较值得 注意的是,Jitit 公司不希望 Thinstall 产品被不合法地盗用,所以对於 Thinstall 的 保护相当严格。使用 Thinstall 时,电脑必须能上网,因为 Thinstall 需要连线到 Lic ense Server,来得知你是否为合法的用户 (或试用户),否则将不能执行 Thinstall。你 也可以向他们购买 USB 的 Key,就可以不用上网,离线使用 Thinstall。 Thinstall 可以利用PE档案格式的 Import Table,以及利用 .NET Metadata Table 内记 录的资讯,来得知此程式使用了哪些 DLL,Thinstall 会自动加入这些 DLL,甚至连间接 使用到的 DLL (也就是 DLL 所使用的 DLL),也会被自动加入。但是,Thinstall 无法得 知程式中利用 Win32 的 LoadLibrary() 或 .NET的Assembly.Load() 等API所动态载入的 DLL 有哪些,所以使用者必须自行将这些 DLL 加入到 Thinstall 中,以免包装出来的 EXE 档残缺不全。 Thinstall 采用的机制相当巧妙,利用一个 Virtual OS 将程式和 OS 隔开来。如果你的 程式是 .NET 程式,则在你的程式和 Virtual OS 之间,还有一个 .NET CLR,如图 1 所 示: 图 1 如果你利用Thinstall来包装.NET程式,那麽Thinstall所产生出来的EXE档内,除了包含 你的原始EXE档之外,还有.NET Framework,以及Thinstall Virtual OS,如图2所示。 图 2 Thinstall Virtual OS 重新改写了 300+ 个 Win 32 API,这些 API 大都是和档案、Reg istry、Process 等有关。Virtual OS 内有自己的 Virtual File System 和 Virtual Re gistry。这些被改写的 API,将 Virtual File System 和 Real File System 整合起来 ,成为一个新的 File System;将 Virtual Registry 和 Real Registry 整合起来,变 成一个新的 Registry。 当系统载入此 Thinstall 包装出来的 EXE 时,Virtual OS 会先被载入,Virtual OS 会 接着载入原始的 EXE (以及.NET Framework),然後解压缩与解密、并该更改此 EXE(以及 .NET Framework) 所使用到的这 300+ API,使其呼叫到 Virtual OS 的版本,而不是 Re al OS 的版本。最後把执行权交给此 EXE。偷天换日的工作,於是完成! 因为 Thinstall 内部使用这套 Virtual OS 的机制,而不是针对 .NET 来设计一个专属 的机制,所以 Thinstall 除了用来包装 .NET 程式,也可以用来包装 Java 程式,甚至 VB,或其他程式。我觉得这是一套很方便的工具,值得您也试试。 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.74.92.43
1F:推 phe:可以贴这篇的原始link吗?我想看他的图解 140.109.235.41 01/14
2F:→ phe:部分....谢谢 140.109.235.41 01/14







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP