c# - 什么可能导致 COM 组件被注册(在 Visual Studio 参考 COM 部分中显示)但在 Office ActiveX 组件中不可见?
问题描述
我正在尝试将自定义 ActiveX 组件添加到 PowerPoint 幻灯片中,我一直在尝试很多东西,我的 powerpoint 版本是 32 位,现在我正在尝试使其尽可能简单。该项目是 AnyCPU 和 .net 4.7。
VSTO 不符合我的需要,所以这不是一个选项(据我所知,它不允许您向幻灯片添加自定义控件,我需要)
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[Guid("87622EEA-5A6A-4F1B-A56A-AC0F88603EF6")]
public interface IBasicActiveXSampleInterface
{
string testOne();
}
[ClassInterface(ClassInterfaceType.None)]
[Guid("B2B334B3-2785-40C6-A3B9-1CEF9D7D4D94")]
[ProgId("EKATONXSampleProg")]
public class BasicActiveXSample : IBasicActiveXSampleInterface
{
public string testOne()
{
return "test 1234";
}
}
还在装配级别声明:
[assembly: ComVisible(true)]
我在项目属性中禁用了注册 COM 并添加了构建后事件,认为这可能是一个位问题,因此项目由 .net 4 regasm(框架和框架 64)注册。
该组件显示在 COM 组件列表中,在 Visual Studio 中添加引用,但无论我做什么,它都不会在其他控件下的 powerpoint 开发人员模式下显示(但其他控件工作得很好,我可以将媒体播放器添加到幻灯片例如)。
编辑:最终目标是拥有一个可见的 winform 控件来托管 WPF 内容,但是一旦我注册了一个用 C# 编写的 activeX 控件,我就会有宾至如归的感觉,我尝试从一开始就遵循稀缺的教程(并且几乎没有文档)关于这个主题,除了我的控件随机显示在列表中并且在添加错误说 powerpoint 无法读取注册表时崩溃之外,所有的都失败了。
我查看并复制无济于事的页面列表:
https://codedocu.com/Details_mobile?d=2382&z=1&t=Create+C%23+COM+Control+for+Office
解决方案
推荐阅读
- javascript - 当您控制台记录它时,Javascript Date 如何打印出一个字符串?
- sql - SQL Server 浏览器无法启动
- regex - 在字符序列上使用 grep 案例场景
- firebase - firebase 规则,以确保评论的所有者有权读取、写入和任何其他用户只能喜欢它。number_check 是用户表
- docker - 如何连接到 mac 上的 docker 桌面虚拟机?(docker 桌面版 2.4)
- api - Acumatica - 通过 REST 过滤通用查询
- javascript - 单击后如何使我的文本区域消失
- prolog - 逻辑连接符和量词只是逻辑编程范式中运算符的另一个术语吗?
- php - 将 Woocommerce 产品类别缩略图大小设置为与产品大小不同
- hook - 为什么 setState 钩子在地图中只设置最后一个对象?