当前位置: 代码网 > 科技>操作系统>Windows > 解决:使用VS做窗体应用程序(WinForm),程序完成后途中使用到的dll库不会包涵进exe文件里。

解决:使用VS做窗体应用程序(WinForm),程序完成后途中使用到的dll库不会包涵进exe文件里。

2024年08月03日 Windows 我要评论
如题,在用VS开发WinForm程序时,最后程序完成,期间使用到的dll库不会包涵进exe,要想发布给其他人使用,就得把这些dll库一并打包发给其他人,别人才能正常运行,这样就会非常麻烦。如下图:程序途中使用到的dll就会一并放在程序编译导出目录,且你想在别的地方使用,还必须得把该dll一并放在同一目录。举个例子:我想把该程序放在桌面运行,我单独把 WinFormTest.exe 文件复制到桌面是运行不了的(闪退,报错,或者直接打不开都是正常现象,就算看起来没报错,你正常打开了,实际用到该dll里的函数

解决:使用vs做窗体应用程序(winform),程序完成后途中使用到的dll库不会包涵进exe文件里。

如题,在用vs开发winform程序时,最后程序完成,期间使用到的dll库不会包涵进exe,要想发布给其他人使用,就得把这些dll库一并打包发给其他人,别人才能正常运行,这样就会非常麻烦。如下图:
程序途中使用到的dll就会一并放在程序编译导出目录
程序途中使用到的dll就会一并放在程序编译导出目录,且你想在别的地方使用,还必须得把该dll一并放在同一目录。

举个例子:我想把该程序放在桌面运行,我单独把 winformtest.exe 文件复制到桌面是运行不了的(闪退,报错,或者直接打不开都是正常现象,就算看起来没报错,你正常打开了,实际用到该dll里的函数的地方就会崩溃或失效),所以需要把该dll一并复制到桌面,此时,你就会发现该程序能正常运行了。

但是这样就会很麻烦,理应我程序运行就只需要一个exe文件就行了,无论我放那个目录,或者发给其他任何人,都只需要一个exe就行了,这样才对,这样才简便。

所以此文,我们来解决该问题。

一:在解决方案右键 —> 管理解决方案的 nuget 程序包。如图:

在这里插入图片描述

二:在浏览窗口搜索:costura.fody 插件,然后下载安装。如图:

在这里插入图片描述

三:安装完成后,再次编译程序生成,就会发现编译完成后的exe目录下已经没有dll库了,且该程序复制到任意目录都可正常运行,至此,目的达成。如图:

在这里插入图片描述
ps:这样操作后,dll不见了,程序也可正常运行,但可以明显的看到,该exe文件大小变大了,从原来的7k变为78k了。原因是把dll打进了exe导致的。

辛酸史:由于最开始遇到该问题的时候比较懵,不知道该怎么键入关键词查找资料,苦苦摸索了很久很久,查找了无数资料教程,各种方法都试过了,最后都失败了,好在最终在一步一步查找资料途中终于找到了该插件与使用教程,最终解决了问题,该文章算是记录下解决该问题过程吧。
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com