C# 什么会导致COM组件被注册(显示在visual studio参考COM部分),但在office ActiveX组件中不可见?

C# 什么会导致COM组件被注册(显示在visual studio参考COM部分),但在office ActiveX组件中不可见?,c#,com,activex,office-interop,com-interop,C#,Com,Activex,Office Interop,Com Interop,我正在尝试将自定义ActiveX组件添加到PowerPoint幻灯片中,我已经尝试了很多方法,我的PowerPoint版本是32位的,现在我正在尝试使其尽可能简单。该项目是AnyCPU和.NET4.7 VSTO不适合我的需要,所以这不是一个选项(据我所知,它不允许您向幻灯片添加自定义控件,这是我需要的) 在大会一级还宣布: [assembly: ComVisible(true)] 我在项目属性中禁用了COM注册,并添加了后期生成事件,认为这可能是一个位问题,因此该项目由.net 4 regas

我正在尝试将自定义ActiveX组件添加到PowerPoint幻灯片中,我已经尝试了很多方法,我的PowerPoint版本是32位的,现在我正在尝试使其尽可能简单。该项目是AnyCPU和.NET4.7

VSTO不适合我的需要,所以这不是一个选项(据我所知,它不允许您向幻灯片添加自定义控件,这是我需要的)

在大会一级还宣布:

[assembly: ComVisible(true)]
我在项目属性中禁用了COM注册,并添加了后期生成事件,认为这可能是一个位问题,因此该项目由.net 4 regasm(framework和framework 64)注册

该组件显示在visual studio中的“添加引用”中的COM组件列表中,但无论我做什么,它都不会在其他控件下的powerpoint Developer模式下显示(但其他控件工作正常,例如,我可以将媒体播放器添加到幻灯片中)

编辑:最终的目标是拥有一个可见的winform控件来承载WPF内容,但是一旦我有了一个用C#registered编写的activeX控件,我会感觉更自在,我从一开始就尝试着使用它,因为这方面的教程很少(而且几乎没有文档),除了我的控件随机出现在列表中并在添加错误时崩溃(powerpoint无法读取注册表)之外,所有操作都失败

我查看并复制了无效的页面列表:


@HansPassant抱歉发布得太早,试图给出一个最小的示例,但添加了相同的问题重新编译(甚至按原样下载和运行)我在编辑中给出的所有示例链接都应该是activexcontrols@HansPassant此外,我似乎无法在vba编辑器中引用它,就像我在教程中找到的那样(代码编辑器=>components=>components manager的列表为空,不知道如何注册TLB)。好吧,这些确实是ActiveX控件。它们很难正确操作,因为它们需要自定义[ComRegisterFunction]才能写入“Control”注册表项。因此,您将项目中最可能出错的部分从代码片段中删除。98.37%的几率是问题所在。@HansPassant我尝试了最新的一个(第二个链接),下载了它,按原样运行(以管理员身份运行VS的例外,这样它可以注册进行互操作),但控件没有显示,它包含注册/取消注册函数,是我能找到的唯一可行的最近的示例。我很想自己去挖掘这个问题,但遗憾的是,我在.net中找不到任何关于activex开发的东西。您是否看到第二个链接(vs 2017/office 2016)存在任何可能导致问题的错误?我无法从这里看到您的屏幕。十年前,我发布了自己的back to basics解决方案,还尝试了其他方法:
[assembly: ComVisible(true)]