2014-01-30 48 views
0

我在Visual Studio 2012中開發了一個Windows應用程序,目標框架爲.NET 4.我將它部署在Windows XP SP2計算機上。它曾經工作得很好,但現在Windows XP已重新安裝,應用程序無法正常工作。我已經安裝在XP的.NET框架4,但它顯示了以下錯誤(事件查看器):Windows應用程序中的System.Runtime.InteropServices.COMException

Application: SGate.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to an unhandled exception. 
Exception Info: System.Runtime.InteropServices.COMException 
Stack: 
    at System.RuntimeTypeHandle.CreateInstance(System.RuntimeType, Boolean, Boolean, Boolean ByRef, System.RuntimeMethodHandleInternal ByRef, Boolean ByRef) 
    at System.RuntimeType.CreateInstanceSlow(Boolean, Boolean, Boolean) 
    at System.RuntimeType.CreateInstanceDefaultCtor(Boolean, Boolean, Boolean, Boolean) 
    at System.Activator.CreateInstance(System.Type, Boolean) 
    at SGate.Gate..ctor() 
    at SGate.Program.Main() 

我用Google搜索的解決方案,我想通了異常的意思是「當一個無法識別的HRESULT是引發的異常從COM方法調用返回「。但是這並沒有幫助。有誰知道是什麼原因導致這個錯誤?

Program.Main():

static class Program 
    { 
     /// <summary> 
     /// The main entry point for the application. 
     /// </summary> 
     [STAThread] 
     static void Main() 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new Gate()); 
     } 
    } 

門CTR()和相關功能:

public Gate() 
     { 
      InitializeComponent(); 
      ClearForm();   
     } 

private void ClearForm() 
     { 
      try 
      { 
       leaveApply = new EmployeeLeaveApplyBO(); 
       CurrentPageIndex = 1; 
       dataGridView1.DataSource = null; 
       lblFromDate.Text = ""; 
       lblLeaveReason.Text = ""; 
       lblLeavType.Text = ""; 
       lblName.Text = ""; 
       lblEmpCode.Text = ""; 
       lblThumbID.Text = ""; 
       lblToDate.Text = ""; 
       lblStatus.Text = "STATUS"; 
       lblStatus.ForeColor = Color.Black; 
       groupBox3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); 
       groupBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); 
      } 
      catch (Exception e) 
      { 
       LogUtil.LogError(e.ToString()); 
      } 
     } 
+0

你有任何的代碼? –

+0

添加了一些錯誤似乎發生的代碼。 –

+0

嘗試從該窗體中刪除控件,直到找出哪一個是製造商 –

回答

0

嘗試調試是什麼原因造成這個錯誤。 嘗試打破引發異常的情況。

步驟: - 轉到Debug> Exceptions ...並使用Find ...選項來定位System.Runtime.InteropServices.COMException。選中該選項以在拋出時中斷,然後調試應用程序。

你應該能夠找到問題所在。

你可以嘗試這些,如果你不知道到底是什麼原因造成

1.Try running visual studio or application as "Run as administrator". 
2.Check which platform did you set during build ("AnyCPU, x86, x64") 

希望這有助於

親切的問候

Raghu.M

+0

謝謝Raghu,但它在Visual Studio和Windows 7中工作正常。在調試模式下不會引發異常。只有當我在Windows XP中打開該exe文件時纔會出現該問題。 –

+0

你試過用管理員權限運行你的exe文件嗎? – Raghurocks

+0

是的,我做到了。它沒有工作。 –

相關問題