最近用visual studio 2022写好了一个VB.NET的程式,按建置后会出现许多DLL档、一个EXE档还有一些其他杂档,上网GOOGLE后使用了Costura.Fody,例如原本结果会有10个DLL档+1个EXE,使用Costura.Fody结果变成1个DLL与1个EXE(只拉EXE出来是不能用的),我该如何将DLL包进EXE内呢?有试过使用dotnet publish成功打包成一个EXE,但原本EXE+DLL也才不到10MB,用dotnet publish却变成100多MB...
3 个回答
- 旧至新
- 新至旧
- 最高Like数
5
jack8900
iT邦新手 1 级 ‧ 2024-12-24 11:27:33
最佳解答
如果是.NET,发布的时候,目标执行阶段选择64位元,底下会出现档案发行选项,里面有一个是产生单一档案,然后就会只有一个EXE与.pdb档案,pdb可以不理他
dotnet publish会变成很大是因为你把.NET的所有函数库都包进去了,好处是使用者不用安装runtime,前者档案比较小,但是使用者需要安装runtime
-
3 -
-
x19871204
iT邦新手 5 级 ‧
2024-12-24 23:41:22
照着你的方法尝试...居然成功了!!!
实在太感谢你了,请受小弟一拜!!!
终于可以好好地睡一觉了
修改
jack8900
iT邦新手 1 级 ‧
2024-12-25 09:36:09
图片中的画面,背后其实也是执行dotnet publish,只是因为参数的选择不同,才会有不同结果
只要把部属模式换成独立式,就会产出档案很大的版本
目标执行阶段,如果选择都支援,也没办法产出单一档案,目前一般使用者应该都是64位元作业系统,所以可以直接选择64位元
只要把部属模式换成独立式,就会产出档案很大的版本
目标执行阶段,如果选择都支援,也没办法产出单一档案,目前一般使用者应该都是64位元作业系统,所以可以直接选择64位元
修改
x19871204
iT邦新手 5 级 ‧
2024-12-25 19:25:56
了解!剩下的我在自己摸索看看,非常感谢!
修改
3
zivzhong
iT邦研究生 4 级 ‧ 2024-12-22 16:23:52
感觉可以参考:
https://www.aisys.com.tw/web/tech/tech.php?question_id=174
-
3 -
-
x19871204
iT邦新手 5 级 ‧
2024-12-23 11:31:50
测试后还是不行,使用这个连EXE都不出现了XD
修改
zivzhong
iT邦研究生 4 级 ‧
2024-12-23 13:42:23
QQQQQQQQQQQQQQQQQQQQQ
修改
x19871204
iT邦新手 5 级 ‧
2024-12-23 15:51:10
我发现2019版本中compiler出来的档案,就算有一堆DLL及其他杂档也不用管他,只要把EXE提出来就可以直接使用!
但在2022中只要有一个档案没有一起布署就无法开启...真是太神奇了!
只不过2022的EXE执行速度比2019快了两倍...
虽然暂时算是解决我的问题了,但有机会的话还是想知道2022为什么不行。
修改
0
boylesa2
iT邦见习生 ‧ 2025-01-16 18:14:48
Thanks for the tips! Choosing the right publishing options can make a huge difference in the user experience. I appreciate the explanation about the trade-offs between a single EXE and the runtime installation. It’s definitely a consideration block blast for ensuring ease of deployment!