【问题标题】:SharpDevelop: developing pluginsSharpDevelop:开发插件
【发布时间】:2015-10-02 13:45:53
【问题描述】:

我想实现 SharpDevelop 与 Visual Studio 中缺少的一个小功能(获取 WPF 控件的默认 Styles 和 ControlTemplates)。我面临的问题是,我不明白我想扩展的 WpfDesign.Designer 插件的公共 API 表面是什么。

插件是否有既定的机制来声明其他插件可以以何种方式扩展它们(SharpDevelop 架构中明确允许插件扩展其他插件)?

【问题讨论】:

    标签: c# wpf plugins add-in sharpdevelop


    【解决方案1】:

    公共 API 表面是 WpfDesign.Designer 程序集中的所有公共类型。您可以直接引用它们并在插件的 .addin 文件中指定这一点,以便在加载插件之前加载设计器插件。

    <Manifest>
        <Identity name="YourAddInId"/>
        <Dependency addin="ICSharpCode.AvalonEdit" requirePreload="true"/>
    </Manifest>
    

    使用公共类型是扩展现有插件的最简单方法。您引用了设计器程序集,但没有将它们本地复制到插件的输出目录。

    还有其他方法可以使用插件系统中的扩展路径来扩展 SharpDevelop。这允许您拥有不依赖于彼此的插件。据我所知,WPFDesigner 插件没有定义任何扩展点/路径,因此我将直接引用设计器程序集并使用它们。

    另外一种要考虑的方法是将更改直接添加到 SharpDevelop 源代码并提交拉取请求,以便它们可以直接包含在 SharpDevelop 中。但是,插件可能有助于作为概念证明。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-27
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      相关资源
      最近更新 更多