m0_72085609 2024-12-19 09:02 采纳率: 0%
浏览 120
已结题

C#,exe运行闪退

VS2015,C#。生成的debug的exe无法正常打开运行,主界面弹出一下就闪退。
但是经过交叉实验,别的程序的exe可以正常打开,本设备无法打开的exe换到别的设备也可以正常打开,只有为本设备编写的程序生成的debug的exe打不开。用代码也是可以启动的。
在无法正常运行之前,我改动了命名空间名称,程序集名称以及各种名称,但是它是可以生成成功的,是不是哪里的路径有问题?

追加:已经精确定位到,是因为运行连接雷赛运动控制卡的函数,LTDMC.dll是放在debug里面,LTDMC.cs在debug里面和bin文件夹下面都有,命名空间都是一致的。我在别的设备和用别的程序都交叉试验了可以打开,用代码在本设备也可以运行,还是只有exe无法运行,注释掉连接雷赛运动控制卡的函数就可以运行。

  • 写回答

38条回答 默认 最新

  • 阿里嘎多学长 2024-12-19 09:03
    关注
    获得0.15元问题酬金

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题分析

    用户的问题是,使用 VS2015 编写的 C# 项目生成的 Debug 版本的 exe 文件无法正常打开运行,主界面弹出一下就闪退。用户已经进行了交叉实验,发现其他程序的 exe 文件可以正常打开,但是在本设备上编写的 exe 文件无法打开。

    解决方案

    1. 检查 exe 文件的依赖关系:可能是 exe 文件依赖的某个 DLL 文件在本设备上无法找到或加载。可以使用 Dependency Walker 工具来检查 exe 文件的依赖关系。
    2. 检查 .NET Framework 版本:可能是本设备上安装的 .NET Framework 版本不兼容exe 文件所需的版本。可以检查本设备上安装的 .NET Framework 版本是否与 exe 文件所需的版本一致。
    3. 检查 exe 文件的配置文件:可能是 exe 文件的配置文件(如 app.config 或 web.config)中存在错误或不兼容的设置。可以检查配置文件中的设置是否正确。
    4. 使用 DebugView 工具:DebugView 工具可以帮助用户查看 exe 文件的输出日志,可以帮助用户找到问题的根源。

    代码示例

    以下是一个使用 Dependency Walker 工具来检查 exe 文件依赖关系的示例代码:

    using System;
    using System.Diagnostics;
    
    class Program
    {
        static void Main(string[] args)
        {
            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.FileName = "DependencyWalker.exe";
            startInfo.Arguments = "path/to/exe/file.exe";
            startInfo.UseShellExecute = false;
            startInfo.RedirectStandardOutput = true;
            startInfo.RedirectStandardError = true;
    
            Process process = Process.Start(startInfo);
            process.WaitForExit();
    
            string output = process.StandardOutput.ReadToEnd();
            Console.WriteLine(output);
        }
    }
    

    请注意,这只是一个示例代码,实际情况中可能需要根据具体情况进行修改。

    评论

报告相同问题?

问题事件

  • 系统已结题 12月27日
  • 修改了问题 12月19日
  • 创建了问题 12月19日