【问题标题】:WPF DotNET Application will run in debug mode, but .EXE will not runWPF DotNET 应用程序将以调试模式运行,但 .EXE 不会运行
【发布时间】:2010-11-17 16:53:17
【问题描述】:

我使用 VS 2010 在 C# 中编写了一个 WPF 应用程序。该应用程序将在使用 Visual Studio 的调试模式下运行良好,但是当我从 bin\release 文件夹运行 .EXE 时,没有任何反应。我没有从 Windows 收到任何错误消息,并且 VS 中没有错误或警告。我试图构建、重建和清理解决方案(以所有可能的顺序),但没有成功。我的解决方案包含 2 个项目,这两个项目都使用 .NET 4.0 框架,并且我的 PC 上安装了 .NET 4.0。 XP和Win7都试过了,还是不行。

我还刚刚注意到,当我在调试模式下运行应用程序时,Debug 的输出显示:“无法找到或打开 PDB 文件”,在它加载的每个 .Dll 之后。

我每次都在编译到 Release 文件夹,但我确实尝试将其更改为调试文件夹并清理/重建只是为了看看这是否会有所作为,但它没有,所以我将它改回来,再次尝试,还是什么都没有。

有什么想法吗?

【问题讨论】:

  • 有趣。您是否检查过应用程序事件日志以查看是否有任何内容?
  • 应用程序是在您的进程列表中运行还是开始/结束?
  • 另外,当您更改为发布模式时,您是否获得了非错误编译?当您按 F5 时,您正在调试模式下运行,它将编译到 bin\Debug。也许旧版本在 bin\Release 中,实际上并没有做任何事情。尝试将下拉菜单更改为 Release,然后使用 F6 进行编译。
  • 另外,您何时在项目的调试配置中进行了任何配置更改?有时,您需要在发布模式下再次更改调试配置。
  • 我能够在应用程序事件日志中找到足够的信息,以便找到在我的主窗口的构造函数中引发的异常。我不知道为什么它没有在调试模式下被捕获,但感谢布赖恩的提示!

标签: c# .net visual-studio-2010 wpf-4.0 .net-4.0


【解决方案1】:

我想到了一些想法

  • 如果您使用的是 x64 机器,请尝试将应用程序从 AnyCPU 更改为 x86。这是应用程序默认处于调试模式的模式,可能在 x64 中运行的问题导致发布版本出现问题
  • Release 二进制文件可能已过期。从 Release 文件夹中删除二进制文件,重新生成并运行新生成的运行
  • 在 Visual Studio 的调试器下运行发布版本,看看它是否直到崩溃

【讨论】:

  • 这不是我的问题(这一次),但仍然是非常有用的信息!谢谢!
【解决方案2】:

我也遇到了上述问题,但是没有其他解决方案适合我。

我的应用程序在事件查看器中记录的事件 ID 为 1018 和 1022。这似乎与 ASP.NET 2.0 dll 奇怪地相关(奇怪;因为这只是一个空白 WPF 项目)。日志包含如下消息:

Windows 无法打开 64 位可扩展计数器 DLL 32位环境下的ASP.NET_64_2.0.50727

最后,当我禁用我的防病毒软件时,它最终得到了解决。我读到这个解决方案适用于 McAfee 的某个人。它也适用于我的具有 Avast 的环境。

【讨论】:

  • 谢谢,我们临时将我们的 Wpf 应用程序添加到计算机上的 Avast 异常中,并且它工作正常。现在我们必须找到不被 Avast 屏蔽的方法。
【解决方案3】:

我假设您在没有安装 Visual Studio 的机器上进行了尝试,也没有您用于开发的组件。

您只有一个选择:在导致问题的机器上使用调试器启动应用程序并检查那里的异常情况。 (例如,使用WinDBG - 它很简单)。

这看起来像是缺少依赖项的问题,但也可能是其他问题。

调试实验室应该为您提供有关如何使用 windbg 查找问题的足够信息:

也用这个:

【讨论】:

  • 我确实尝试过使用调试器,但在应用程序崩溃后,它只会显示一条消息“无可用源”。
  • 但是您是否捕获了异常消息?
【解决方案4】:

(JaredPar) 答案看起来正确 (x64),但如果不是,请尝试右键单击 EXE 并以管理员模式运行 win 7。

【讨论】:

    【解决方案5】:

    我有一个非常相似的问题。

    在您的应用程序池条目中查看此设置:

    • 转到高级设置。
    • 将“启用 32 位应用程序”更改为“真”。

    这对我有用!

    【讨论】:

      【解决方案6】:

      我会大胆猜测:

      • 您的 .NET Framework 安装中有一些奇怪的损坏
      • 有一些使用#if DEBUG 的调试/发布特定代码或其他与导致问题大不相同的代码。
      • 您最近还没有编译到 Release 中(尝试在编译最新代码之前将其更改为 Release,并确保没有错误)。

      这些是我唯一能想到的事情。

      【讨论】:

      • 我必须在我尝试运行它的 XP 机器上安装 .NET v4.0(上面没有 VS)但仍然一无所获,而且我认为我没有 2 个损坏的版本.NET 框架。我正在编译发布并得到 0 个错误和 0 个警告。
      【解决方案7】:

      我遇到了类似的问题,我在构造函数中引用的发布模式中缺少一个自定义文件夹。将文件夹添加到版本解决了这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-17
        • 2012-09-21
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多