Ссылка COM InDesign в объекте, но не в каталоге bin
Мое приложение (C#, .NET 4.0, VS2010) ссылается на COM DLL (библиотека типов Adobe InDesign CS6). Когда я собираю приложение, tlibimp создает файл "interop.indesign.dll" и появляется в obj\x86\release. Тем не менее, он не отображается в bin\x86\release.
Только две опции доступны для справки. Для Embed Interop-types установлено значение true (ложь приводит к ошибкам), а для параметра Isolated установлено значение false.
Теперь вот проблема. В приложении ранее использовалась библиотека типов InDesign CS4. По требованию заказчика он был увеличен до CS6. Приложение работает, если InDesign CS4 и CS6 установлены на ПК. Это не работает только с установленным CS6. Похоже, что до сих пор есть ссылка на CS4, но я на 100% уверен, что все удалил. Все ссылки указывают на библиотеку типов CS6, проверяя, что файл (ы).csproj не показал никаких нежелательных вещей.
Есть ли способ исправить это, кроме восстановления всей папки проекта с нуля? Любая помощь высоко ценится.
1 ответ
После еще одного исследования я нашел решение для моей проблемы. Библиотека типов InDesign CS6 не была правильно зарегистрирована. Я думаю, что виноват установщик InDesign (или сам InDesign).
Чтобы устранить эту проблему, запустите следующую команду из командной строки:
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ regtlibv12.exe "C: \ ProgramData \ Adobe \ InDesign \ Version 8.0 \ de_DE \ Поддержка сценариев \8.0\Resources for Visual Basic.tlb"
После этого библиотека типов была правильно зарегистрирована и приложение работало должным образом.