所以我在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:
答案 0 :(得分:1)
您需要确保Windows XP系统安装了适当版本的.NET Framework。
此外,有许多类型在.NET框架4中不适用于XP。例如,如果您使用MD5Cng类,您将看到(在文档的“平台”部分)它只支持Vista +,而不是XP。在程序中使用此类将导致异常,如果它在XP上运行。
编辑:
从堆栈跟踪中,您的表单(WinApp.Form1
)使用的是Icon(.ico),这是Windows XP不支持的格式。例如,如果使用全彩图标,则可能会在XP上引发异常。确保它是256色图标文件才能在XP上正常工作。