我编写了一个自定义程序集,让我可以在设计时查看我的 Prism 区域。
我的程序集所做的一件事是它将从启动项目中加载程序集。(使用 Prism 的模块目录。)
对于一个简单的应用程序来说效果很好。
但是当我试图把它放在我的真实应用程序中时,它会破坏设计时视图(运行时工作正常)。
它说它找不到包含我的项目使用的 ResourceDictionary 的文件。
它还说它找不到该 ResourceDictionary 使用的程序集之一。
我的猜测是从启动位置拉组件会导致此问题。
但这对我来说没有意义,因为以下原因:
ResourceDictionary 在我的视图中加载如下:
<UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/DataProviders.xaml"/> </ResourceDictionary.MergedDictionaries> ...
但加载它的文件不包含在输出中。所以必须编译成dll。
这使我认为这应该可行:<ResourceDictionary Source="/MyProj;component/DataProviders.xaml" />
但这也不起作用。(我在有和没有斜线的情况下都试过了。)
如果是位置问题(因为我是从启动项目而不是输出位置(bin\debug)加载,那么它为什么找不到它认为丢失的其他程序集?
。
那个程序集在输出中两个项目(启动和相关项目)的文件夹。确定它是位置,我尝试了源中的绝对路径。像这样:
<ResourceDictionary Source="C:/src/solution/Regns/MyProj/DataProviders.xaml"/>
这也不起作用。(它仍然说它找不到资源文件。)
考虑到这一点,我决定我对 ResourceDictionarys 的工作方式了解不够。
谁能告诉我为什么我的 ResourceDictionary 不会加载。