用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
后端开发
›
.Net
›
.NET C#程序启动闪退,在安装或者程序文件下能正常运行 ...
.NET C#程序启动闪退,在安装或者程序文件下能正常运行,但通过路径却无法 ...
tsx81428
论坛元老
|
2024-5-15 11:15:24
|
显示全部楼层
|
阅读模式
楼主
主题
1812
|
帖子
1812
|
积分
5438
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
.NET C#程序启动闪退,目次导致的标题
这是第2次踩这个坑了,很小的编程细节,轻易忽略,所以写个博客,分享给大家。
1.第一次坑:是windows 体系把程序运行成服务,找不到配置文件,缘故原由是以服务运行它的工作目次是在C:\Windows\System32
2.本次坑:WPF桌面程序通过注册表设置开机自启,开机启动就闪退
我的排查流程:
1.使用注册表中配置的绝对路径,直接进入该文件夹中双击运行,验证程序和路径正确性,结果:失败。但管理员却能运行。缘故原由是inno setup打包的时候设置了需要管理员运行。于是重新打包。虽然直接双击可以运行,但开机自启依然不行
2.于是我换了一个方式,在文件夹管理器直接使用绝对路径访问运行,结果:失败。当时怀疑,标题依然是:权限或者打包软件标题,但经过反复验证是正常的,于是问了一下gpt,他给了一个方向:(
应用程序依靠资源文件路径标题
: 如您的应用程序在运行时依靠于某些资源文件(如配置文件、数据库文件、dll等)。我当时想都能正常运行肯定没标题,但大脑还是抱着质疑的态度在脑海里面扫描一遍可能出现路径暗坑的代码,然后灵感一闪,想起来我的配置文件读取只写了一个文件名,缘故原由也是程序工作目次导致的,然后进行代码修正,完美解决
缘故原由
如果您通过某个路径间接启动程序(例如通过快捷方式、命令行指定的目次或是其他方式),这时当前工作目次可能不再是程序本身的目次,而是变成了启动程序的所在目次或者是命令行指定的工作目次,这就可能导致程序无法找到(如配置文件、数据库文件、dll等) 文件
解决方案
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "文件名.json")
复制代码
所以大家编程的时候操作文件资源干系代码路径保举这种写法,避免通过其他方式启动的时候程序崩溃。除非你希望你的文件资源在工作目次下操作,但这样会导致不可控,不建议
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
tsx81428
论坛元老
这个人很懒什么都没写!
楼主热帖
【pandas小技巧】--读取多个文件 ...
【参考】开发工程师职级与职级界定-职 ...
MySQL与Redis数据双写一致性工程落地案 ...
【毕业季】纸短情长,浅谈大二以前的学 ...
读SQL进阶教程笔记06_外连接
mysql修改表字段长度
kubernetes之镜像拉取策略ImagePullSec ...
BinaryBombs(二进制炸弹实验) ...
Apache Shiro反序列化漏洞(Shiro550) ...
计算机系统装配与集成实验
标签云
集成商
AI
运维
CIO
存储
服务器
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表