настройка проекта сценария экспорта kofax - PullRequest
0 голосов
/ 21 января 2019

Для моего первого скрипта экспорта я взял пример KCEC и документацию APIRefExport.chm , чтобы создать свой проект, заменив код примера своим собственным.

Я бы хотел создать чистый скрипт экспорта с нуля.

Я создал новый проект библиотеки классов и назвал его EmptyExportScript (заполнитель). Целевая структура: .Net 4 . Цель платформы - x86 , а выходной путь - .....\Program Files (x86)\Kofax\CaptureSS\ServLib\Bin\. При отладке я хотел бы запустить модуль администрирования, поэтому я установил этот путь .......\Program Files (x86)\Kofax\CaptureSS\ServLib\Bin\.

Опция «Сделать сборку COM-видимой» отмечена, и я добавил 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 помещаются в каталог bin kofax.

Я узнал, что в других сценариях тоже есть файлы .pdb и .dll.config.

Как мне их получить?

При попытке установить пользовательский сценарий я могу добавить его в диспетчер установки сценария, но не могу установить его. Не нужно ничего устанавливать, поэтому я думаю, что мне не хватает файлов .pdb и .dll.config.

Чего-то еще не хватает?

Спасибо за помощь:)

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Мне пришлось изменить формат файла с UTF-8 на UTF-8 без спецификации .

Это сработало для меня.

0 голосов
/ 21 января 2019

Kofax не нужен файл pdb, но он удобен, если вы хотите отладить ваш соединитель и присоединить его к процессу release.exe (подробнее о них здесь ).

Я бы не рекомендовал изменять сам путь вывода на Capture\Bin, а скорее создать событие после сборки:

post build event

Например,следующая строка копирует все необходимые файлы в отдельную папку в папке CaptureSS\Bin:

xcopy "$(TargetDir)*" "C:\Program Files (x86)\Kofax\CaptureSS\ServLib\Bin\SmartCAP\kec\SmartCAP.KEC.Template\" /Y /S

Наличие файла dll.config возможно, но редко.Я бы порекомендовал хранить данные, относящиеся к процессу, в пользовательском строковом объекте хранения соответствующего определения класса пакета (что дает дополнительное преимущество, заключающееся в том, что вы можете просто импортировать / экспортировать определение вместе с классом пакета, и что вы можете отображать и иметь его).поменял его в форме настройки).Сказав все это, вернемся к вашей первоначальной проблеме - соединитель не может быть установлен.

Видимость COM

Сборка должна быть видимой для COM, но вы упомянули, что это так.Ради полноты вот что вам нужно будет сделать.Обратите внимание, что GUID должен быть уникальным (актуально только в том случае, если вы скопировали существующее решение):

COM visible assembly

Если вы устанавливаете разъем на другом компьютере, вам нужно сначала зарегистрировать его с помощью regasm.exe - вот пример:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" SampleExport.dll /codebase /tlb:SampleExport.tlb

ProgIds

Затем ваш 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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...