对于我的第一个导出脚本,我以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,我添加了以下代码
[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目录中。
我认识到其他脚本中也有一个.pdb和.dll.config文件。
我怎么弄到它们?
在尝试安装自定义脚本时,我可以将它添加到脚本安装管理器中,但无法安装它。没有什么可安装的,所以我想我错过了.pdb和.dll.config文件。
还有什么遗漏了吗?
谢谢你的帮助:)
发布于 2019-01-21 19:03:32
Kofax不需要pdb文件,但是如果您想调试连接器并将它附加到release.exe进程(了解更多关于它们的here),它们是很方便的。
我不建议将输出路径本身更改为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.tlbProgIds
然后,您的.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中找到)。
发布于 2019-01-23 14:18:48
我不得不将文件格式从UTF-8更改为UTF-8,而没有BOM。
这对我有用。
https://stackoverflow.com/questions/54293761
复制相似问题