在红宝石的devkit是7-ZIP基于自解压压缩包.
我想静静地调用它,而不必安装7-Zip将文件解压缩到我选择的文件夹,这样我就可以编写安装脚本.我想它是这样的:
cmd> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe /silent /dir="C:\DevKit"
Run Code Online (Sandbox Code Playgroud)
但是,这当然不起作用.我必须使用哪些命令行标志来静默地将此存档提取到我选择的文件夹中?
我见过可执行文件提取自己并在setup.exe
之后运行压缩文件:双击该文件解压缩它然后运行以前压缩的文件setup.exe
.
我怎么能做到这一点?我想使用WinRAR,如何将setup.exe
解压缩后的自解压可执行文件解压缩到临时文件夹?
我无法弄清楚7zip提供的7z.sfx文件和开发人员网站的可下载7zsd.sfx之间的区别是什么,该网站没有与7zip捆绑在一起.7z.sfx似乎不尊重我的请求,包括我为它创建的config.txt文件,但7zsd.sfx包含方法完美无缺.
7zip附带7z.sfx捆绑.程序文件目录中的应用程序history.txt显示7zsd.sfx曾在2005年与7zip捆绑在一起.7z.sfx在history.txt文件中也被称为"未压缩的SFX".
这是使用的配置:
;!@Install@!UTF-8!
InstallPath="C:\\ProgramData\\IT"
GUIMode="2"
;!@InstallEnd@!
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的语法和响应行为:
C:\Users\<me>\Desktop\Updater\Recorder>copy /b 7z.sfx + config.txt + "RecorderVer0.0.0.4".7z "RecorderVer0.0.0.4".exe
7z.sfx
config.txt
RecorderVer0.0.0.4.7z
1 file(s) copied.
Run Code Online (Sandbox Code Playgroud)
使用7zsd.sfx会发生相同的响应,表明确实正在使用包含的配置文件.但是,当执行7z.sfx创建的RecorderVer0.0.0.4".exe时,会提示安装7z存档内容的提示.使用7zsd.sfx创建的RecorderVer0.0.0.4.exe版本将文件指向配置集位置没有任何所需的提示.
据我所知7z.sfx不能通过开发者的网站下载,但我可能错了.他的官方网页已不再可用,但互联网档案馆提供的信息应该足够.
我有两个文件,一个EXE和一个DLL
exe是一个vb.net应用程序的构建,我也需要DLL
我想要的是一个自我提取器,将这些文件放在一起,然后运行时它将提取它们并立即运行EXE
是否有一个非常简单,易于使用的BOX软件将执行此操作?商业与否,无所谓
我很想知道WiX如何捆绑使用Burn创建的EXE文件.我知道创建一个自解压EXE文件非常简单,在WinRAR中完成了一百万次.要解压缩到的EXE文件是什么目录,以及如何将该位置写入"添加/删除程序"?
另外,如何保存用于卸载的UX文件?更有趣的是,升级期间会发生什么?
我想提取一个exe文件.exe文件包含一些文件和文件夹.当我尝试使用winrar提取文件时,它会被提取,但是当我尝试使用一些示例提取exe文件时,我收到此错误:
GZip标头中的幻数不正确.确保传入GZip流.
我已经使用了一些样本并搜索了很多我的问题,但没有得到我的答案,我也使用了一些库.
我使用此代码但错误相同:
public static void Decompress(FileInfo fi)
{
// Get the stream of the source file.
using (FileStream inFile = fi.OpenRead())
{
// Get original file extension, for example
// "doc" from report.doc.gz.
string curFile = fi.FullName;
string origName = curFile.Remove(curFile.Length -
fi.Extension.Length);
//Create the decompressed file.
using (FileStream outFile = File.Create(origName))
{
using (GZipStream Decompress = new GZipStream(inFile,
CompressionMode.Decompress))
{
// Copy the decompression stream
// into the output file.
Decompress.CopyTo(outFile);
Console.WriteLine("Decompressed: {0}", fi.Name);
}
}
} …
Run Code Online (Sandbox Code Playgroud) 根据这个问题的答案,我无法在我的.msi文件中嵌入文件版本.
我给客户端的安装程序需要有一个文件版本.
所以,我想要做的是创建一个包含msi文件和Visual Studio生成的setup.exe的自解压可执行文件,并将文件版本放在这个自解压可执行文件上.
因此,我需要一个实用程序来创建自解压可执行文件,它支持在其输出中嵌入文件版本.它还需要支持在提取后自动运行文件,因此我可以自动启动真正的安装程序.如果它是可编写脚本的话会很好.
我能找到的只是这个,看起来很棒,但我更喜欢免费替代品.
有没有人有什么建议?
编辑:为了澄清,我不是真的想要创建一个安装程序 - 我已经有一个VS安装项目.我只想要一个自我提取器(如WinZip可以创建).因此,用户将鼠标放在Setup-Blorgbeard2008.exe上,看到"Version:1.0.0.0".用户双击它,它会静默地将setup.exe和setup.msi提取到临时文件夹,然后运行setup.exe.然后用户看到正常的安装程序屏幕并正常进行.
另一个编辑:是的,我不再需要自我提取器了,因为我的另一个问题现在已经得到解答了.这使得整个问题几乎无关紧要.这将仍然是不错的能够分发只有一个文件,而不是SETUP.EXE的setup.msi和.
有什么想法如何将 ClickOnce 在线安装文件树打包到单个 .exe 文件中以进行离线安装吗?我知道它不是为此目的而设计的,但使用 Windows Installer 对我来说不是一个选择,因为我只需要运行该应用程序而无需任何安装过程(与 ClickOnce 在线安装完全一样)。我尝试过使用 IExpress 工具来制作自解压 .exe,但不幸的是它不支持 filetree。我可以使用 .cab 包装来实现此目的吗?
我正在开发一个具有专有文件格式的项目.该项目有一个大型的安装必需程序和一个不需要安装的较小的查看器.我希望能够从我的主应用程序中导出"自我打开".exe的文件 - 也就是说,您可以双击exe并显示嵌入的文件(这是为了让查看器传递给有没有安装能够查看它的主应用程序 - 它们只会传递文档).
我对如何做到这一点有点失落.我一直在调查的两个想法已经走到了尽头.他们是:
1)将文件嵌入查看器中.我可以通过Visual Studio手动执行此操作,我有一个工作演示,但我无法想出一种方法来实现这一点.
2)创建一个自解压存档,将文件和exe提取到temp,并在命令行上使用文件名运行exe.这听起来很简单,也可能(尽管是hacky),但我遇到的问题是归档或安装程序似乎没有必要的命令行来完成所有这些.
有任何想法吗?我更喜欢第二种,因为它很容易,但第一种因为它看起来更像防弹/更少hacky.
我知道如何创建可执行的.jar文件.互联网上有很多例子.我想知道的是,如果有人知道可执行.jar文件可以自动将其自身部分提取到"运行目录"的方式吗?
所以,而不是:
jar xf TicTacToe.jar TicTacToe.class TicTacToe.properties
java -jar TicTacToe.jar
Run Code Online (Sandbox Code Playgroud)
我只想这样做:
java -jar TicTacToe.jar TicTacToe.class TicTacToe.properties
Run Code Online (Sandbox Code Playgroud)
这基本上是一个自解压安装程序.这是可能的,如果是这样,需要什么代码才能做到这一点?
注意:最终,一旦它工作,我将它包装到launch4j中,以模拟.exe自解压安装程序.
self-extracting ×10
.net ×2
c# ×2
installation ×2
installer ×2
7zip ×1
archive ×1
automation ×1
clickonce ×1
command-line ×1
compression ×1
exe ×1
jar ×1
java ×1
unzip ×1
versioning ×1
windows ×1
winforms ×1
winrar ×1
wix ×1