我在主项目 PrismDashboard 中遇到了这个异常:
Source\PrismDashboard\bin\Debug\PrismDashboard.vshost.exe System.Windows.Markup.XamlParseException 发生 HResult=-2146233087 消息=无法加载文件或程序集“Microsoft.Expression.Interactions,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。该系统找不到指定的文件。
这是带有 Bootrstrapper 和 Shell 的项目。发生这种情况是因为 Shell 正在使用另一个项目中的 ModuleA:
源\模块\模块A
这需要参考Microsoft.Expression.Interactions
,我可以看到这个 DLL 存在于:
源\Modules\ModuleA\bin\Debug
我没有收到编译错误,我收到了运行时错误。ModuleA 视图将被注入到 Shell 区域,并且此视图需要 Microsoft.Expression.Interactions,它在 ModuleA 项目中被引用,但在具有 Bootstrapper 和 Shell 的主项目中没有。
我不想在我的主项目中添加对其他项目所需的 DLL 的引用。尝试在 ModulaA 中设置嵌入互操作类型,但出现错误:
错误 1 无法嵌入程序集“c:\Program Files (x86)\Microsoft SDKs\Expression\Blend.NETFramework\v4.0\Libraries\Microsoft.Expression.Interactions.dll”中的互操作类型,因为它缺少“ImportedFromTypeLibAttribute”属性或“PrimaryInteropAssemblyAttribute”属性 c:\Program Files (x86)\Microsoft SDKs\Expression\Blend.NETFramework\v4.0\Libraries\Microsoft.Expression.Interactions.dll ModuleA 错误 2 无法嵌入程序集 'c: 中的互操作类型: \Program Files (x86)\Microsoft SDKs\Expression\Blend.NETFramework\v4.0\Libraries\Microsoft.Expression.Interactions.dll' 因为它缺少 'GuidAttribute' 属性 c:\Program Files (x86)\Microsoft SDKs \Expression\Blend.NETFramework\v4.0\Libraries\Microsoft.Expression.Interactions.dll ModuleA