.NET 4.0应用程序在没有Visual Studio的计算机上抛出异常

Ezi*_*Ezi 2 .net vb.net visual-studio-2010 visual-studio

我的应用程序在安装了Visual Studio的所有计算机上运行良好,但它在没有Visual Studio的计算机上不起作用.

应用程序在事件查看器中启动此消息时崩溃:

Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.TypeInitializationException
Stack:
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(System.String[])
at IssueTrackingSystem.My.MyApplication.Main(System.String[])
Run Code Online (Sandbox Code Playgroud)

我用一个按钮测试了一个简单的应用程序,结果相同.

错误

更新:

新错误

Han*_*ant 8

你需要得到异常的InnerException来真正知道出了什么问题.单击项目+属性,应用程序选项卡,单击查看应用程序事件按钮 在编辑器窗口上方的左上方组合框中选择"(MyApplication Events)",在右侧组合框中选择"Startup".

这会添加Startup事件处理程序.使它看起来类似于:

    Private Sub MyApplication_Startup(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup
        AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf KaboomHandler
    End Sub

    Private Sub KaboomHandler(sender As Object, e As UnhandledExceptionEventArgs)
        MsgBox(e.ExceptionObject.ToString())
        Environment.Exit(1)
    End Sub
Run Code Online (Sandbox Code Playgroud)

您现在将获得包含内部异常的堆栈跟踪.这应该足以找到炸弹的静态构造函数.发布您在问题中看到的堆栈跟踪,如果这没有帮助.


Dav*_*son 5

System.TypeInitializationException当任何类型的构造函数抛出未捕获并正确处理的异常时,将抛出A. 字段的静态初始化也会抛出此异常.您需要确定它是哪种类型并进行相应的调试.最有可能的是,正如其他海报所说,你没有在目标机器上配置/部署的东西.

我已经看到这种情况发生在尝试访问不存在的配置文件条目,库不存在时等等.直到你得到详细的异常(你应该能够检查内部异常),它会更多难以缩小.

更新:

请在app.config中尝试此操作,因为错误消息中的文章建议:

<configuration>
   <runtime>
      <NetFx40_LegacySecurityPolicy enabled="true"/>
   </runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)