【发布时间】:2014-05-13 00:19:17
【问题描述】:
我为 Windows 7 开发了一个程序,它可以在我的计算机上正常运行(在发布模式下)。但是,当我将项目文件夹复制并粘贴到我的外部 HDD 并在另一台计算机上尝试时,它“运行”但没有真正显示出来。我将尝试发布相关代码:
class App : Application
{
[STAThread()]
static void Main()
{
new App();
}
/// <summary>
/// Starts application with splash screen
/// </summary>
public App()
{
StartupUri = new System.Uri("SplashScreen.xaml", UriKind.Relative);
Run();
}
}
即使这个屏幕永远不可见,我的 MessageBox 也会显示出来。
//constructor
public SplashScreen()
{
//generated method
InitializeComponent();
System.Windows.MessageBox.Show("WHY ME??");
mw = new MainWindow();
mw.Show();
}
在启动屏幕之后,主窗口应该打开,但它没有并且这个 MessageBox 永远不会出现。
public MainWindow()
{
//Windows generated
InitializeComponent();
System.Windows.MessageBox.Show("WHY ME??");
}
正如我所提到的,程序在发布和调试模式下都按预期运行,但是当我将它带到另一台计算机时,它只显示“为什么是我??”一次而不是两次应该的。有什么想法吗?
【问题讨论】:
-
程序还在任务管理器中运行吗?如果不是,您可能有错误。依赖或路径错误
-
尝试检查 Windows 事件日志(win+R -> eventvwr -> Windows 日志 -> 应用程序)。通常当应用程序崩溃时,就像你的情况一样 - 崩溃信息应该在那里。
-
您要将代码移动到的另一台机器是什么?他们都是x64的吗?你在什么配置下构建?你有外部参考吗?
-
您还应该在启动代码中添加日志,并在 mw.Show() 周围添加一个又大又丑的 try/catch 块。