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