Настройка проекта сценария экспорта kofax
Для моего первого сценария экспорта я взял пример KCEC и документацию APIRefExport.chm, чтобы создать свой проект, заменив код примера своим собственным.
Я хотел бы создать чистый скрипт экспорта с нуля.
Я создал новый проект библиотеки классов и назвал его EmptyExportScript
(Заполнитель). Целевой структурой является .Net 4. Цель платформы - x86, а выходной путь - .....\Program Files (x86)\Kofax\CaptureSS\ServLib\Bin\
, При отладке я хотел бы запустить модуль администрирования, поэтому я установил этот путь .......\Program Files (x86)\Kofax\CaptureSS\ServLib\Bin\
,
Опция "Сделать сборку COM-Visible" отмечена, и я добавил Kofax.ReleaseLib.Interop.dll к ссылкам.
Для KfxReleaseScript.cs я добавил этот код
[ClassInterface(ClassInterfaceType.None)]
[ProgId("KFXTS.EmptyExportScript.KfxReleaseScript")]
public class KfxReleaseScript
{
public ReleaseData documentData;
// public KfxReturnValue OpenScript()
// public KfxReturnValue ReleaseDoc()
// public KfxReturnValue CloseScript()
}
Для KfxReleaseScriptSetup.cs я добавил этот код
[ClassInterface(ClassInterfaceType.None)]
[ProgId("KFXTS.EmptyExportScript.KfxReleaseScriptSetup")]
public class KfxReleaseScriptSetup
{
public ReleaseSetupData setupData;
// public KfxReturnValue OpenScript()
// public KfxReturnValue CloseScript()
// public KfxReturnValue RunUI()
// public KfxReturnValue ActionEvent(KfxActionValue actionID, string data1, string data2)
}
Наконец я добавил Form
в проект при запуске пользовательского интерфейса.
Для регистрации я добавил EmptyExportScript.inf
с этим содержанием
[Scripts]
Empty Export
[Empty Export]
SetupModule=EmptyExportScript.dll
SetupProgID=KFXTS.EmptyExportScript.KfxReleaseScriptSetup
SetupVersion=10.2
ReleaseModule=EmptyExportScript.dll
ReleaseProgID=KFXTS.EmptyExportScript.KfxReleaseScript
ReleaseVersion=10.2
SupportsNonImageFiles=True
SupportsKofaxPDF=True
RemainLoaded=True
SupportsOriginalFileName=False
При сборке проекта.dll и.inf файл попадают в каталог kofax bin.
Я узнал, что другие сценарии также содержат файлы.pdb и.dll.config.
Как мне их получить?
При попытке установить пользовательский сценарий я могу добавить его в диспетчер установки сценария, но не могу установить его. Там нет ничего, чтобы установить, поэтому я думаю, что мне не хватает файлов.pdb и.dll.config.
Что-то еще отсутствует?
Спасибо за помощь:)
2 ответа
Кофакс не нужен pdb
файл, но они удобны, если вы хотите отладить свой соединитель и присоединить его к процессу release.exe (подробнее о них здесь).
Я бы не рекомендовал менять сам путь вывода на Capture\Bin
, а лучше создать событие после сборки:
Например, следующая строка копирует все необходимые файлы в отдельную папку под CaptureSS\Bin
папка:
xcopy "$(TargetDir)*" "C:\Program Files (x86)\Kofax\CaptureSS\ServLib\Bin\SmartCAP\kec\SmartCAP.KEC.Template\" /Y /S
Иметь dll.config
Файл возможен, но редко. Я бы порекомендовал хранить данные, относящиеся к процессу, в пользовательском строковом объекте хранения соответствующего определения класса пакета (что дает дополнительное преимущество, заключающееся в том, что вы можете просто импортировать / экспортировать определение вместе с классом пакета, и что вы можете отображать и иметь его). поменял его в форме настройки). Сказав все это, вернемся к вашей первоначальной проблеме - разъем не может быть установлен.
Видимость COM
Сборка должна быть видимой для COM, но вы упомянули, что она была. Ради полноты вот что вам нужно будет сделать. Обратите внимание, что GUID должен быть уникальным (актуально только если вы скопировали существующее решение):
Если вы устанавливаете коннектор на другой компьютер, вам необходимо сначала зарегистрировать его с помощью regasm.exe - вот пример:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" SampleExport.dll /codebase /tlb:SampleExport.tlb
идентификаторы ProgID
Затем ваш INF-файл должен содержать точные идентификаторы ProgID:
[Scripts]
SampleExport
[SampleExport]
SetupModule=SampleExport.dll
SetupProgID=SampleExport.Setup
SetupVersion=11.0
ReleaseModule=SampleExport.dll
ReleaseProgID=SampleExport
ReleaseVersion=11.0
SupportsNonImageFiles=True
SupportsKofaxPDF=True
Оба ваши ReleaseScript.cs
а также ReleaseSetupScript.cs
файлам нужен правильный атрибут, например:
[ProgId("SampleExport")]
public class ReleaseScript
Если это все еще не работает, пожалуйста, предоставьте нам подробное сообщение об ошибке (можно найти в CaptureSV\Logs).
Мне пришлось изменить формат файла с UTF-8 на UTF-8 без спецификации.
Это сработало для меня.