我有一些程序的标准安装,尽管它们是免费软件,我可以下载它们并安装在任何机器上,但事情并不总是那么容易。当系统崩溃并且我没有工作机器或工作互联网连接或局域网卡或局域网卡驱动程序时,如果某些依赖文件不在该版本的 Windows 上,我总是很难找到它们并使它们工作。
我需要知道的是如何使应用程序可移植,以便我可以从我的 USB 运行它们,或者只是从我的 PC 上的 USB 复制它们并运行,应用程序需要哪些依赖文件,以及特定应用程序安装的文件和位置?
我有一些程序的标准安装,尽管它们是免费软件,我可以下载它们并安装在任何机器上,但事情并不总是那么容易。当系统崩溃并且我没有工作机器或工作互联网连接或局域网卡或局域网卡驱动程序时,如果某些依赖文件不在该版本的 Windows 上,我总是很难找到它们并使它们工作。
我需要知道的是如何使应用程序可移植,以便我可以从我的 USB 运行它们,或者只是从我的 PC 上的 USB 复制它们并运行,应用程序需要哪些依赖文件,以及特定应用程序安装的文件和位置?
这是一个复杂的故事,但让我们试着总结一下。从“为什么?”部分开始。
我是一个非常“讨厌”安装人员的痴迷者。我喜欢拥有一个干净的系统,而不会在文件 reg 条目和 DLL 中臃肿。这就是为什么我制作几乎所有(至少 97%)我使用的程序都是可移植的。到今天我做了600多个,我能说的是;
你需要: 1- 一个监视文件系统的程序(安装后包含的)我用这个。简单直接(抱歉不是免费软件,但您可以找到大量替代品) http://www.samsunsegman.com/um/
2- 一个监视注册表的程序(安装后更改或包含的内容)我在 HTML 模式下使用它。免费快速简单。并且具有便携性。 http://sourceforge.net/projects/regshot/
现在用这 2 个扫描系统,然后运行安装程序。打开已安装的程序并根据需要进行设置后。而不是使用这 2 个程序来查找添加的文件和注册表项。
对于文件,将它们删除到垃圾桶,然后将它们从垃圾箱中批量取回(很容易这样做)到应用程序的文件夹中。注册表,打开注册表中的相关分支,删除任何包含地址的条目,如(插件文件夹= c:\ prog ....等)右键单击主分支并选择导出。这是你的注册设置...
3- 下载此程序 http://ctuser.net/?reg2exe 这会将您的 reg 文件转换为 exe 文件。
4- 下载此应用程序http://download.cnet.com/FilePacker/3000-2216_4-10414081.html 注意:如果没有,请单击“直接下载链接”,cnet 将欢迎您使用他们的安装程序 :)
使用这个程序(我使用它是因为不会干扰任何应用程序)打包你想要移植的程序。在向导中,首先在主程序文件之后选择您的 reg-exe 文件。Launcher 将按此命令执行它们。并在设置中选择“终止后删除”将在退出时删除提取的文件。
您可以发现更多详细信息。这可以帮助您移植近 75% 的简单应用程序。
5-对于复杂的程序或复杂的需求,你甚至可以制作自制的装载机,比如
我只是写了最后这些,让你明白你能走多远。对于所有这些额外的技巧,我只使用 bat 文件。我也用这个软件把它们转换成exe。http://www.f2ko.de/programs.php?lang=en&pid=b2e (也是免费的)
除“卸载管理器”外,我使用的所有软件都是免费的。使用这种技术,令人惊叹,但有些程序运行得更快。
实际上,您可以只使用 JauntePE 或便携式应用程序打包程序,但是...... Jaunte 和类似的沙盒制作程序非常慢并且无法与所有程序兼容。甚至导致崩溃。就我严格的 spped 和大小标准而言,便携式应用程序方法有点臃肿。这就是为什么我自己做了 10 年(是的,甚至人们都没有谈论可移植性)
注意:我不是程序员,你也不需要做这些。我从未发布过我的便携式设备,而且出于对作者的尊重,您也不应该(阅读 EULA)。
但永远不要忘记要求所有作者提供便携式版本。强制他们退出安装程序;)
此致
inovasyon 做得很好!如果你想制作一些便携的应用程序,可以在你移动到的每台计算机上运行,那么 99.9% 的应用程序都可以便携。如果您还希望该应用程序不会留下任何文件、文件夹或注册表项,并且不会更改或破坏主机 PC 的设置,那么这会进一步限制事情。需要管理员权限才能写入注册表或文件系统的受保护区域的应用程序在具有锁定权限的 PC 上使用时会中断。
需要在主机 PC 上安装服务的应用程序通常会将它们抛在后面。您必须知道有些应用程序被锁定到特定的 PC - Microsoft 最新版本的 Office 就是一个很好的例子。当移动到另一台 PC 时,它们根本不会运行。此外,您还需要一些工具来制作便携式应用程序:cameyo、thinapp、boxedapp、portableapps、spoon、app-v 等。便携式应用程序将从闪存驱动器和计算机运行。祝你好运!
这是使用PortableApps.com工具设置便携式应用程序的入门指南。他们有一个面向开发人员的页面,对某些细节非常有帮助,但整个过程没有得到很好的总结。以下是创建可移植应用程序的一般大纲:
1. 调查您的应用程序的足迹
找到您想要移植的应用程序的所有文件、注册表位置和设置(利用inovasyon 答案中的第 (1) 和 (2) 点,也许看看Zsoft)。启动虚拟机并跟踪应用程序的更改而不造成太多混乱通常是一个好主意。
2. PortableApp 生成器
下载、解压并打开PortableApps.com 平台,然后按照[The system tray icon]
→<code>[Apps] →<code>[Get More Apps] →<code>[By Category] 安装PortableApps.com Launcher和NSIS(Unicode )需要移植您的应用程序。或者,但会增加一些麻烦,将PortableApps.com Launcher和NSIS Portable(Unicode 版本)都下载为独立的。
您现在可以通过运行 PortableApps.com 启动器并将其指向您的项目来编译项目。
3. PortableApp 布局和结构
下载PortableApp.com 应用程序模板(在此处搜索),按照规范对(1.)中获得的数据和文件进行结构化。此外,从portableapps.com下载一些应用程序,以了解它们的结构的一些实际示例,并了解更多关于便携性的困难(例如在设置文件中替换驱动器号以对应便携驱动器的移动)。
作为一个“Hello World”的例子,试试这个简单程序的可移植性:helloworld.bat
,内容:
@echo off
echo Hello World > log.txt
它将所有本地环境变量写入日志文件log.txt
。您可以尝试将文件写入%APPDATA%
子目录,看看是否可以让您的项目将其重定向到可移植目录。
4. 附加用途
如果您需要执行一些使用默认.ini
功能无法实现的额外编码(例如强制仅应用一个应用程序实例),请将带有文件位置的 NSIS 脚本添加App\AppInfo\Launcher\Custom.nsh
到您的项目中。
请注意,PortableApps.com 的自定义代码指南错误地将文件位置声明为Other\Source\Custom.nsh
. 关于这个脚本的布局也非常无益。而是查看其他应用程序中的示例,并通过 Google-ing 学习一下 NSIS 语法。