gpt4 book ai didi

.net - 制作将使用 Windows Temp 目录的自解压 zip (SFX) Windows 程序安装程序的最简单方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 13:51:32 27 4
gpt4 key购买 nike

我有一个非常简单的程序,它包含一个调用 x86 Win32 .dll (Lib.dll) 的 .NET 2.0 exe (Program.exe)。

我想将它们打包成一个名为 Tool.exe 的自解压 zip (SFX)Tool.exe会将文件(Program.exe和Lib.dll)解压到Windows Temp系统目录下,然后调用Program.exe

这样我就可以提供一个名为 Tool.exe 的单文件 .exe 下载,就用户而言,他们只是在运行 Tool.exe 而不是一个多文件程序。

WinRAR 具有 SFX 功能,并且能够自动启动提取的 .exe,但它似乎没有让您选择让它提取到 Windows Temp 目录(您可以指定绝对路径,但 Temp 目录因 Windows 版本而异)。此外,它在提取时会弹出一个窗口,这对于我的目标来说有点矫枉过正,就像用户刚刚启动我的程序一样。

或者,有没有办法将 native Lib.dll 捆绑到我编译的 .NET 可执行文件中,几乎就像一个“资源”?

我真的很想避免制作完整的 MSI 安装程序,甚至是常规的 .exe 安装程序,因为这样做很痛苦,即使使用像 NSIS 这样更简单的安装程序也是如此。

最佳答案

我倾向于只用 7-zip 来做到这一点和 UPX , 关注 these directions to make it run a batch file upon execution/extraction .这是我用来构建 EXE 的示例 CMD 脚本,包括 .\bin 目录中的文件:

pushd %~dp0
upx --ultra-brute 7zsd.sfx
cd Bin
..\7za a -mx=9 "..\Program.7z" *
cd ..
copy /b 7zsd.sfx + Config.txt + Program.7z Program_Name.exe
del Program.7z

config.txt 文件内容如下:

;!@Install@!UTF-8!
GUIMode="0"
RunProgram="runme.cmd"
;!@InstallEnd@!

当然,您的里程数可能会有所不同...

关于.net - 制作将使用 Windows Temp 目录的自解压 zip (SFX) Windows 程序安装程序的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8088233/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com