kofax导出脚本项目设置

时间:2019-01-21 16:09:24

标签: kofax

对于我的第一个导出脚本,我以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)
}

最后,在运行UI时,我向项目中添加了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 个答案:

答案 0 :(得分:1)

Kofax不需要pdb文件,但是如果您要调试连接器并将其附加到release.exe进程(了解有关here的更多信息),它们将很方便。

我不建议将输出路径本身更改为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.csReleaseSetupScript.cs文件都需要正确的属性,例如:

[ProgId("SampleExport")]
public class ReleaseScript

如果所有操作仍然无效,请向我们提供详细的错误消息(可在CaptureSV \ Logs中找到)。

答案 1 :(得分:0)

我必须将文件格式从 UTF-8 更改为 UTF-8(不带BOM)

这对我有用。