【Visual Studio】【.NET】使用Devexpress框架的项目发布时缺失dll的相关问题记录
首先说我自己实践得到的结论:
VS2017,.net framework4.6.1,但凡bin/release或debug下的.exe可执行文件,运行时要用的dll,放在其同路径下,就可以被找到并正常运行。
注意:
1.如果直接在bin/release或debug下点击exe没反应,可以在控制面板——>系统和安全——>安全和维护,点开维护查看可靠性历史记录
可以看到刚刚没反应的exe应用,如果是Win10就右键查看技术详细信息,如果是这情况就是缺失DLL:
2.如果是exe依赖的dll也有其依赖的dll,vs运行的时候会给出类似这样的异常:
这种情况也可以通过dependencies去查找缺失的dll
3.还有一种的情况,就是有人说devexpress的dll打包的时候不能简单的将其拷贝到安装包目录下,需要将它们注册到Global Assembly Cach(全局程序集缓存)具体见:DevExpress 开发经验总结3 制作项目安装包 - 张传宁 - 博客园 (cnblogs.com)。
GTP说这样的原因是:
注册 DevExpress 的 DLL 到全局程序集缓存(Global Assembly Cache, GAC)而不是将其放在可执行文件的同路径下,主要是由于这些 DLL 文件的复杂依赖和版本控制需求。放在 GAC 中可以确保这些程序集被正确地共享和引用,避免了可能的版本冲突或兼容性问题。当 DLL 在 GAC 中时,.NET 运行时可以更有效地管理和定位这些程序集,确保应用程序可以访问正确的库版本。这对于确保应用程序的稳定性和兼容性非常重要,特别是在多个应用程序可能需要访问同一 DLL 的情况下。
但是我没有遇到这个问题,我放在exe同路径下都是可以的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2023-05-13 【Windows系统】xbox game bar 自动录屏 shift+ctrl