我有引用2个dll的项目。如果所引用的dll不是强命名的,则资源加载正常并且我的用户控件正常工作。问题是我必须对引用的DLL进行强命名,现在我的用户控件给了我一个XamlParseException System.Windows.Markup.StaticResourceHolder,其内部为“无法加载文件或程序集”。我猜测app.xaml中的静态资源无法找到或加载,因此认为程序集未加载。有办法解决吗?
App.Xaml ...
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Dark.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.Grey.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Red.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
App.xaml.cs ...
public partial class App
{
protected override void OnStartup(StartupEventArgs e)
{
// referenced to MaterialDesignThemes.Wpf
MaterialDesignThemes.Wpf.DialogHost d = new MaterialDesignThemes.Wpf.DialogHost();
var b = d.IsOpen;
base.OnStartup(e);
var app = new MainWindow();
var context = new MainWindowVM();
app.DataContext = context;
app.Show();
}
}
答案 0 :(得分:1)
您可以启用融合日志记录并从该日志文件中获取提示。 How to enable assembly bind failure logging (Fusion) in .NET
答案 1 :(得分:0)
pack:// application:,,, / MaterialDesignThemes.Wpf ;组件-“ MaterialDesignThemes.Wpf”是程序集的名称吗?还是名称空间?
您可以尝试使用程序集(dll)名称作为参考吗?查看 Pack URI了解更多详细信息。