1

因此,我在Win7上設計了一個使用Visual Studio 2010的程序。對於這個節目的緣故被稱爲將Test.exe程序無法在Win XP上運行,但會在Win7上運行

當其他用戶使用Win XP的試圖打開此程序,它會彈出一個剛剛在實時調試窗口,從不。我可以在我的Win7盒子和其他Win7盒子上打開程序,每次打開程序。

我不太知道從哪裏開始弄清楚爲什麼Win XP的機器無法運行該程序。

有什麼建議嗎?

編輯

這裏是異常錯誤,我們得到了,但在運行XP的機器上調試器。

System.InvalidOperationException了未處理 消息=時出錯創建的形式。有關詳細信息,請參閱Exception.InnerException。錯誤是:異常已被調用的目標拋出。 源= WinApp 堆棧跟蹤: 在WinApp.My.MyProject.MyForms.Create_ 實例 _ [T](T實例) 在WinApp.My.MyProject.MyForms.get_Form1() 在WinApp.My.MyApplication。 OnCreateMainForm() 在Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() 在Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() 在Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(字符串[] COMMANDLINE) 在WinApp。 My.MyApplication.Main(String []參數) InnerException:System.Reflection.TargetInvocationException Message = Exception ha被調用的目標拋出。 源= mscorlib程序 堆棧跟蹤: 在System.RuntimeMethodHandle._SerializationInvoke(IRuntimeMethodInfo方法,對象目標,SignatureStruct & declaringTypeSig,SerializationInfo中的信息,的StreamingContext上下文) 在System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(對象OBJ,SerializationInfo中的信息,的StreamingContext在System.Runtime.Serialization.ObjectManager.FixupSpecialObject(的ObjectHolder持有者) 在System.Runtime.Serialization.ObjectManager.DoFixups() 在System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler處理程序,__BinaryParser上下文) serParser,布爾fCheck,布爾isCrossAppDomain,IMethodCallMessage methodCallMessage) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(流serializationStream,HeaderHandler處理器,布爾FCHECK,布爾isCrossAppDomain,IMethodCallMessage methodCallMessage) 在System.Resources.ResourceReader.DeserializeObject(的Int32 typeIndex) 在System.Resources.ResourceReader。 _LoadObjectV2(POS的Int32,ResourceTypeCode & TYPECODE) 在System.Resources.ResourceReader.LoadObjectV2(POS的Int32,ResourceTypeCode & TYPECODE) 在System.Resources.ResourceReader.LoadObject在System.Resources.RuntimeResourceSet(POS的Int32,ResourceTypeCode & TYPECODE) .GetObject(String key,Boolean ignoreCase,Boolean isString) at System.Resources.RuntimeResourceSet.GetObject(String key布爾IGNORECASE) 在System.Resources.ResourceManager.GetObject(字符串名稱,CultureInfo的文化,布爾wrapUnmanagedMemStream) 在System.Resources.ResourceManager。GetObject的(字符串名稱) 在WinApp.Form1.InitializeComponent() 在WinApp.Form1..ctor() 的InnerException:System.ComponentModel.Win32Exception 消息=參數不正確 源= System.Drawing中 錯誤碼= -2147467259 NativeErrorCode = 87 堆棧跟蹤: 在System.Drawing.Icon.Initialize(的Int32寬度,高度的Int32) 在System.Drawing.Icon..ctor(SerializationInfo中的信息,的StreamingContext上下文) 的InnerException:

+0

考慮調試程序,看看它爲什麼崩潰。 –

回答

1

你會需要確保Windows XP系統具有相應的t版本他安裝了.NET Framework。

此外,在.NET Framework 4中有許多類型在XP上不起作用。例如,如果您使用MD5Cng類,則會看到(在文檔的「平臺」部分中),它只是支持Vista +,而不是XP。如果在XP上運行,在程序中使用此類將導致異常。


編輯:

從您的堆棧跟蹤,它看起來像你的表格(WinApp.Form1)使用的圖標(.ICO),這是一種格式,是Windows XP不支持。例如,如果您使用全綵色圖標,這可能會在XP上引發異常。確保它是一個256色的圖標文件,可以在XP上正常使用。

+0

所有機器都使用.NET Framework 4. – Muhnamana

+1

@Muhnamana編輯我的答案 - 它看起來像你使用的圖標格式,不支持在XP –

+0

這可能是我在窗體上使用的圖標?表格頂部左上角的標題? – Muhnamana

相關問題