问题标签 [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 投票
2 回答
3308 浏览

c# - 如何使用 VSTO 2005 SE 使用 C# Excel 加载项创建 Excel 2003 UDF

我看到一篇关于使用 VBA 在 VSTO 托管代码中创建 Excel UDF 的文章:http: //blogs.msdn.com/pstubbs/archive/2004/12/31/344964.aspx

但是,我想在使用 VSTO 2005 SE 的 C# Excel 插件中使用它,有人可以帮忙吗?

我尝试了 Romain 指出的技术,但是在尝试加载 Excel 时出现以下异常:

无法找到或无法加载自定义程序集。您仍然可以编辑和保存文档......

细节:

0 投票
4 回答
262 浏览

.net - 插件不适用于 vb.net express

哪些插件不能与 vb c# studio express 一起使用?

0 投票
2 回答
2322 浏览

vb.net - Microsoft Office .NET 插件的单元测试

有没有人对 Office 托管应用程序加载项进行单元测试有任何建议?我正在使用 NUnit,但我在使用 MSTest 时遇到了同样的问题。

问题是在 Office 应用程序(在我的例子中是 Word)中加载了一个 .NET 程序集,我需要一个对 .NET 程序集实例的引用。我不能只实例化该对象,因为它不会有 Word 的实例来做事。

现在,我可以使用 Application.COMAddIns("Name of addin").Object 接口来获取引用,但这会得到一个通过 RequestComAddInAutomationService 返回的 COM 对象。到目前为止,我的解决方案是让该对象为我想要测试的真实 .NET 对象中的每个方法都有代理方法(全部在条件编译下设置,因此它们在发布的版本中消失)。

COM 对象(一个 VB.NET 类)实际上具有对真实加载项实例的引用,但我尝试将其返回给 NUnit,但我得到了一个不错的 p/Invoke 错误:

System.Runtime.Remoting.RemotingException :此远程代理没有通道接收器,这意味着服务器没有注册的服务器通道正在侦听,或者此应用程序没有合适的客户端通道与服务器通信。在 System.Runtime.Remoting.Proxies.RemotingProxy.InternalInvoke(IMethodCallMessage reqMcmMsg, Boolean useDispatchMessage, Int32 callType) 在 System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(IMessage reqMsg) 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData&msgData, Int32 类型)

我尝试使主加载项 COM 可见并且错误更改:

System.InvalidOperationException :由于对象的当前状态,操作无效。在 System.RuntimeType.ForwardCallToInvokeMember(字符串成员名称、BindingFlags 标志、对象目标、Int32 [] aWrapperTypes、MessageData 和 msgData)

虽然我有一个变通办法,但它很混乱,并且将大量测试代码放在真实项目而不是测试项目中——这并不是 NUnit 真正的工作方式。

0 投票
2 回答
2663 浏览

c# - 嵌入式 Outlook 视图控件

我正在尝试在 Windows XP SP3 和 Internet Explorer 7 上使用 Visual Studio 2008 制作 Outlook 2003 加载项。

我的加载项正在使用自定义文件夹主页,该主页显示我的自定义表单,其中包含 Outlook 视图控件。

每次尝试设置 OVC 的文件夹属性时,我都会收到带有“HRESULT 中的异常:0xXXXXXXXX”描述的 COM 异常。错误码是一个随机数,每次都不一样。这不是第一次访问控件的属性,在此之前,已经设置了 View 和 ViewXML 属性。控件被标记为安全的脚本。

我正在使用活动资源管理器的 CurrentFolder.FolderPath 属性的值,这似乎是正确的:

这是堆栈跟踪的顶部:

仅当文件夹位于非默认 PST 文件中时才会发生这种情况。更改为默认 PST 文件中的文件夹不会产生异常。

我必须强调,在我去度假之前一切都很好:)。我不在时,Windows XP 似乎安装了一些更新,这些更新改变了 Internet Explorer 或 Outlook 2003 的默认安全性。

在另一台(虚拟机)上安装了 Office 2007 和 Internet Explorer 6,没有任何更新,一切正常。

0 投票
5 回答
1988 浏览

c# - 如何以编程方式检查项目中是否使用了变量?

在 VB.NET(或 C#)中,如何以编程方式确定类 helper.vb 中的公共变量是否在项目中的任何位置使用?

0 投票
2 回答
3279 浏览

c# - 未知的 Outlook 邮件项条目 ID

我的 Outlook 加载项处理 Inspector 对象的 NewInspector 事件,以便显示邮件项目的自定义表单。

我可以获得作为事件参数传递的 Inspector 对象的 CurrentItem 的 EntryID。但是,问题是当前邮件项的 EntryID 比它应该的短,并且是未知的。我知道创建的每个邮件项目的每个 EntryID,并且我可以看到特定邮件项目的 EntryID 错误。

怎么了?

0 投票
8 回答
2167 浏览

c# - 发布 COM 组件

当您不再需要通过调用 Marshal.ReleaseComObject(..) 时,是否真的有必要从 Office PIA 释放 COM 组件?

我在网上找到了关于这个主题的各种相互矛盾的建议。在我看来,由于 Outlook PIA 总是返回对其接口的新引用作为其方法的返回值,因此没有必要显式释放它。我对吗?

0 投票
5 回答
9228 浏览

excel - 如何仅使用 .xla 文件中的代码从 Excel VBA 压缩文件?

我需要能够 GZip 压缩 Excel VBA 函数中的文件。具体来说,我需要能够使用“放气”算法。

有没有办法做到这一点而不必执行命令行应用程序?由于不依赖外部工具,代码将更加健壮。

理想情况下,代码将使用预安装的 VBA 或 COM 库函数——我不想自己实现这个逻辑或安装 DLL 等。

如果可能的话,我希望该功能的安装与将 .xla 文件添加到可用的 Excel 加载项一样简单。不需要 DLL、EXE、注册表项等。

编辑我可以使用.NET GZipStream 来做到这一点吗?

0 投票
3 回答
590 浏览

c# - 如何使用 .NET 3.0 中的插件框架?

.NET 3.0 有一些关于如何为您自己的应用程序创建和使用插件的更新。我读到了一些你必须为插件和主机应用程序之间的通信创建的“管道”,但找不到关于它的更多信息。

您将如何使用 .NET 3.0/3.5 在应用程序中创建加载项功能?

必要时附加信息:宿主应用程序是使用 WPF 和一些通用功能制作的。每个加载项都应将自己的注册选项卡添加到给定容器中,并使用自己的内容(按钮、文本字段等)和扩展主机应用程序的方法。

0 投票
4 回答
799 浏览

vb.net - Visual Studio 2005 for VB 中的重构功能

有人知道 Visual Studio 2005 的一个很好的免费插件,可以在 VB 中获得重构功能吗?