桌面应用开发求大佬推荐技术方案

2023-07-04 10:35:34 +08:00
 CForce

现在是想做个给团队内和外部合作方用的小工具应用,GUI 界面非常简单,有这么几个需求: 1 、支持 Windows 和 Mac ; 2 、工程里要用命令行调用一个外部的可执行文件,在 Windows 上就是 exe 和几个 dll ,Mac 上就是一个 Linux 可执行文件,想把这几个外部可执行文件都最终打包到一个最终产物里并且可被直接调用; 3 、免安装,比如在 Windows 上直接能生成最终的一个 exe 文件直接打开;

有现有的技术方案可以满足上面的需求吗?求各位大佬推荐技术方案。

7443 次点击
所在节点    Windows
84 条回复
CForce
2023-07-04 15:25:49 +08:00
@sloknyyz child_process 执行这个 exe 的话需要一个路径,如果不把外部 exe 解压出来的话,这个路径应该怎么传呢?
lujiaosama
2023-07-04 15:27:27 +08:00
@sipt 体积大无所谓. 现在硬盘空间多得很, 主要是卡, 臃肿得一匹.
byteroam
2023-07-04 15:29:55 +08:00
你可以使用第三方工具,例如 "ILMerge" 或 "BoxedApp Packer",将 EXE 文件和 DLL 文件合并为一个单独的 EXE 文件。
CForce
2023-07-04 15:36:18 +08:00
@byteroam 嗨,主要是没搞过桌面开发,想着这几个需求如果不能同时满足,那就退而求其次了,大佬有什么简单的方案可以不吝赐教一下
BeiChuanAlex
2023-07-04 15:47:26 +08:00
Tauri 吧,不过要会前端才行。
hronro
2023-07-04 15:52:49 +08:00
「 Mac 上就是一个 Linux 可执行文件」是什么意思?

岂不是说还要在 macOS 上开一个 Linux 虚拟机才能正常运行起来?
DT37
2023-07-04 16:00:33 +08:00
Java 就可以啊
ackmanfork
2023-07-04 16:42:01 +08:00
.net winform 可以搞定在一个类库内去写。
ackmanfork
2023-07-04 16:42:40 +08:00
理论上如果不引用其他的第三方 dll ,不会生成多余的 dll 只有一个 exe
Curtion
2023-07-04 17:04:00 +08:00
有很多看似的无需安装的 exe 文件,在运行时都会解压依赖项到系统的 temp 文件夹中
yanggggjie
2023-07-04 17:08:37 +08:00
electron
wildman9527
2023-07-04 17:17:31 +08:00
pygame
signalas1
2023-07-04 17:21:00 +08:00
Electron 里用 nodejs 的 spwan 启动应用, 通讯用 net ipc 。
liuliuliuliu
2023-07-04 17:22:30 +08:00
https://www.v2ex.com/t/952603
用 .Net 写了一个跨平台的桌面端软件,且原生编译,无需运行时,启动快内存少体积小
signalas1
2023-07-04 17:25:19 +08:00
还可以类似蓝灯的思路,你们如果是这个功能程序的作者,可以起一个本地服务器,点击图标就拉起浏览器,用浏览器来访问程序。
flyqie
2023-07-04 17:41:41 +08:00
@Curtion #50

是的,反正总要有个地方塞。。

temp 目录是最好的选择。
ysc3839
2023-07-04 17:47:00 +08:00
“Mac 上就是一个 Linux 可执行文件”是错的,Windows Linux macOS 这三个平台的可执行文件都有各自的格式,Windows 习惯给可执行文件名加上.exe 后缀,但加不加都不影响文件内容。
macOS 有个特殊的“格式”叫做捆绑包,比如你看到的一个“应用程序”,其实是.app 后缀的文件夹,内容大概是这样的:
app.app
-Content
--MacOS
---可执行文件
--Resources
---资源文件
如果有多个可执行文件,都放进 MacOS 那个文件夹即可,运行时可以用_NSGetExecutablePath 获取自身路径。
spongebobsun
2023-07-04 18:56:42 +08:00
iorilu
2023-07-04 20:47:31 +08:00
pyqt 没别的选择

要么就是那种套浏览器的
seliote
2023-07-04 21:24:18 +08:00
Flutter

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/953895

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX