0

我在 Visual Studio 2012 中编写了我的应用程序。我使用了对 OxyPlot 库 (dll) 的外部引用。我已经在一些装有 Windows 7 的机器上测试了我的应用程序(安装了相同的版本,Framework 4.0)。应用程序正常执行,但在装有 Windows XP 的机器上失败(也安装了框架 4.0)。
之后,我在装有 Windows 7 的机器上安装了 Framework 4.5,然后删除了 Framework 4.5(从控制面板 => 程序和功能)并重新安装了 Framework 4.0(独立安装程序)。我的应用程序没有运行并出现错误:CLR20r3.

Details:
Problem signature:
  Problem Event Name:   CLR20r3
  Problem Signature 01: rm.exe
  Problem Signature 02: 1.0.0.0
  Problem Signature 03: 525fd886
  Problem Signature 04: OxyPlot
  Problem Signature 05: 2013.1.100.1
  Problem Signature 06: 525451de
  Problem Signature 07: 218
  Problem Signature 08: 0
  Problem Signature 09: System.IO.FileLoadException
  OS Version:   6.1.7601.2.1.0.256.1
  Locale ID:    1049

毕竟我从我的项目中删除了 OxyPlot 库,重新编译它,我的应用程序在每台机器上正常启动。
为什么重新安装 Framework 4.0 会导致我的应用程序崩溃,为什么它不能在 Windows XP 上运行?我应该如何解决这个问题?Framework 4.0 和外部 OxyPlot dll 之间有什么关系?

4

2 回答 2

0

我遇到过同样的问题。我在安装特定的 .Net 4.0 安全更新后解决了这个问题:http : //support.microsoft.com/kb/2604121

我的 WPF 应用程序以 .Net Framework 4.0 为目标并使用 OxyPlot 2014.1.277.1。

对于这个应用程序,我还做了一些安装/卸载测试,每次删除 .Net Framework 4.0(这是安装程序完成的先决条件)。

当我运行应用程序时,出现以下错误:

详细信息:
问题签名:

Problem Event Name: CLR20r3  
 Problem Signature 01: seling.newmonitor.gui.exe  
 Problem Signature 02: 1.0.0.0  
 Problem Signature 03: 5379d9c4  
 Problem Signature 04: OxyPlot.Wpf  
 Problem Signature 05: 2014.1.277.1  
 Problem Signature 06: 534623ca  
 Problem Signature 07: 224  
 Problem Signature 08: 33  
 Problem Signature 09: System.IO.FileLoadException  
 OS Version: 6.1.7600.2.0.0.256.48  
 Locale ID: 1040  
 Additional Informations 1: 0a9e  
 Additional Informations 2: 0a9e372d3b4ad19135b953a78882e789  
 Additional Informations 3: 0a9e  
 Additional Informations 4: 0a9e372d3b4ad19135b953a78882e789  

然后我安装了 KB2487367 更新,但没有任何改变:应用程序已终止,显示上述错误。
安装 KB2604121 后,应用程序运行良好,我能够看到 OxyPlot 图。
这些更新是由 Windows Update 提出的。

这是我在安装 KB2604121 之前遇到的错误堆栈:

应用程序:Seling.NewMonitor.GUI.exe 框架版本:v4.0.30319
描述:进程因未处理的异常而终止。
异常信息:System.IO.FileLoadException 堆栈:

at OxyPlot.PlotModel.Update(Boolean)  
at OxyPlot.Wpf.Plot.UpdateModel(Boolean)  
at OxyPlot.Wpf.Plot.InvalidatePlot(Boolean)  
at OxyPlot.Wpf.Plot.PlotLoaded(System.Object, System.Windows.RoutedEventArgs)  
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)  
...  
at System.Windows.Application.Run(System.Windows.Window)  
at Seling.NewMonitor.GUI.App.Main()  

希望这可以帮助!

于 2014-05-20T09:56:50.750 回答
0

I OxyPlot 不支持 .Net 3.5,仅支持 4 及更高版本。

Windows XP 不支持 .Net 4.5,仅支持 4(假设您有 service pack 3)。

通常,VS2012 会安装 .Net4.5 库。

可能有一些问题。(在同一台 Win 7 机器上安装 VS2010 和 2012 会导致 Visual Studio 2010 在使用设计器时中断)。您可能会遇到类似的问题。

另一方面,如果您的目标是 Windows XP,那么您的安全赌注是构建您的应用程序以 .Net 2 为目标...(该死,XP 很旧)...

于 2013-10-20T06:42:35.970 回答