问题标签 [add-in]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
377 浏览

c# - 是否有可用的 .NET 工具/插件可以让您轻松地重新排列类中区域、子类、函数和成员变量的顺序?

我正在寻找一个 .NET 加载项,它读取当前文档窗口的内容,列出所有区域、子项、函数和模块级变量的标题声明,并提供一个简单的上移/下移按钮重新排列他们的顺序。

0 投票
6 回答
1066 浏览

sql-server - 是否可以编写 MS SQL Server 插件?

是否可以编写 MS SQL Server 插件?我正在考虑一些与 SQL Server Enterprise Manager 可用的数据库服务器集成的应用程序。

0 投票
5 回答
2633 浏览

.net - 什么插件/工作台框架是 Eclipse RCP 的最佳 .NET 替代品?

我正在寻找一个可与 Eclipse 插件框架相媲美的基于插件的应用程序框架,在我看来,它包括:

  1. 一个核心插件管理框架(Equinox / OSGI),它提供了声明扩展端点的能力,然后发现和加载为这些端点提供服务的插件。(这与依赖注入不同,但不可否认,差异是微妙的 - 配置高度分散,存在版本控制问题,可能涉及在线插件存储库,对我来说最重要的是,用户应该很容易添加插件,无需了解底层架构/配置文件)
  2. 多层插件,提供基本的工作台外壳,支持并发、命令、首选项表、菜单、工具栏、键绑定等。

这只是触及了 RCP 的表面,它本身旨在作为您的应用程序的基础,您可以通过编写/组装更多插件来构建它。


以下是我这两天从网上搜集到的……

据我所知,.NET 世界中没有任何东西可以远程接近 Eclipse RCP for Java 的健壮性和成熟度,但是有几个竞争者在 #1 或 #2 方面做得很好。

(我还要提一下,我还没有对 WinForms 和 WPF 做出最终决定,所以我也在尝试了解任何候选框架中的 UI 耦合程度。我也想知道平台耦合和源代码许可)

我必须说,开源的东西通常文档较少但更容易理解,而 MS 的东西通常有更多的文档但更难访问,所以对于许多 MS 技术,我想知道它们实际上做了什么,在实际意义上。

这些是我找到的库:

夏普发展

我看到的第一件事是 SharpDevelop,它以基本的方式同时执行 #1 和 #2(没有侮辱 SharpDevelop,这是令人钦佩的 - 我的意思是比 Eclipse RCP更基本)。然而,SharpDevelop 是一个应用程序而不是一个框架,并且存在基本的假设和限制(即在某种程度上与 WinForms 耦合)。尽管如此,还是有一些关于 CodeProject 的文章解释了如何将其用作应用程序的基础。

系统插件

System.Addins 似乎旨在提供一个强大的加载项加载框架,具有一些复杂的选项,用于加载具有不同信任级别的程序集,甚至运行进程外。它似乎主要是基于代码的,而且代码量很大,有许多程序集用于隔离版本控制问题。使用 Guidance Automation 生成大量代码。

到目前为止,我还没有找到很多 System.AddIns 文章来说明如何使用它来构建类似 Eclipse RCP 的东西,而且许多人似乎对它的复杂性感到不安。

单声道插件

Mono.Addins 似乎受到 System.Addins、SharpDevelop 和 MonoDevelop 的影响。它似乎提供了 System.Addins 的基础知识,插件加载选项不太复杂,但更简单,具有基于属性的注册、XML 清单和在线插件存储库的基础设施。

它有一个很好的常见问题解答和文档,以及一组相当健壮的示例,这些示例真正有助于描绘如何开发像 SharpDevelop 或 Eclipse 这样的架构。这些示例将 GTK 用于 UI,但框架本身并未与 GTK 耦合。所以它似乎很好地完成了#1(加载项加载),并为#2(工作台框架)指明了方向。看起来 Mono.Addins 是从 MonoDevelop 派生的,但我还没有真正研究过 MonoDevelop 是否提供了一个好的核心工作台框架。

托管可扩展性框架

这是目前每个人都在谈论的内容,并且它的作用正在慢慢变得清晰,但我仍然很模糊,即使在阅读了几篇关于 SO 的帖子之后。官方的说法是它“可以与 System.Addins 并存”。但是,它没有引用它,并且似乎重现了它的一些功能。因此,在我看来,它是 System.Addins 的更简单、更易于访问的替代方案。

它似乎更像 Mono.Addins,因为它提供了基于属性的连接。它提供了可以基于属性或基于目录的“目录”。它似乎没有提供任何 XML 或基于清单的连接。到目前为止,我还没有找到太多的文档,而且这些示例似乎有点“神奇”,更让人联想到基于属性的 DI,尽管澄清说 MEF 不是 DI 容器。

它的许可证刚刚开放,但它确实引用了 WindowsBase——不确定这是否意味着它与 Windows 耦合。

卫城

我不确定这是什么。是 MEF,还是即将到来的?

复合应用程序块

WPF 和 Winforms 复合应用程序块似乎提供了更多的工作台框架。我对这些几乎没有经验,但它们似乎在很大程度上依赖于 Guidance Automation,显然与 UI 层相结合。有几个将 MEF 与这些应用程序块相结合的示例。


我已经尽我所能在这里回答我自己的问题,但我真的只是在摸索表面,而且我对这些框架中的任何一个都没有经验。希望你们中的一些人可以添加有关您所使用的框架的更多细节。如果我们最终能得到某种比较矩阵,那就太好了。

0 投票
1 回答
2744 浏览

ms-word - 如何在不丢失格式的情况下更改 Word.Range 文本

任何人都知道如何更改 Word.Range 对象的文本但仍保持其格式?例如,如果我有“this text ”并将其更改为“that txt ”,则 txt 仍将是粗体。

我正在寻找一种方法来更改范围的整个文本,而不仅仅是一个单词,因为我从独立的 API 获取新文本,我可以假设新文本和旧文本具有相同的数字的话。

这是我到目前为止得到的:

但是由于某种原因,它只在第一次 Execute 中成功,因为范围选择仍然在找到的单词上。

编辑:知道了,每次执行后,我都恢复了 Range 的原始结束位置。

谢谢。

0 投票
2 回答
1454 浏览

vsto - How can I improve cold startup performance for a VSTO2SE MS Office add-in?

If you create a simple "Hello World" VSTO2SE add-in targeting Microsoft Office Excel 2003, it takes 15 seconds to load on a cold startup. During that time, Excel is completely unresponsive.

The cold-startup time is always poor in Excel 2003. I have seen one test machine where the startup time is instant in Excel 2007, but all my other test machines take 15 seconds to initialize. (test environment - windows xp pro + VSTO2SE runtime + XP SP3)

How can this performance be improved?

Things I've already tried with no success:

  1. Disasble CRL (certificate revoke list) checking - this doesn't seem to help, plus I can't expect users to do this.

  2. Use NGEN to create native assemblies.
    a) It seems that Office 2003 never uses the native assemblies. b) My office 2007 test client that starts fast, does so even with IL assemblies. c) Even if I NGEN my entire depencency tree, there are still VSTO dependencies that may not have native images.

  3. Delay load the add-in - this is the workaround "stock response" i get from Microsoft. The thing is, my add-in is launched from a menu item - how can I delay load the add-in and still get my menus? I could use a VB6 add-in to draw the menus and forward the calls via interop, but then why would I even write a VSTO add-in in the first place?

Edit - Yes, that is the only line on the "connection" event in the add-in. (actually messagebox).. It takes a full 15 seconds before the message box appears. – J Davis

0 投票
10 回答
39609 浏览

visual-studio - 禁用但不卸载 Resharper 4.x 及更高版本

关于如何禁用但不卸载 Resharper 4.x 或更高版本的任何想法?

0 投票
1 回答
1484 浏览

c# - 如何在 Word 共享加载项中挂钩按键事件?

我需要能够在将所有按键事件传递给 Word 文档之前获取它们。我想对键进行特殊处理,根据插件所处的模式,这些键可能会或可能不会发送到 Word 文档。我只想要属于文档的按键事件,我不想为弹出窗口或其他对话框挂钩事件。

我读过一些关于智能标签的东西,但不知道它们是如何工作的。

如果我必须对文档窗口进行子类化,我怎样才能获得窗口句柄?

0 投票
2 回答
1157 浏览

.net - 在 System.AddIn 中托管 WPF 时出现 NullReferenceException

我们正在开发一个 WPF 应用程序,该应用程序使用 System.AddIn 框架来托管显示其他 WPF 内容的加载项。一切似乎都运行良好,但一夜之间,应用程序抛出了以下 NullReferenceException:

正如你所看到的,我们的代码都没有在堆栈跟踪中,所以我没有地方修复任何东西。有人对可能的解决方法有任何想法吗?

谢谢您的帮助!

0 投票
1 回答
1909 浏览

wcf - 可扩展(插件/插件)WCF 服务主机的想法?

我正在寻找有关如何构建可扩展 WCF 服务器(具有动态加载的服务)的建议,最好使用 System.Addins 或 MEF。

服务器应托管实现最小“插件”API(StartService/StopService/GetStatus?/etc)的任何 WCF 服务(包含在 DLL 程序集中,在运行时加载)。

这篇文章是一个好的开始。一些要讨论的目标和要点:

  • 为每个服务使用/不使用隔离的 AppDomain?
  • 如何配置每个服务(端点、传输协议)?XML-config 文件还是更好的选择?
  • 程序集的延迟/延迟加载(当服务请求到达时)?可能的?有用?如何?
  • 磁盘上的文件更改时重新加载程序集(对开发环境有用);
  • 磁盘配置更改时服务重启;

当然,其他想法总是受欢迎的;)

0 投票
2 回答
1095 浏览

visual-studio-2008 - SharePoint Designer 有什么好的替代品吗?

如果您曾经使用过 SharePoint Designer,您就会知道它很糟糕。特别糟糕。

有什么好的替代品吗?如果我想构建自己的 Visual Studio 加载项连接器以连接到它,是否有任何必须考虑的因素?

你知道我应该注意什么吗?

我只是讨厌缓慢和 SPD (SharePoint Designer) 只是不断地重新整理我所有的东西的方式。