Разработка InDesign Server с C# через COM

Я хотел бы разработать приложение на основе InDesign Server в C# поверх COM. На данный момент я борюсь с идеальной настройкой, так как не могу найти правильный ~interop.dll, на который я мог бы ссылаться из моего исходного репозитория (чтобы другие разработчики могли кодировать InDesign Server классы, структуры и т. д.). Я начинаю верить, что на самом деле такой вещи не существует, а это означает, что каждый разработчик должен будет установить trial версию InDesign Server и зарегистрировать ее в обёртке от Visual Studio до COM. Может ли кто-нибудь указать мне правильное направление?

Спасибо заранее!


person MonkeyCoder    schedule 25.10.2011    source источник


Ответы (2)


Вы можете сделать это так:

  1. Установите InDesign Server на одном компьютере с Visual Studio 2010.

  2. Если у вас Windows 7, перейдите в папку установки InDesign Server (например, C:\Program Files\Adobe\Adobe InDesign CS5.5 Server) и скопируйте *.dll из папки \omniorb в папку system32 (например, C:\Windows\System32) .

  3. Запустите InDesignServer.exe от имени администратора (например, C:\Program Files\Adobe\Adobe InDesign CS5.5 Server\InDesignServerService.exe).

  4. В каком-нибудь тестовом проекте в Visual Studio добавьте ссылку (вкладка COM) с именем Adobe InDesign Server CS5.5 Type Library — вы должны увидеть 2 версии, одна указывает на папку установки IDS, а другая — на каталог вашего профиля.

  5. Скомпилируйте проект, перейдите в \ProjectDir\obj\Debug\ и скопируйте Interop.InDesignServer.dll.

person IamDeveloper    schedule 25.10.2011
comment
Спасибо! Это именно то, что мне было нужно :) - person MonkeyCoder; 28.10.2011

Чтобы получить DLL, на которую я и моя команда ссылаемся в нашем проекте автоматизации Visual Studio 2010, InDesign CS5 Server, мы сделали следующее.

  1. Get a copy of the InDesign Server type library file "Resources for Visual Basic.tlb" from a machine on which InDesign Server is installed.
    • For hints on the .tlb file's location, see page 26 of Introduction to InDesign Server Development.
    • Обратите внимание, что, хотя мы этого не сделали, может быть лучше сначала сделать резервную копию, а затем удалить файл .tlb, а затем запустить InDesign Server, чтобы гарантировать, что InDesign Server регенерирует файл с актуальной информацией о типе. У нас возникли некоторые проблемы с несинхронизацией сигнатур методов. Эта проблема будет еще более серьезной, если вы используете надстройки InDesign Server (мы этого не делаем).
  2. Используйте программу импорта библиотеки типов от Microsoft для создания DLL.
    "[some path]\TlbImp.exe" "[some path]\Resources for Visual Basic.tlb" /out:InDesignServer.dll

Удачи!

person weir    schedule 25.10.2011
comment
Привет Вейр. Здесь та же проблема, однако теперь мы находимся в Windows X и VS 2019. TlbImp импортирует ресурс indesign, но все типы пропускаются. Интерфейс пропущен. Есть идеи? Благодарность - person Luc Debliquis; 16.10.2019