首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kofax导出脚本项目设置

kofax导出脚本项目设置
EN

Stack Overflow用户
提问于 2019-01-21 16:09:23
回答 2查看 453关注 0票数 0

对于我的第一个导出脚本,我以KCEC示例和APIRefExport.chm文档为例,通过用自己的代码替换示例代码来创建我的项目。

我想从零开始创建一个干净的导出脚本。

我创建了一个新的类库项目,并将其命名为EmptyExportScript (占位符)。目标框架为.Net 4,平台目标为x86,输出路径为.....\Program Files (x86)\Kofax\CaptureSS\ServLib\Bin\。调试时,我希望启动管理模块,因此我设置了这个路径.......\Program Files (x86)\Kofax\CaptureSS\ServLib\Bin\

选中选项"Make“,并将Kofax.ReleaseLib.Interop.dll添加到引用中。

对于KfxReleaseScript.cs,我添加了以下代码

代码语言:javascript
复制
[ClassInterface(ClassInterfaceType.None)]
[ProgId("KFXTS.EmptyExportScript.KfxReleaseScript")]
public class KfxReleaseScript
{
    public ReleaseData documentData;

    // public KfxReturnValue OpenScript()

    // public KfxReturnValue ReleaseDoc()

    // public KfxReturnValue CloseScript()
}

对于KfxReleaseScriptSetup.cs,我添加了以下代码

代码语言:javascript
复制
[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

代码语言:javascript
复制
[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目录中。

我认识到其他脚本中也有一个.pdb和.dll.config文件。

我怎么弄到它们?

在尝试安装自定义脚本时,我可以将它添加到脚本安装管理器中,但无法安装它。没有什么可安装的,所以我想我错过了.pdb和.dll.config文件。

还有什么遗漏了吗?

谢谢你的帮助:)

EN

回答 2

Stack Overflow用户

发布于 2019-01-21 19:03:32

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

我不建议将输出路径本身更改为Capture\Bin,而是创建一个构建后事件:

例如,下面一行将所有必需的文件复制到CaptureSS\Bin文件夹下的一个单独的文件夹中:

代码语言:javascript
复制
xcopy "$(TargetDir)*" "C:\Program Files (x86)\Kofax\CaptureSS\ServLib\Bin\SmartCAP\kec\SmartCAP.KEC.Template\" /Y /S

有一个dll.config文件是可能的,但很少。我建议将特定于流程的数据存储在相应批处理类定义的自定义存储字符串对象中(这具有额外的好处,您可以与批处理类一起导入/导出定义,并且可以以安装形式显示并更改定义)。话虽如此,回到您最初的问题-连接器无法安装。

COM可视性

程序集需要是COM可见的,但您已经说过了。为了完整起见,下面是您需要做的事情。请注意,GUID必须是唯一的(只有在复制现有解决方案时才相关):

如果您要在另一台机器上安装连接器,您需要首先使用regasm.exe注册它-下面是一个示例:

代码语言:javascript
复制
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" SampleExport.dll /codebase /tlb:SampleExport.tlb

ProgIds

然后,您的.inf文件需要包含精确的ProgID:

代码语言:javascript
复制
[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文件都需要正确的属性,例如:

代码语言:javascript
复制
[ProgId("SampleExport")]
public class ReleaseScript

如果所有这些仍然不起作用,请向我们提供详细的错误消息(请在CaptureSV\Logs中找到)。

票数 0
EN

Stack Overflow用户

发布于 2019-01-23 14:18:48

我不得不将文件格式从UTF-8更改为UTF-8,而没有BOM

这对我有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54293761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档