Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何向.net Com可调用包装器添加帮助?_C#_Intellisense_Chm_Ccw - Fatal编程技术网

C# 如何向.net Com可调用包装器添加帮助?

C# 如何向.net Com可调用包装器添加帮助?,c#,intellisense,chm,ccw,C#,Intellisense,Chm,Ccw,我们有一个.net程序集,它也需要被一个.net敌对但对COM友好的语言/开发环境使用。net程序集中嵌入了带有标准xml注释功能的方法/属性/类帮助。所需要的是一种将此帮助从.net API传播给程序集的COM Callbable包装的用户的方法。。。更新.net API时无需任何额外维护 这似乎是一件显而易见的事情,但不幸的是,MS CCW生成不会生成帮助文件或识别任何程序集属性来指定帮助文件链接。很显然,像Sand Castle这样的工具可以从程序集的intellisense注释生成程序集

我们有一个.net程序集,它也需要被一个.net敌对但对COM友好的语言/开发环境使用。net程序集中嵌入了带有标准xml注释功能的方法/属性/类帮助。所需要的是一种将此帮助从.net API传播给程序集的COM Callbable包装的用户的方法。。。更新.net API时无需任何额外维护

这似乎是一件显而易见的事情,但不幸的是,MS CCW生成不会生成帮助文件或识别任何程序集属性来指定帮助文件链接。很显然,像Sand Castle这样的工具可以从程序集的intellisense注释生成程序集的帮助文件,但问题仍然是如何将CCW链接回该帮助文件

我认为这在逻辑上是可能的,比如:

1) 从程序集生成类型库

2) 将类型库转换为IDL(OLEView似乎是如何实现的)

3) 将helpfile、helpcontext和helpstring属性添加到IDL文件:

 a) how to extract the help context IDs from the Sand Castle generated help file?

 b) how to decide where these IDs belong in the IDL?
4) 从IDL重新编译TLB

5) 使用引用帮助的TLB重新生成CCW

不幸的是,从零开始处理这个过程(特别是a和b)比在CCW周围创建和维护一个手动创建的特定于环境的包装(包括.net帮助的手动副本)所节省的工作量还要多


是否有人有任何想法或知道任何已经解决此问题的工具?

使用[Description]属性作为。Free Pascal的CHML工具可以尝试重建帮助上下文信息。使用其“extractalias”选项。注意:这些是与.hlp兼容的数字ID。真正的chm上下文主要是chm(+chm文件名)中的相对路径,可以使用ms-its://样式的url包含这些路径。