C# 如何以编程方式加载/卸载Word加载项?
我想知道如何在Word中以编程方式加载和卸载VSTO插件。我将Word 2007和VS2010与C#一起使用 我认为使用Microsoft.Office.Interop.Word.COMAddins和.Addins属性可能会有一些运气,但是.Addins属性提供了一个空列表,COMAddins是不透明COM对象的集合C# 如何以编程方式加载/卸载Word加载项?,c#,.net,ms-word,vsto,add-in,C#,.net,Ms Word,Vsto,Add In,我想知道如何在Word中以编程方式加载和卸载VSTO插件。我将Word 2007和VS2010与C#一起使用 我认为使用Microsoft.Office.Interop.Word.COMAddins和.Addins属性可能会有一些运气,但是.Addins属性提供了一个空列表,COMAddins是不透明COM对象的集合 A建议使功能区菜单不可见,但实际上我想完全卸载外接程序。我有类似的要求,并通过一些小技巧实现了它 我有一个名为AddinLauncher(没有功能区)的加载项,它将查找用户类型并启
A建议使功能区菜单不可见,但实际上我想完全卸载外接程序。我有类似的要求,并通过一些小技巧实现了它 我有一个名为AddinLauncher(没有功能区)的加载项,它将查找用户类型并启动或关闭另一个加载项 此代码是在AddinLauncher Addin启动事件期间调用的
foreach (COMAddIn addin in Globals.ThisAddin.Application.COMAddins)
{
if (**specify your own condition**)
{
addin.Connect = true;
}
}
部署中需要进行以下更改
AddinLaucher加载项的LoadBehavior为3,所有其他加载项为0。
关于LoadBehavior的更多信息如果你能找到一种用C#代码实现的方法,我会非常惊讶——要做到这一点,需要将每个插件隔离到单独的AppDomain中,而我认为Office插件不存在这种情况(你可以通过列举所有AppDomain来检查自己)。您好,我发现你甚至可以执行“重新加载”对于外接程序:`public void ReloadVstoAddIn(){var addIn=Application.COMAddIns.Item(“”;addIn.Connect=false;//卸载外接程序addIn.Connect=true;//再次触发AddInBase.Startup事件}`。当我测试我安装的解决方案时,我的外接程序保持未连接状态,因此您似乎无法重新加载自己的外接程序。对不起,Jörg