C# 部署应用程序时,如何解决应用程序中的TypeInitialization异常?

C# 部署应用程序时,如何解决应用程序中的TypeInitialization异常?,c#,.net,deployment,event-log,typeinitializeexception,C#,.net,Deployment,Event Log,Typeinitializeexception,我的应用程序在我的机器上运行良好(当然/著名的遗言)。但是,当将其部署到网络上的另一台机器上时,它甚至不会启动。我在那台机器上运行了我的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 pro

我的应用程序在我的机器上运行良好(当然/著名的遗言)。但是,当将其部署到网络上的另一台机器上时,它甚至不会启动。我在那台机器上运行了我的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()
所以在我的主窗体的构造函数中有一些东西是问题所在,显然……我承认,这有点“忙”:

这些看起来有问题吗?(除了ToolStripControlHost之外,这些都是非常标准的东西)

至于框架版本:事件日志是否报告用于创建我的应用程序的框架版本,或尝试运行该应用程序的计算机上安装的框架版本?如果前者和后者没有安装该框架,那就是一个问题,对吗

因此,如果这是潜在的问题,我如何确定该计算机上安装了哪个版本的.NET运行时

更新 我不知道这是为什么,但只有在我右键单击并选择Run As(以自己的身份运行,因为我在该机器上没有任何“更特殊”的权限)时,我才能在远程/部署上运行应用程序后看到错误消息。当我这样做时,我得到了“无法找到运行此应用程序的运行时版本”

如果我只需双击该应用程序,它就会毫无怨言地死掉(无错误消息)。

查看

查看%WINDIR%\Microsoft.NET\Framework目录

以确定安装了哪些.NET版本

尝试在有问题的计算机上运行Fusion日志查看器。它将提供绑定失败的详细信息

确保以管理员身份运行它。如果你不这样做,它就会默默地失败

更新

基于您的错误“找不到运行此应用程序的运行时版本”,我建议您的应用程序目标框上没有安装相同版本的.NET。您是否使用上述步骤验证已安装的版本

也看到


我必须让该机器的主要用户检查;我放置.exe的地方是一个不包含Windows目录等的映射区域。注意,我不知道或无法访问映射目录所属的计算机上实际安装的内容。虽然exe在我的计算机上运行,但无论是从IDE还是从资源管理器运行,如果我在资源管理器中右键单击.exe并“以运行方式”的话,我收到相同的错误消息-找不到.NET版本????这些是我安装的.NET版本:1.0.3705;1.1.4322; 2.0.50727; 3.0; 3.5; 和4.0.30319。在IDE中,目标框架设置为“.NET framework 4客户端配置文件”
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();