wpf 能不能在winxp运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf 能不能在winxp运行相关的知识,希望对你有一定的参考价值。

参考技术A WPF可以运行在三种环境下面,如下:
1、 WPF桌面程序,此类型没有任何限制,可以是Windows可执行程序也可以是DLL动态链接库。
只需要.Net Framework 3.0以上版本支持即可!
2、 RIA分布式环境,服务器与客户端浏览器下载使用ActiveX插件方式解释执行的。微软更名为Silverlight,由于安全原因,微软提取精简版.Net Framework到Silverlight中独立运行,精简了很多类库。
3、浏览器承载的应用程序(称为 XAML 浏览器应用程序 (XBAP)),您可以创建能够使用超链接(Hyperlink 类)导航的页面 (Page) 和页函数 (PageFunction(Of (T)))。[2]
只要你的是.Net Framework 3.0以上就可以了。本回答被提问者采纳

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

【中文标题】程序不能在 Win XP 上运行,但会在 Win7 上运行【英文标题】:Program Does Not Run On Win XP But Will Run On Win7 【发布时间】:2013-01-15 23:14:07 【问题描述】:

所以我在 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(字符串 [] 命令行) 在 WinApp.My.MyApplication.Main(String[] Args) 内部异常:System.Reflection.TargetInvocationException Message=Exception 已被调用的目标抛出。 源=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) 在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(流序列化流,HeaderHandler 处理程序,布尔 fCheck,布尔 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) 在 System.Resources.RuntimeResourceSet.GetObject(字符串键,布尔忽略大小写,布尔 isString) 在 System.Resources.RuntimeResourceSet.GetObject(字符串键,布尔忽略大小写) 在 System.Resources.ResourceManager.GetObject(字符串名称,CultureInfo 文化,布尔值 wrapUnmanagedMemStream) 在 System.Resources.ResourceManager.GetObject(字符串名称) 在 WinApp.Form1.InitializeComponent() 在 WinApp.Form1..ctor() 内部异常:System.ComponentModel.Win32Exception Message=参数不正确 源 = System.Drawing 错误代码=-2147467259 本机错误代码=87 堆栈跟踪: 在 System.Drawing.Icon.Initialize(Int32 宽度,Int32 高度) 在 System.Drawing.Icon..ctor(SerializationInfo 信息,StreamingContext 上下文) 内部异常:

【问题讨论】:

考虑调试程序看看为什么会崩溃。 【参考方案1】:

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

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


编辑:

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

【讨论】:

@Muhnamana 编辑了我的答案 - 看起来您使用的是 XP 不支持的图标格式 这可能是我在表单上使用的图标吗?表格的左上角,按标题? @Muhnamana 是的。 Vista+ 支持比 XP 更好看的图标格式。如果您使用的是“现代”图标,则会导致 XP 出现异常。 向@Reed Copsey 致敬...您的图标建议一针见血...我恢复了默认图标,在 XP 机器上测试了该程序,并立即加载。 感谢您提供的帮助!

以上是关于wpf 能不能在winxp运行的主要内容,如果未能解决你的问题,请参考以下文章

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

WPF DataGridCheckBoxColumn 绑定值后不能选中以及 能选中后,不能进行属性通知

在WPF中怎么将ComboBox的下拉列表的数据进行绑定?还有能不能TXT文件中的列表?

winxp 操作系统下运行安装包,进程里看安装包已经启动了.但安装窗口不弹出?

Windows登录密码明文获取器

wpf调用上层文件夹里的图片不能正常显示的问题