Arcgis10

Introduction

ArcGIS Desktop is a proprietary and full featured desktop GIS package produced by ESRI (http://www.esri.com). In addition to the core software there are various service packs, SDKs, extensions and plugins that you may need to include in your deployment. Fortunately enterprise deployment is described in detail in this white paper:(http://www.esri.com/library/whitepapers/pdfs/arcgis10-enterprise-deployment.pdf)

There are two key considerations for how to deploy this software:

  • What licensing mechanism you will be using (standalone or licence server)?
  • How you plan to manage service packs (slipstream them into the install image or apply them to the clients after the main installation)?

The example package below is for a standalone licence and service packs slip streamed into the install image.

Producing the install image

If your %SOFTWARE% directory is stored somewhere where it is not easy to get write permissions from a windows admin account (eg on a well locked down samba share), then it is possible to perform all of these step on a separate computer and then copy the completed directory to your %SOFTWARE% directory.

Creating an admin install

Copy the contents of your DVD onto your server. You should have a directory that looks something like this:

dir /L /OG %software%\GIS\ArcDesktop10
...
23/02/2011  12:36    <DIR>          .
23/02/2011  12:36    <DIR>          ..
12/01/2011  14:34    <DIR>          sdk_java
12/01/2011  14:34    <DIR>          sdk_dotnet
12/01/2011  14:33    <DIR>          licensemanager
12/01/2011  14:35    <DIR>          arcsde_personal
12/01/2011  14:37    <DIR>          casetools
12/01/2011  14:38    <DIR>          datainterop
12/01/2011  14:39    <DIR>          desktop
12/01/2011  14:39    <DIR>          dotnet35
12/01/2011  14:33    <DIR>          htm
24/02/2011  12:21    <DIR>          extensions
12/01/2011  14:35    <DIR>          sdk_vba
08/07/2010  20:57         5,398,936 esri.exe
04/12/2009  17:52                41 autorun.inf
22/02/2011  11:11       378,672,640 arcgisdesktop10sp1.msp
11/06/2010  19:11            14,678 quickstart.htm
09/06/2010  01:27             1,593 readme.html
09/06/2010  20:14             5,062 10uninstallutilityguide.htm
08/06/2010  16:08         1,994,696 10uninstallutility.exe
10/03/2000  00:32             3,774 esri.ico
...

In order to slipstream the service packs into the install image it is necessary to create an admin install of just the desktop component (ie the setup which is in the "desktop folder"). Because of the length of some of the various filenames in the unpacked ArcGIS installer, I always find it necessary to use the "SHORTFILENAMES=TRUE" option when creating an admin install of ArcGIS.

msiexec /a %software%\GIS\ArcDesktop10\desktop\setup.msi SHORTFILENAMES=TRUE

This is interactive installer will ask you to define a location for the admin install. I've used %software%\GIS\ArcDesktop10\arceditor in the package below.

Applying service packs

Now download the relevant service packs from here: http://resources.arcgis.com/content/patches-and-service-packs?fa=viewPatch&PID=160&MetaID=1685

Apply the service packs using the following commandline:

msiexec /a <location of ArcGIS admin installation>\setup.msi /p <location of ArcGIS service pack>\<patchname>.msp

Licensing

If you are using a standalone licence you will need to register your authorisation codes on the ESRI website. You should receive a *.respc file. In the example below I have stored this in a directory called "%software%\GIS\ArcDesktop10\licences".

If you are using a licence server then you will need to set that up on your network and adjust the "ESRI_LICENSE_HOST" parameter to the setup below.

Main package

<package id="arcgis10" name="ArcGIS Desktop 10.0" revision="20110224.2" priority="0" reboot="false">
	<!-- ArcGIS 10 actually only requires dotNet 3.5 SP1 or higher, but we're installing v4.0 -->
	<depends package-id="dotnet40"/>
	<!-- ArcGIS 10 actually only requires Windows installer 3.1 or higher, but we're installing v4.5 -->
	<depends package-id="win-installer-4.5" />
	<!-- ArcGIS 10 actually only requires Adobe 9.1.2 or higher, but we're installing v10 -->
	<depends package-id="adobereader10"/>
	<!-- MS SQL server Native Cleint (supplied) -->
	<depends package-id="ms-sql-native-client" />
	<!-- ArcGIS 10 actually only requires IE 7.0 or higher, but we're installing v8 -->
	<depends package-id="ie8" />
	<!-- On Window Vista or Win 7, ArcGIS required MS-KB917607 (WinHlp32.exe) to be installed -->
	<depends package-id="windows-help" />
		
	<check type="uninstall" condition="versiongreaterorequal" path="ArcGIS Desktop 10" value="10.0.2800"/>
		
	<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\ArcEditor\setup.msi" SOFTWARE_CLASS=Editor SEAT_PREFERENCE=Fixed DESKTOP_CONFIG=TRUE BLOCKADDINS=#0 ADDLOCAL=ALL' >
		<exit code="0" />
		<exit code="3010" reboot="delayed" />
	</install>
	<!-- Apply a standalone licence file - not required if using a license server -->
	<install cmd='%COMSPEC% /C if /I "%PROCESSOR_ARCHITECTURE%" EQU "x86" "%commonprogramfiles%\ArcGIS\bin\SoftwareAuthorization.exe" LIF "%SOFTWARE%\GIS\ArcDesktop10\licences\ma-arcmap10-authorization.respc" /s' />
	<install cmd='%COMSPEC% /C if /I NOT "%PROCESSOR_ARCHITECTURE%" EQU "x86" "%commonprogramfiles(x86)%\ArcGIS\bin\SoftwareAuthorization.exe" LIF "%SOFTWARE%\GIS\ArcDesktop10\licences\ma-arcmap10-authorization.respc" /s' />
	<!-- Create a shortcut on the desktop if you like that kind of thing -->
	<install cmd='%COMSPEC% /c if exist "%PROGRAMFILES%\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "%SOFTWARE%\wpkg\tools\3rd-party\nircmd-x32\nircmdc.exe" shortcut "~$folder.programfiles$\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "~$folder.common_desktop$" "ArcMap"'>
            <exit code="4206857" />
        </install>
	<install cmd='%COMSPEC% /c if exist "%PROGRAMFILES(x86)%\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "%SOFTWARE%\wpkg\tools\3rd-party\nircmd-x64\nircmdc.exe" shortcut "~$folder.programfiles$\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "~$folder.common_desktop$" "ArcMap"'>
            <exit code="4206857" />
        </install>

	<upgrade cmd='msiexec /qn /x{64665955-E1A1-4A8B-BFFA-673A95318909}' >
		<exit code="0" />
	</upgrade>
	<upgrade cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\ArcEditor\setup.msi" SOFTWARE_CLASS=Editor SEAT_PREFERENCE=Fixed DESKTOP_CONFIG=TRUE BLOCKADDINS=#0 ADDLOCAL=ALL' >
		<exit code="0" />
		<exit code="3010" reboot="delayed" />
	</upgrade>
	<!-- Apply a standalone licence file - not required if using a license server -->
	<upgrade cmd='%COMSPEC% /C if /I "%PROCESSOR_ARCHITECTURE%" EQU "x86" "%commonprogramfiles%\ArcGIS\bin\SoftwareAuthorization.exe" LIF "%SOFTWARE%\GIS\ArcDesktop10\licences\ma-arcmap10-authorization.respc" /s' />
	<upgrade cmd='%COMSPEC% /C if /I NOT "%PROCESSOR_ARCHITECTURE%" EQU "x86" "%commonprogramfiles(x86)%\ArcGIS\bin\SoftwareAuthorization.exe" LIF "%SOFTWARE%\GIS\ArcDesktop10\licences\ma-arcmap10-authorization.respc" /s' />
	<!-- Create a shortcut on the desktop if you like that kind of thing -->
	<upgrade cmd='%COMSPEC% /c if exist "%PROGRAMFILES%\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "%SOFTWARE%\wpkg\tools\3rd-party\nircmd-x32\nircmdc.exe" shortcut "~$folder.programfiles$\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "~$folder.common_desktop$" "ArcMap"'>
            <exit code="4206857" />
        </upgrade>
	<upgrade cmd='%COMSPEC% /c if exist "%PROGRAMFILES(x86)%\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "%SOFTWARE%\wpkg\tools\3rd-party\nircmd-x64\nircmdc.exe" shortcut "~$folder.programfiles$\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "~$folder.common_desktop$" "ArcMap"'>
            <exit code="4206857" />
        </upgrade>

	<!-- Remove ArcEditor itself -->
	<remove cmd='msiexec /qn /x{64665955-E1A1-4A8B-BFFA-673A95318909}' >
		<exit code="0" />
	</remove>
		
</package>

Installing the various SDKs (VBA, Java and dotNet)

VBA

Note that the VBA SDK requires a separate licence to the main ArcGIS application. This must be applied for separately from ESRI. See here for ESRI's statement on this. Further details about this will be added in due course.

<package id="arcgis10-vba-sdk" name="VBA for ArcGIS Desktop 10.0" revision="20110223.1" priority="0" reboot="false">
	<depends package-id="arcgis10" />

	<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_VBA\setup.msi"' />
	<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_VBA\VBA\VBAOF11.msi"' />
	<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_VBA\VBA\1033\VBAOF11I.msi"' />
	<!-- TODO register the VBA SDK licence here... -->

	<upgrade cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_VBA\setup.msi"' />
	<upgrade cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_VBA\VBA\VBAOF11.msi"' />
	<upgrade cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_VBA\VBA\1033\VBAOF11I.msi"' />
        <!-- TODO register the VBA SDK licence here... -->
	
	<!-- Remove in the reverse order that we installed them -->
	<remove cmd='msiexec /qn /x{A13D16C5-38A9-4D96-9647-59FCCAB12A85}' />
	<remove cmd='msiexec /qn /x{FB97C283-1F3C-42D4-AE01-ADC1DC12F774}' />
	<remove cmd='msiexec /qn /x{85E1ACC2-D07E-47BB-A75E-D35E048B14B4}' />
</package>

Java

<package id="arcgis10-java-sdk" name="Java SDK ArcGIS Desktop 10.0" revision="20110223.1" priority="0" reboot="false">
        <depends package-id="arcgis10" />

	<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_java\setup.msi"' />
	<upgrade cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_java\setup.msi"' />
	<remove cmd='msiexec /qn /x{7069FBA2-F993-484A-A60B-A4D021B6E32A}' />
</package>

dot Net

The .NET SDK also requires some version of Visual Studio installed. The package definition below has a dependency on Microsoft Visual Studio 2008, however any of the follow versions of VS should work:

  • Microsoft Visual Studio 2008 Service Pack 1 (Standard, Professional, Visual Basic Express or Visual C# Express)
  • Microsoft Visual Studio 2010 (Professional, Premium, Ultimate, or Test Professional)
<package id="arcgis10-dotnet-sdk" name=".Net SDK for ArcGIS Desktop 10.0" revision="20110223.1" priority="0" reboot="false">
        <depends package-id="arcgis10" />
        <depends package-id="vs2008" />

	<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_dotnet\setup.msi"' />
	<upgrade cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_dotnet\setup.msi"' />
	<remove cmd='msiexec /qn /x{ABFD2603-877A-474E-B595-339D900B4E60}' />
</package>

Installing common (no cost) packages

There are a number of free-of-charge extensions available from ESRI: http://www.esri.com/software/arcgis/about/desktop-extensions.html

The districting tool

To prepare this extension, download it from here; http://www.esri.com/software/arcgis/extensions/districting/index.html Perform an "admin install" using the command "setup.exe /a". This will unpack the exe to produce an msi and related files. By default the msi will have a wierd and wonderful name (based on the product guid). This can be renamed to something more comprehensible.

 	<package id="arcgis10-districting" name="ESRI districting extension" revision="20110225.1" priority="0" reboot="false">
		<depends package-id="arcgis10"/>
		<check type="uninstall" condition="versiongreaterorequal" path="Districting for ArcGIS" value="10"/>
		<!-- By default installs as per-user -->
		<install cmd="msiexec /q /i %SOFTWARE%\GIS\ArcDesktop10\extensions\districting10\districting.msi" />
		<remove cmd="msiexec /q /x {41F64DB5-0CB3-4752-B64C-76B76878B62B}" />
		<upgrade cmd="msiexec /q /i %SOFTWARE%\GIS\ArcDesktop10\extensions\districting10\districting.msi" />
	</package>

Military Analyst

No admin install required.

 	<package id="arcgis10-military-analyst" name="ESRI Military Analyst extension" revision="20110225.1" priority="0" reboot="false">
		<depends package-id="arcgis10"/>
		<check type="uninstall" condition="versiongreaterorequal" path="ArcGIS Military Analyst 10" value="10"/>
		<!-- By default installs as per-user -->
		<install cmd="msiexec /q /i %SOFTWARE%\GIS\ArcDesktop10\extensions\militaryanalyst10\setup.msi" />
		<remove cmd="msiexec /q /x {F49A4424-6F2D-460A-952E-F97BC42110D7}" />
		<upgrade cmd="msiexec /q /i %SOFTWARE%\GIS\ArcDesktop10\extensions\militaryanalyst10\setup.msi" />
	</package>


MOLE

No admin install required

 	<package id="arcgis10-mole" name="ESRI Military Overlay Editor 10" revision="20110225.1" priority="0" reboot="false">
		<depends package-id="arcgis10"/>
		<check type="uninstall" condition="versiongreaterorequal" path="ArcGIS Military Overlay Editor 10" value="10"/>
		<!-- By default installs as per-user -->
		<install cmd="msiexec /q /i %SOFTWARE%\GIS\ArcDesktop10\extensions\mole10\setup.msi" />
		<remove cmd="msiexec /q /x {908504CA-6843-40FF-BDD7-DBC49FB045B3}" />
		<upgrade cmd="msiexec /q /i %SOFTWARE%\GIS\ArcDesktop10\extensions\mole10\setup.msi" />
	</package>


ArcGIS Editor for OSM

	<package id="arcgis10-osm-editor" name="ESRI ArcGIS 10 OSM Editor" revision="20110311.1" priority="0" reboot="false">
		<depends package-id="arcgis10"/>
		
		<variable name="shortcutPath" value="%ALLUSERSPROFILE%\Start Menu\Programs\ArcGIS\ArcGIS Editor for OpenStreetMap - Read Me.lnk" />
		
		<check type="uninstall" condition="exists" path="ArcGIS Editor for OpenStreetMap"/>
		<!-- By default installs as per-user -->
		<install cmd='"%SOFTWARE%\GIS\ArcDesktop10\extensions\ArcGISEditorforOSM_1.1_beta3.exe" /S' />
		<install cmd='%COMSPEC% /C if not exist "%shortcutPath%" "%SOFTWARE%\wpkg\tools\3rd-party\nircmd-x32\nircmdc.exe" shortcut "~$folder.programfiles$\ESRI\OSMEditor\Documentation\ArcGIS Editor for OpenStreetMap.html" "~$folder.common_start_menu$\Programs\ArcGIS" "ArcGIS Editor for OpenStreetMap - Read Me"' >
			<exit code="4206857" />
        </install>
		<install cmd='%COMSPEC% /C rmdir /S /Q "%ALLUSERSPROFILE%\Start Menu\Programs\ArcGIS Resource Center\"' />

		<upgrade cmd='"%SOFTWARE%\GIS\ArcDesktop10\extensions\ArcGISEditorforOSM_1.1_beta3.exe" /S' />
		<upgrade cmd='%COMSPEC% /C if not exist "%shortcutPath%" "%SOFTWARE%\wpkg\tools\3rd-party\nircmd-x32\nircmdc.exe" shortcut "~$folder.programfiles$\ESRI\OSMEditor\Documentation\ArcGIS Editor for OpenStreetMap.html" "~$folder.common_start_menu$\Programs\ArcGIS" "ArcGIS Editor for OpenStreetMap - Read Me"'>
			<exit code="4206857" />
        </upgrade>
		<upgrade cmd='%COMSPEC% /C rmdir /S /Q "%ALLUSERSPROFILE%\Start Menu\Programs\ArcGIS Resource Center\"' />

		<!-- %programfiles%\ESRI\OSMEditor\uninstall.exe" /S'  -->
		<remove cmd='%COMSPEC% /c if exist "%shortcutPath%" del /F /Q "%shortcutPath%"' />
		<remove cmd='%COMSPEC% /C if /I "%PROCESSOR_ARCHITECTURE%" EQU "x86" "%programfiles%\ESRI\OSMEditor\uninstall.exe" /S' />
		<remove cmd='%COMSPEC% /C if /I NOT "%PROCESSOR_ARCHITECTURE%" EQU "x86" "%programfiles(x86)%\ESRI\OSMEditor\uninstall.exe" /S' />

	</package>