对于已执行装配和mef模块物理分离的Mef供电应用程序,Wpf装配参考失败

时间:2012-08-01 15:01:28

标签: wpf .net-assembly assembly-resolution

我们有一个应用程序以及一个Visual Studio加载项,它们从位于用户计算机上其他位置的Mef程序集加载其(模块化)功能,而不是自行安装应用程序。

现在,我们的一位开发人员使用Wpf(使用Prism / System.Windows.Interactivity)为新模块创建UI组件,但不幸的是现在模块/ Xaml Parser抛出 XamlParseException 表示它无法加载System.Windows.Interactivity.dll 并且查看融合日志基本上显示其寻找/的路径是托管.exe运行的路径,而不是Mef模块(包含wpf / xaml ui)居住在。

System.Windows.Interactivity.dll确实驻留在Mef的模块/程序集目录中(在mef模块/程序集中引用并将本地集复制为true)所以我想知道如何为System指定命名空间。 Windows.Interactivity正确在下面,所以程序集加载确实看起来在程序集的目录中?

<UserControl x:Class="TestExplorer.Modules.DocumentChecks.DocumentChecksMainWindow"
             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:Command="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WPF4" 
             xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
             xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
             xmlns:Converter="clr-namespace:TestExplorer.Modules.DocumentChecks.Converter"
             xmlns:TreeView="clr-namespace:TestExplorer.Modules.DocumentChecks.TreeView" mc:Ignorable="d" 
             d:DesignHeight="500" d:DesignWidth="500">

这里有一个条目具有完全相同的问题(参见Prism assembly reference failure: System.Windows.Interactivity),但是添加prism / system.windows.interactivity作为托管应用程序参考的解决方案只是一种解决方法, - 它基本上会破坏应用程序的模块化目的(不管我们不能将system.windows.interactivity部署到devenv.exe的位置,以防用户使用我们的Visual Studio Addin ..并且devenv.exe是托管进程)。 / p>

0 个答案:

没有答案