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.

2 Responses

Subscribe to comments with RSS.

  1. Steve said, on January 7, 2009 at 8:39 am


    Thanks you for posting this extension installer guide. There is one question though, and that is that the actual registering with the ArcGis server seems to be missing?
    Do you still manually register the extension with ArcGis? or do you use a separate installer?


  2. viswaug said, on January 7, 2009 at 12:48 pm

    Hi Steve,

    I use the SOExplorer application I had created to register the SOE with the ArcGIS Server.

    Thank You,

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: