例外:该组件没有Window Xp中uri标识的资源

时间:2018-06-29 07:36:36

标签: c# wpf xaml

我已在VS2010上发布了该应用程序,它在Window7或10上运行良好,但是在Windows XP上运行时,该应用程序抛出此异常。 Ps:出现问题的dll是从本地动态加载的程序集。

这是初始化InitialComponent时引发异常的组件代码的一部分。

VsaTab是在其他程序集中定义的用户控件。

<tech:VsaTab x:Class="WT.Meter.Framework.Technologies.SampleVsaTab"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:tech="clr-namespace:WT.Meter.Framework.Technology;assembly=WT.Meter.Framework.Technology"
         xmlns:local="clr-namespace:WT.Meter.Framework.Technologies"
         xmlns:controls="clr-namespace:WT.Meter.Controls;assembly=WT.Meter.Controls"
         xmlns:localResource="clr-namespace:WT.Meter.Common.LocalResource;assembly=WT.Meter.Common.LocalResource"
         mc:Ignorable="d"
         d:DesignHeight="300"
         d:DesignWidth="300">

2 个答案:

答案 0 :(得分:1)

确保两个系统都运行相同版本的.NET框架。

答案 1 :(得分:0)

在您的tech:VsaTab UserControl后面的代码中,将InitializeComponent()方法包装在try..catch中,当引发异常时,它很可能向您显示有关未能加载哪个文件的更多详细信息。 。

我遇到了一个问题,即样式无法为应用程序正确加载-并使用错误的公共密钥引用了DLL。

所以在您的代码后面:

constructor() {
   try {
       InitializeComponent();
   catch (Exception ex) {
       // Place a debugger here to see the InnerExcepion
   }
}

您很可能会发现它正在尝试引用在计算机上找不到的某些Microsoft库-确保在WindowsXP计算机上安装了相同版本的DotNetFramework。