У меня есть проект консольного приложения .NET 8.0, C# 12.0, который имеет ссылку COM на Adobe Illustrator 2024 Type Library
. Описания членов и параметров не отображаются во всплывающих подсказках Intellisense для объектов, предоставляемых этой библиотекой. Можно ли дополнить проект соответствующим XML-файлом, содержащим сводные описания участников?
У меня есть длинные беседы с
Я создал файл-заглушку документации, Interop.Illustrator.xml
соответствующий файлу Interop.Illustrator.dll
, помещенному в тот же выходной каталог \bin\Debug\net8.0-windows\Interop.Illustrator.dll
. Но Intellisense не отображает описания. Например, во время разработки при наведении курсора на Application
введите в объявлении Application app;
, отображается interface Illustrator.Application
во всплывающей подсказке. И он отображает {System._ComObject}
во время выполнения, когда он остановлен для отладки.
<?xml version = "1.0" encoding = "utf-8" ?>
<doc>
<assembly>
<name>Interop.Illustrator</name>
</assembly>
<members>
<member name = "T:Illustrator.Application">
<summary>
The Adobe® Illustrator® application object, referenced using the pre-defined global app object, which contains all other Illustrator objects.
</summary>
</member>
<member name = "P:Illustrator.Application.ActiveDocument">
<summary>
The active (frontmost) document in Illustrator.
</summary>
</member>
</member>
</members>
</doc>
Сборка, Interop.Illustrator, Application
Декомпилирована
using System.Runtime.InteropServices;
namespace Illustrator;
[ComImport]
[CoClass(typeof(ApplicationClass))]
[Guid("95CD20AA-AD72-11D3-B086-0010A4F5C335")]
public interface Application : _Application {
}
Создание Interop.Illustrator.xml
и копирование его в папку \obj\Debug\<TargetFramework>\Interop.Illustrator.xml
(т. е. туда, где также копируется DLL библиотеки ссылочных типов, Interop.Illustrator.dll
), позволит Intellisense работать в том же проекте.
Вот фрагмент документации:
<?xml version = "1.0" encoding = "utf-8" ?>
<doc>
<assembly>
<name>Interop.Illustrator</name>
</assembly>
<members>
<member name = "T:Illustrator.Application">
<summary>
The Adobe® Illustrator® application object, referenced using the pre-defined global app object, which contains all other Illustrator objects.
</summary>
</member>
<member name = "P:Illustrator._Application.ActiveDocument">
<summary>
The active (frontmost) document in Illustrator.
</summary>
</member>
<member name = "P:Illustrator._Application.BrowserAvailable">
<summary>
If true, a web browser is available.
</summary>
</member>
</members>
</doc>
``
Старая печальная история 25 лет stackoverflow.com/questions/7012045/… технически возможно создать XML-файл, используемый .NET, из библиотеки типов (поскольку в Illustrator есть вспомогательные строки), но в . СЕТЬ.