我已在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">
答案 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。