Vishful thinking…

Creating an installer for ArcGIS Server Object Extensions

Posted in Uncategorized by viswaug on March 11, 2008

If you have been using Server Object Extensions (SOE) with ArcGIS Server, you might have had the pleasure of manually registering the various DLLs involved when deploying to the ArcGIS Server machine. I use a setup and deployment project to create an MSI installer that I can easily distribute and deploy. Many of the developers using SOEs probably have done this already. I thought I would share my version of the installer project so that it can help developers who are not already using it and to get feedback on the way I am doing it from developers who have mastered setup and deployment projects. So, If you have suggestions for improvements, I would love to hear it. That said, here is how I went about creating my MSI installer.

  • I am assuming that the SOE being deployed is composed of two or possibly a third project as below
    • A SOE definition project – This project contains the interface definition containing the methods exposed by the SOE.
    • A SOE implementation project – This project contains the implementation of the SOE interface in the above project.
    • An optional SOE property page project – This project contains the user interface elements that will be used to edit the SOE configuration properties via ArcCatalog.
  • Add a new installer class to the SOE definition project and copy paste the code snippet here into it. The custom action in this installer class just registers the assembly equivalent to doing a “regasm.exe” on it.
    • CropperCapture[57]
  • Add a new installer class to the SOE implementation project and copy paste the code snippet here into it. The custom action in this installer class registers the services in the assembly equivalent to running a “regsvcs.exe” on it..
  • Create a new “Setup Project” in Visual Studio
    • CropperCapture[41]
  • Bring up the “File System Editor”
    • CropperCapture[43]
  • Right click on the Application folder and select “Add->Project output”.
    • CropperCapture[54]
  • Add the “Primary Output” from the project containing the SOE definition and the implementation.
    • CropperCapture[45]
  • Right click and “Exclude” all ESRI DLLs under the “Detected Dependencies”. Leave only the “Primary Output” from the projects and any assemblies that they depend on included.
    • CropperCapture[56]
  • Right click on the project and select “View->Custom Actions”.
    • CropperCapture[50]
  • Right click the “Install” folder and select “Add Custom Action”.
    • CropperCapture[51]
  • In the “Select Item in Project” dialog, select the “Primary output” from our SOE definition and implementation projects.
    • CropperCapture[53]
  • A similar setup project can be created for installing the SOE property page project using the same custom installer class used for the SOE definition project.
  • Just a final reminder to make things clear, the setup project is for installing the SOE on the ArcGIS Server machine and not on the web server machine.