程序不能在Win XP上运行但会在Win7上运行

时间:2013-01-31 18:38:18

标签: vb.net windows-7 windows-xp stack-trace invalidoperationexception

所以我在Win7盒子上使用Visual Studio 2010设计了一个程序。为此,该程序称为Test.exe

当另一个用户使用Win XP尝试打开此程序时,它会弹出一个Just In Time Debugger窗口并且永远不会运行。我可以在我的Win7盒子和其他Win7盒子上打开程序,每次打开程序。

我不确定从何处开始弄清楚为什么Win XP机器无法运行此程序。

有什么建议吗?

修改

这是我们在XP机器上运行调试器时遇到的异常错误。

System.InvalidOperationException未处理   Message =创建表单时出错。有关详细信息,请参阅Exception.InnerException。错误是:调用目标抛出了异常。   来源= WinApp   堆栈跟踪:        在WinApp.My.MyProject.MyForms.Create_ Instance _ [T](T Instance)        在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(String [] commandLine)        在WinApp.My.MyApplication.Main(String [] Args)   InnerException:System.Reflection.TargetInvocationException        Message =调用目标抛出了异常。        来源= mscorlib程序        堆栈跟踪:             在System.RuntimeMethodHandle._SerializationInvoke(IRuntimeMethodInfo方法,Object target,SignatureStruct& declaringTypeSig,SerializationInfo info,StreamingContext context)             在System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj,SerializationInfo info,StreamingContext context)             在System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder)             在System.Runtime.Serialization.ObjectManager.DoFixups()             在System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler,__BinaryParser serParser,Boolean fCheck,Boolean isCrossAppDomain,IMethodCallMessage methodCallMessage)             在System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream,HeaderHandler handler,Boolean fCheck,Boolean isCrossAppDomain,IMethodCallMessage methodCallMessage)             在System.Resources.ResourceReader.DeserializeObject(Int32 typeIndex)             在System.Resources.ResourceReader._LoadObjectV2(Int32 pos,ResourceTypeCode& typeCode)             在System.Resources.ResourceReader.LoadObjectV2(Int32 pos,ResourceTypeCode& typeCode)             在System.Resources.ResourceReader.LoadObject(Int32 pos,ResourceTypeCode& typeCode)             at System.Resources.RuntimeResourceSet.GetObject(String key,Boolean ignoreCase,Boolean isString)             at System.Resources.RuntimeResourceSet.GetObject(String key,Boolean ignoreCase)             at System.Resources.ResourceManager.GetObject(String name,CultureInfo culture,Boolean wrapUnmanagedMemStream)             at System.Resources.ResourceManager.GetObject(String name)             在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 info,StreamingContext context)             的InnerException:

1 个答案:

答案 0 :(得分:1)

您需要确保Windows XP系统安装了适当版本的.NET Framework。

此外,有许多类型在.NET框架4中不适用于XP。例如,如果您使用MD5Cng类,您将看到(在文档的“平台”部分)它只支持Vista +,而不是XP。在程序中使用此类将导致异常,如果它在XP上运行。


编辑:

从堆栈跟踪中,您的表单(WinApp.Form1)使用的是Icon(.ico),这是Windows XP不支持的格式。例如,如果使用全彩图标,则可能会在XP上引发异常。确保它是256色图标文件才能在XP上正常工作。