gpt4 book ai didi

wpf - XamlParseException 在 VS 扩展项目中使用 Extended.Wpf.Toolkit

转载 作者:行者123 更新时间:2023-12-01 17:17:55 30 4
gpt4 key购买 nike

我有一个现有的 WPF 应用程序,我想从中创建一个 VisualStudio 扩展。

基本上,我有一个 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 中引用

EDIT2

添加源代码以重现问题 https://github.com/MrLuje/VSPackage_NotWorking

有2个项目:

  • 在 MainWindow 中带有工作代码的 WPF 应用
  • Window1 中带有非工作代码的 VS 扩展(在调试中,您需要单击“工具”>“我的命令名称”)

最佳答案

我找到了一个更简单的解决方案,“ProvideBindingPath”,这会将您当前的扩展文件夹添加到 dll 的解析文件夹中。

 [ProvideBindingPath]
public sealed class MainWindowPackage : Package
{
}

基于以下目的的解决方案:VSIX - Cannot load file or assembly of a referenced dll

添加到 gac 的解决方案不会“按原样”工作...VSIX 扩展不允许在 gac 上注册,也许可以运行 gacutil 来解决。

关于wpf - XamlParseException 在 VS 扩展项目中使用 Extended.Wpf.Toolkit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014982/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com