You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否为Adobe Illustrator COM库增强IntelliSense显示成员摘要?

为COM互操作程序集添加XML文档以增强IntelliSense

可以通过XML文档文件为COM互操作程序集增强IntelliSense,但需要修正几个关键问题才能生效:

1. 修复XML文档的语法错误

你提供的XML文件中存在多余的</member>标签(在ActiveDocument成员之后),这会导致XML解析失败,Visual Studio无法加载该文档。删除多余的标签即可。

2. 适配COM接口的继承结构

从反编译代码可知,Illustrator.Application接口仅继承自_Application,并未直接定义成员——所有属性和方法实际都在_Application基接口中。因此XML文档需要针对基接口的成员编写路径:

  • 类型成员路径:T:Illustrator._Application(而非T:Illustrator.Application,后者仅作为CoClass入口)
  • 属性成员路径:P:Illustrator._Application.ActiveDocument(而非P:Illustrator.Application.ActiveDocument)

3. 确保XML文件的放置位置正确

XML文档必须与**项目引用的Interop.Illustrator.dll**在同一目录(而非仅输出目录)。Visual Studio设计时的IntelliSense会读取引用路径下的XML,而非编译输出目录。可以:

  • 将Interop.Illustrator.xml复制到COM引用生成Interop.dll的目录(通常是项目obj子目录或引用指定的本地路径)
  • 在项目中添加XML文件,设置其“复制到输出目录”属性为“始终复制”

修正后的XML示例

<?xml version="1.0" encoding="utf-8" ?>
<doc>
    <assembly>
        <name>Interop.Illustrator</name>
    </assembly>
    <members>
        <member name="T:Illustrator.Application">
            <summary>
                Adobe® Illustrator®应用程序对象,可通过预定义的全局app对象引用,包含所有其他Illustrator对象。
            </summary>
        </member>
        <member name="T:Illustrator._Application">
            <summary>
                Illustrator应用程序核心接口,定义所有应用级操作与属性。
            </summary>
        </member>
        <member name="P:Illustrator._Application.ActiveDocument">
            <summary>
                Illustrator中当前激活的(最前端)文档。
            </summary>
        </member>
    </members>
</doc>

额外说明

  • 修改XML后,重启Visual Studio或清理并重建项目,触发IntelliSense重新加载文档。
  • 调试时显示{System._ComObject}是正常行为,这是.NET对COM对象的包装表现,不影响设计时的IntelliSense提示。

内容的提问来源于stack exchange,提问作者CalvinDale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 02:34:58