我正在使用ClickOnce部署我的应用程序.
我想注册文件关联,但我无法使其工作:我应该在发布选项的文件关联部分中使用什么作为ProgID?
我想通过后期绑定访问COM库.
我怎样才能找到它的progID?
Type oClassType = Type.GetTypeFromProgID("THE MISSING PROGID");
Run Code Online (Sandbox Code Playgroud) 我正在用 C# 创建一个 COM 组件。安装时,其 ProgID 表示为其<Namespace>.<Classname>
. 但我想把它改成<Vendor>.<ClassName>.<VersionNumber>
.
我怎样才能在 C# 中做到这一点。我正在使用 Visual Studio 2010。
我正在尝试调用从Silverlight公开为COM的各种API,只有当它们是已注册的自动化服务器的一部分且具有相应的progid时才可能.例如,Word将是"Word.Application".如何获取所有已注册服务器的列表及其各自的编程?
我找到了组件服务管理单元,但我找不到我所知道的那些程序.编辑:管理单元看起来应该在那里,我找到了一个属性窗口,显示某些COM +和DCOM应用程序的应用程序ID,但我找不到明显的服务器,如Word.COM +树只包含六个条目.
所以我使用NetOffice创建了一个outlook插件.
在插件入口点上它有这样的东西:
[GuidAttribute("d7066ab2-ac03-431a-bea5-b70d3efab2a5"), ProgId("OutlookPlugin"), ComVisible(true)]
现在我明白了这个ComVisible
位将库设置为ComVisible.我假设这样我可以通过程序集信息创建单个类ComVisible而不是整个库 - >使程序集COM-Visible.
但我不明白的是什么GuidAttribute
,并ProgId
用于?
我正在研究一组本质上是插件的东西,它们是 COM 服务器。每个插件都有一组由另一个组件管理的配置数据,配置数据的主键是插件的 ProgID。当插件需要访问配置项时,它会进行调用并传入其 ProgID 和所需属性的名称。这是一个遗留设计,我必须保持向后兼容性。
我现在需要加载每个插件的多个实例,每个实例都有一组不同的配置数据。我正在考虑的解决方案是为每个插件创建多个唯一的 ProgID,每个 ProgID 将指向插件的单个 ClsId。因此,插件的每个实例都将通过其 ProgID 进行标识,ProgID 仍用作配置数据的主键,并且所有内容都 100% 向后兼容。
所以,问题:
progid ×6
com ×5
.net ×2
automation ×1
c# ×1
clickonce ×1
com-interop ×1
deployment ×1
guid ×1
late-binding ×1
ole ×1
windows ×1