我的应用程序在我的机器上运行良好(当然/著名的遗言)。但是,将其部署到网络上的另一台机器时,它甚至不会启动。我在那台机器上运行了我的 EventLog 实用程序,它告诉我:
Type:Error
Source: .NET Runtime
Time Generated: 06/12/2012 15:35:12
Message: Application: duckbilledPlatypus.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.TypeInitialization
Exception
Stack:
at duckbilledPlatypus.PlatypusMainForm..ctor()
at duckbilledPlatypus.Program.Main()
所以问题出在我的主窗体的构造函数中,显然……我承认,这有点“忙”:
InitializeComponent();
foreach (string arg in Environment.GetCommandLineArgs())
{
if (arg == "-DEBUG")
{
InDebugMode = true;
break;
}
}
SuspendLayout();
tsch = new ToolStripControlHost(dateTimePickerScheduleDate);
toolStripPlatypusMain.Items.Add(tsch);
CreateTableLayoutPanelAndChildren();
LimitPlatypusIDTextBoxesToOneChar();
ShareEventsAmongDynamicTextBoxes();
SetAllPlatypusDataControlsReadOnly();
ResumeLayout();
这看起来有问题吗?(除了 ToolStripControlHost 之外,这些都是非常标准的东西)。
现在关于框架版本:事件日志报告用于创建我的应用程序的框架版本,还是安装在尝试运行应用程序的机器上的框架版本?如果前者,而后者没有安装该框架,那是个问题,对吧?
因此,如果这可能是问题所在,我如何确定该机器上安装了哪个版本的 .NET 运行时?
更新
我不知道为什么会这样,但是只有当我右键单击并选择 Run As(并以我自己的身份运行,因为我没有该机器上的“更多特殊”权限)。当我这样做时,我得到“无法找到运行此应用程序的运行时版本”。
如果我只是 2-click 应用程序,它会在没有呜咽声的情况下死掉(没有错误消息)。