C# 应用程序100%在调试中启动,但不是在现实生活中

C# 应用程序100%在调试中启动,但不是在现实生活中,c#,.net,wpf,visual-studio-2012,mvvm,C#,.net,Wpf,Visual Studio 2012,Mvvm,我在网上到处找了找,但没有找到任何能帮助我的东西 我用我心爱的VS 2012运行Windows 8,我的电脑采用4.5框架 我已经为4.0框架开发了一个WPF C#应用程序 当我在VS 2012的调试模式下运行它时,它运行得非常完美,但当我发布到我的发布文件夹,运行setup.exe并尝试运行该应用程序时,什么都没有发生。它不会给我任何错误消息,但也不会显示任何窗口,就好像它没有做任何事情一样 这是一些人遇到的问题吗?如果是,我该如何补救 你需要什么信息?我正在通过引导程序和MVVM模型运行应用

我在网上到处找了找,但没有找到任何能帮助我的东西

我用我心爱的VS 2012运行Windows 8,我的电脑采用4.5框架

我已经为4.0框架开发了一个WPF C#应用程序

当我在VS 2012的调试模式下运行它时,它运行得非常完美,但当我发布到我的发布文件夹,运行setup.exe并尝试运行该应用程序时,什么都没有发生。它不会给我任何错误消息,但也不会显示任何窗口,就好像它没有做任何事情一样

这是一些人遇到的问题吗?如果是,我该如何补救


你需要什么信息?我正在通过引导程序和MVVM模型运行应用程序;没什么奢侈的。

这可能是一件非常棘手的事情。您有许多选择:

首先,打开任务管理器,然后查看启动发布的应用程序时是否出现新流程。如果没有为您的应用程序添加任何进程,那么您确实存在问题。但是,如果某个进程确实出现,则可以将Visual Studio附加到此进程以对其进行调试。请参阅MSDN上的页面以获取此方面的帮助

如果你做不到这一点,那么你就必须在没有帮助的情况下找到有问题的代码。您需要编辑代码,以弹出包含各种对象值的消息框,查看其中是否有异常的
null
。你可以用常识来解释这个。。。这永远不会给您带来问题:

int value = 0;
鉴于这更有可能:

FileStream fs = File.Open(path, FileMode.Open, FileAccess.Write, FileShare.None);
在后一种情况下,请在后面添加如下内容:

MessageBox.Show(string,Format("path value: {0}", path));

最后要指出的一点是,如果主
窗口
没有出现,那么您的问题很可能在构造函数中。如果你不能调试你发布的版本,那么我真的希望你好运找到问题。。。这可能非常困难。

尝试重新启动clickonce进程。尝试检查系统事件日志以查找错误。如果出了什么问题,肯定有什么信息。我已经编辑了你的标题。请参阅“”,其中的共识是“不,他们不应该”。我的事件日志显示我有一个:“故障模块名称:KERNELBASE.dll”错误您是否在与VS2012相同的机器上运行它?还是另一个与.NET4不同的版本?原因是.NET4.5将WPF更新为4.5,即使您的目标是.NET4。。如果您在WPF中使用4.5功能,这可能会导致问题。我最终不得不重写整个解决方案,现在它正在工作。我想我漏掉了一个我看不见的小错误。