我有一个现有的WPF应用程序,我想将其制作为Visual Studio扩展。
基本上,我有一个XAML窗口,在其中我使用了AvalonDock的Extended.Wpf.Toolkit库。这个应用程序完美地工作,没有任何问题。
我尝试在我的扩展项目中重用相同的窗口,但加载时出现了XamlParseException。
以下是失败的示例代码:
"该方法或操作未实现。"
编辑:
看起来在GAC中注册所有AvalonDock dll可以解决问题,但显然这不是一个可接受的解决方案...
我猜这些dll在作为扩展运行时没有正确注册,我可能需要以特定方式引用它们...目前,它们在扩展的csproj中被引用+CopyLocal=True。
编辑2:
添加了源代码以重现问题https://github.com/MrLuje/VSPackage_NotWorking 有两个项目:
- 一个WPF应用程序,在MainWindow中有一个工作代码 - 一个VS扩展,在Window1中有一个不工作的代码(在调试中,您需要单击工具>"我的命令名称")
基本上,我有一个XAML窗口,在其中我使用了AvalonDock的Extended.Wpf.Toolkit库。这个应用程序完美地工作,没有任何问题。
我尝试在我的扩展项目中重用相同的窗口,但加载时出现了XamlParseException。
以下是失败的示例代码:
<Window x:Class="Company.VisualStudioExtension.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
Title="Window2" Height="300" Width="300">
<Grid>
<xcad:DockingManager AllowMixedOrientation="True" BorderThickness="1">
<xcad:DockingManager.DocumentHeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Test" />
</StackPanel>
</DataTemplate>
</xcad:DockingManager.DocumentHeaderTemplate>
<xcad:LayoutRoot x:Name="_layoutRoot">
<xcad:LayoutPanel Orientation="Horizontal">
<xcad:LayoutAnchorablePane DockWidth="300">
</xcad:LayoutAnchorablePane>
</xcad:LayoutPanel>
</xcad:LayoutRoot>
</xcad:DockingManager>
</Grid>
异常情况在以下行中突出显示: <xcad:LayoutPanel Orientation="Horizontal">
"该方法或操作未实现。"
编辑:
看起来在GAC中注册所有AvalonDock dll可以解决问题,但显然这不是一个可接受的解决方案...
我猜这些dll在作为扩展运行时没有正确注册,我可能需要以特定方式引用它们...目前,它们在扩展的csproj中被引用+CopyLocal=True。
编辑2:
添加了源代码以重现问题https://github.com/MrLuje/VSPackage_NotWorking 有两个项目:
- 一个WPF应用程序,在MainWindow中有一个工作代码 - 一个VS扩展,在Window1中有一个不工作的代码(在调试中,您需要单击工具>"我的命令名称")