.NET C#程序启动闪退,在安装或者程序文件下能正常运行,但通过路径却无法运行

这篇具有很好参考价值的文章主要介绍了.NET C#程序启动闪退,在安装或者程序文件下能正常运行,但通过路径却无法运行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

.NET C#程序启动闪退,目录导致的问题

这是第2次踩这个坑了,很小的编程细节,容易忽略,所以写个博客,分享给大家。

1.第一次坑:是windows 系统把程序运行成服务,找不到配置文件,原因是以服务运行它的工作目录是在C:\Windows\System32

2.本次坑:WPF桌面程序通过注册表设置开机自启,开机启动就闪退

我的排查流程:

1.使用注册表中配置的绝对路径,直接进入该文件夹中双击运行,验证程序和路径正确性,结果:失败。但管理员却能运行。原因是inno setup打包的时候设置了需要管理员运行。于是重新打包。虽然直接双击可以运行,但开机自启依然不行

2.于是我换了一个方式,在文件夹管理器直接使用绝对路径访问运行,结果:失败。当时怀疑,问题依然是:权限或者打包软件问题,但经过反复验证是正常的,于是问了一下gpt,他给了一个方向:(应用程序依赖资源文件路径问题: 如您的应用程序在运行时依赖于某些资源文件(如配置文件、数据库文件、dll等)。我当时想都能正常运行肯定没问题,但大脑还是抱着质疑的态度在脑海里面扫描一遍可能出现路径暗坑的代码,然后灵感一闪,想起来我的配置文件读取只写了一个文件名,原因也是程序工作目录导致的,然后进行代码修正,完美解决

原因

如果您通过某个路径间接启动程序(例如通过快捷方式、命令行指定的目录或是其他方式),这时当前工作目录可能不再是程序本身的目录,而是变成了启动程序的所在目录或者是命令行指定的工作目录,这就可能导致程序无法找到(如配置文件、数据库文件、dll等) 文件

解决方案

Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "文件名.json")

 所以大家编程的时候操作文件资源相关代码路径推荐这种写法,避免通过其他方式启动的时候程序崩溃。除非你希望你的文件资源在工作目录下操作,但这样会导致不可控,不建议文章来源地址https://www.toymoban.com/news/detail-843629.html

到了这里,关于.NET C#程序启动闪退,在安装或者程序文件下能正常运行,但通过路径却无法运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • zookeeper的安装与配置和启动闪退问题的解决(win)

    官网下载地址:https://zookeeper.apache.org/releases.html#download 解压,进入conf目录下,将zoo_example.cfg重命名为zoo.cfg,如图所示 新建俩文件夹,分别命名为data和log,打开zoo.cfg文件,找到dataDir,修改数据存放路径dataDir(可以自定义) 然后保存关闭. 在zoo.cfg文件中,还可以修改默认的z

    2024年02月04日
    浏览(37)
  • 应用程序无法正常启动(0xc0150002)

    安装内部开发的工具时,遇到报错“0xc0150002”。 之后查看系统日志详细报错如下: “C:Users…xxx_toolControlCAN.dll”的激活上下文生成失败。 找不到从属程序集 Microsoft.VC90.MFC,processorArchitecture=“x86”,publicKeyToken=“1fc8b3b9a1e18e3b”,type=“win32”,version=“9.0.21022.8”。 请使用 sxst

    2024年02月04日
    浏览(45)
  • EMQX5.0.8安装无法正常启动

    EMQX版本:5.0.8 操作系统及版本:Ubuntu 20.04.1 云服务器:阿里云轻量应用服务器 其他 安装成功后启动emqx服务器无法启动,报错信息如下 这个是社区中5.0版本无法启动的问题,作为参考 从waring中可粗略获取的信息为:在服务器配置文件(emqx.conf)中的cookie配置项出现问题 将系统

    2024年02月02日
    浏览(31)
  • .NET / C# 开发 Ubuntu Desktop 跨平台图形界面桌面程序 Avalonia - Visual Studio 安装/创建/运行指南 (一)

    Avalonia 是一个开源的跨平台应用程序框架,用于构建桌面应用程序。它使用 C# 和 XAML 进行开发,可以在 Windows、macOS、iOS、Android 及 Linux 等多个平台上运行。Avalonia 项目地址:https://github.com/AvaloniaUI/Avalonia 本文快速介绍如何入门使用 Avalonia 编写和执行 Ubuntu Desktop 图形界面桌面

    2024年02月01日
    浏览(49)
  • 0xc000007b应用程序无法正常启动,dll损坏

    这种有可能是运行库的问题,可能是有些dll损坏,也有可能是没注册(32位dll和64位有区别大家知道吧) 下载vc++运行库重装就行 我这里推荐个地址:VC运行库下载|最完整的微软VC运行库[VC++合集包]v2022.9下载-Win7系统之家 我之所以知道是因为我也经历过,我前几天打apex打不了,

    2024年02月15日
    浏览(35)
  • Redis安装和启动以及解决GitHub网站无法正常显示

    1、通过github官网下载 网址: dhttps://github.com/tporadowski/redis/releases 2、通过百度网盘下载(小浪) 链接地址: https://pan.baidu.com/s/1BJ3ErnS8b5o8Pc83Ylz2IQ 提取密码:xiao 按照方式1进入的友友们具体操作如下   使用百度网盘下载的友友们点击百度网盘链接,获取提取码,提前我打包好

    2024年04月13日
    浏览(31)
  • C#如何打包EXE程序生成setup安装文件

    项目结束之后,有需要将winForm程序打包成.exe文件提供给用户。 这里记录一下打包过程。 1:首先获取打包插件,如果你的VS已经安装,忽略此步骤。 点击 工具-扩展和更新,选择联机,搜索installer,安装。 Vs2010以上版本基本上都有安装。 2:创建一个安装向导项目 创建过程

    2024年02月12日
    浏览(29)
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计

    github地址:https://github.com/Ahmednull/L2CS-Net L2CS-Net介绍: 眼睛注视(eye gaze) 是在各种应用中使用的基本线索之一。 它表示用户在人机交互和开放对话系统中的参与程度。此外,它还被用于增强现实,用于预测用户的注意力,从而提高设备的感知能力,降低功耗。 因此,研究人

    2024年01月16日
    浏览(29)
  • 【最全】应用程序无法正常启动0xc000007b,解决方案

    先吐槽一下(大家可以略过),win10系统,之前这个问题就遇到过,一直没在意;安装腾讯QQ的时候就报异常,后面通过微软应用商店安装的;现在搜狗输入法又报错了,我决定抽时间研究下这个问题。点击进入 搜狗输入法官网。 好,大家看他的客服说好的人工客服,进去以

    2024年02月10日
    浏览(53)
  • 电脑上出现应用程序无法正常启动0xc0000142的解决方法

    电脑在打开软件时,提示应用程序错误无法正常启动0xc0000142怎么办?最近有用户反映,电脑在打开部分软件就会提示应用程序错误无法正常启动的问题,该如何修复?本文就给大家介绍应用程序错误无法正常启动0xc0000142的解决办法。 解决方法 1、打开电脑,然后点击开始菜

    2024年02月04日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包