我已经使这个程序在Windows 7中正常运行,但它似乎无法在Windows XP中运行,因为它立即崩溃了程序已经关闭了bla bla发送错误报告'来自Windows的消息。 经过一些谷歌搜索后,我找到了一个解决方案,让自己成为事件日志中的例外日志。 这是结果:
编辑:新的异常日志(使用未处理的异常过滤器)
例外:Het doel van een aanroep heeft een uitzondering veroorzaakt。 bij System.RuntimeMethodHandle._SerializationInvoke(Object target, SignatureStruct&安培; declaringTypeSig,SerializationInfo info, StreamingContext context)bij System.RuntimeMethodHandle.SerializationInvoke(Object target, SignatureStruct declaringTypeSig,SerializationInfo info, StreamingContext context)bij System.Reflection.RuntimeConstructorInfo.SerializationInvoke(对象 target,SerializationInfo info,StreamingContext context)bij System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(对象 obj,SerializationInfo info,StreamingContext context)bij System.Runtime.Serialization.ObjectManager.FixupSpecialObject(的ObjectHolder 持有者)bij System.Runtime.Serialization.ObjectManager.DoFixups()
BIJ System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler,__BinaryParser serParser,Boolean fCheck,Boolean isCrossAppDomain,IMethodCallMessage methodCallMessage)bij System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(流 serializationStream,HeaderHandler handler,Boolean fCheck,Boolean isCrossAppDomain,IMethodCallMessage methodCallMessage)bij System.Resources.ResourceReader.DeserializeObject(Int32 typeIndex)
bij System.Resources.ResourceReader.LoadObjectV2(Int32 pos, ResourceTypeCode&安培; typeCode)bij System.Resources.ResourceReader.LoadObject(Int32 pos, ResourceTypeCode&安培; typeCode)bij System.Resources.RuntimeResourceSet.GetObject(String key,Boolean ignoreCase,Boolean isString)bij System.Resources.RuntimeResourceSet.GetObject(String key,Boolean ignoreCase)bij System.Resources.ResourceManager.GetObject(String name,CultureInfo culture,Boolean wrapUnmanagedMemStream)bij System.Resources.ResourceManager.GetObject(String name)bij STREDIT.frmMain.InitializeComponent()bij STREDIT.frmMain..ctor()
bij STREDIT.Program.Main()
我找到了坠毁的地方:
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.menuStrip1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); // Here
this.MainMenuStrip = this.menuStrip1;
this.MinimumSize = new System.Drawing.Size(726, 220);
有谁知道为什么会这样?
提前致谢
答案 0 :(得分:1)
图标类型是否正确,有一个正确处理它的解决方案:
访问如下图标:
this.Icon = global::AEM.UI.Properties.Resources.your_icon_name;
答案 1 :(得分:1)
Windows XP不支持PNG图标。为应用程序创建一个非PNG ico,应用程序运行良好:)。
答案 2 :(得分:0)
我在Win7上有完全相同的症状(带有ICO图像),我发现了一种解决方法:在InitializeComponent()
之前添加一个小延迟,让时间让应用程序加载资源。
public MyForm()
{
Thread.Sleep(100); // delay for loading ressources
InitializeComponent();
}
在我的情况下,不是由图像格式引起的,因为它在开发的几个月中与该图像一起工作正常。它确实是由资源加载器引起的。