WPF DotNET应用程序将以调试模式运行,但.EXE将无法运行

时间:2010-11-17 16:53:18

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

我使用VS 2010在C#中编写了一个WPF应用程序。应用程序将在使用Visual Studio的调试模式下正常运行,但是当我从bin \ release文件夹运行.EXE时,没有任何反应。我没有收到来自Windows的任何错误消息,并且VS中没有错误或警告。我试图建立,重建和清理解决方案(按照每种可能的顺序),没有运气。我的解决方案包含2个项目,两个都使用.NET 4.0框架,我的PC上安装了.NET 4.0。我试过XP和Win7,但仍然没有。

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

我每次都在编译到Release文件夹,但我确实尝试将其更改为调试文件夹并清理/重建以查看是否会产生影响,并且它没有,所以我将其更改回来,再次尝试,但仍然没有。

任何想法?

8 个答案:

答案 0 :(得分:8)

以下是一些想到的想法

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

答案 1 :(得分:5)

我也遇到了上述问题,但其他解决方案都没有对我有用。

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

  

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

最后,当我禁用我的防病毒软件时,结果就解决了。我读过这个解决方案适用于McAfee的人;它也适用于我的环境,它有Avast。

答案 2 :(得分:2)

我假设您尝试过没有安装Visual Studio的计算机,也没有尝试用于开发的组件。

您只有一个选项:在导致问题的计算机上使用调试器启动应用程序并检查其中的异常。 (例如,使用WinDBG - 它轻松而简单。)

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

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

也可以使用:

答案 3 :(得分:2)

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

在App Pool条目中查看此设置:

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

这对我有用!

答案 4 :(得分:1)

(JaredPar)回答看起来正确(x64),但如果没有尝试右键单击EXE并在管理模式下运行win 7。

答案 5 :(得分:0)

我会疯狂地猜测:

  • 您的.NET Framework安装中有一些奇怪的损坏
  • 使用#if DEBUG或某些特定于调试/发行版的代码可能会导致问题。
  • 您最近还没有编译成Release(在编译最新代码之前尝试将其更改为Release,并确保没有错误)。

这是我能想到的唯一一件事。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

同样的问题。
 通过将缺少的dll添加到exe文件的新文件夹路径来解决 在我的例子中,WindowsApiCodePack的一些nuget dll和解决方案中的类dll。