Search code examples
kofax

Required production files for custom modules


I created some custom modules and Visual Studio drops the build files directly into the Kofax Bin directory. It is important to note that I'm using the modules as Winforms applications and Windows services (at the same time). The generated files are

  • MyModule.exe
  • MyModule.exe.config
  • MyModule.InstallLog
  • MyModule.InstallState
  • MyModule.pdb

I think that I only need the .exe file here. Of course I also add the .aex file to the directory to install the module. I also created two batch files to register the module on the local machine

RegAscEx.exe MyModule.aex
pause

and to install the module as a Windows service

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "%~dp0MyModule.exe"
pause

after running them as administrator I can delete them from the directory of course. I would like to know if it should be always fine to provide the .exe file, .aex file and the two batch files (which will be deleted later) only?


Solution

  • Basically correct. Some thoughts:

    1. Build your application using the Release configuration (vs Debug). See discussion here.
    2. PDB files usually are not needed in production. Still, you may want to generate and keep them if you plan on debugging in production.
    3. The app.config file should be kept. Maybe you want to use application settings later on, and the supportedRuntime element is useful if someone wants to run your CM on a machine without that version of .NET framework being present (Windows will show a nice error message)
    4. Keep the AEX file. This is required if someone wants to register your CM on another machine (e.g. deploying from DEV > TEST > PROD).
    5. Include a single batch file that allows registering your CM on a new machine as well as adding it to Kofax Capture. Here's an example:
    rem "C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" SmartCAP.CM.Sample.dll /codebase /tlb:SmartCAP.CM.Sample.tlb
    rem RegAscSc.exe /f Register.inf
    

    Another thing I usually include is the ability to install my CM in a similar fashion to native KC modules, for example: SmartCAP.CM.Sample.exe -install and SmartCAP.CM.Sample.exe -uninstall. Take a look at the AssemblyInstaller class for details.