![]() | 1 ShadowPower 2024-01-02 09:40:38 +08:00 静态链接 编译选项/MT |
![]() | 2 lskjdfgl OP @ShadowPower 好像不行,生成后还是只有一个 exe 没有其他的 dll ,在没有 .net framework 的系统上还是提示: 若要运行此应用程序,您必须首先安装 .NET Framework 的以下版本之一: v4.0.30319 |
![]() | 3 ShadowPower 2024-01-02 10:16:47 +08:00 那是 C#程序吧…… .NET Framework 4.0 的话,无解 |
4 lonewolfakela 2024-01-02 10:40:01 +08:00 visual c++ Windows 窗体应用程序运行时是不需要.net framework 的,你最好先研究清楚是不是搞错了啥…… |
![]() | 5 nuk 2024-01-02 10:47:38 +08:00 publish 的时候自包含不行么 |
![]() | 6 tool2d 2024-01-02 11:01:30 +08:00 vc 似乎可以混合编程,就是一部分用 c#,另外一部分用 c++,对新手很容易搞混。 如何可以的话,考虑让 gpt 把 c#代码转换成 c++,就可以用一楼的方法解决了。 |
7 tsanie 2024-01-02 11:07:05 +08:00 或者可以选择.net core ,然后 publish 成 self-contained 的 |
![]() | 8 ysc3839 2024-01-02 11:13:32 +08:00 via Android 你先截图看看是 C++还是 C#吧 |
![]() | 9 zsxzy 2024-01-02 11:19:42 +08:00 nsis |
![]() | 11 lskjdfgl OP |
![]() | 12 lskjdfgl OP |
13 cnbatch 2024-01-02 13:30:34 +08:00 混合编程?可能无解,纯 C# 可以主动更改引用的 .NET Framework DLL ,已经有人试过可行: https://www.yycoding.xyz/post/2023/9/21/publish-dotnet-windows-application-into-a-single-file-executables 对于混合编程的话,那就复杂多了。可以尝试把调用到的 DLL 全部复制到程序当前目录,但我也不知道是否可行。 |
![]() | 14 tanranran 2024-01-02 14:01:09 +08:00 再写一个项目,用于检测是否安装了.net framework ,如果没安装则,释放.net framework 安装文件,如果安装了,则释放项目安装文件 |
15 chinadch 2024-01-02 14:14:53 +08:00 via iPhone nsis 创建安装程序,知乎上有流程 |
![]() | 16 hahiru 2024-01-02 14:40:51 +08:00 !安装必看.txt |
![]() | 17 Golor 2024-01-02 14:56:25 +08:00 可以用 InnoSetup 打包程序,在 iss 脚本中进行判断是否安装.net freamwork ,若没有安装则进行安装。 |
![]() | 18 lskjdfgl OP @tanranran @Golor 谢谢 使用了 vs2010 自带的 visual studio installer 实现了安装前先检查有没有.net framework 环境,没有的话,就先安装.net framework ,安装后再复制程序文件。 |