2

After Visual studio 2010, the extremely useful "Setup And Deployment" project have been removed from visual studio. And MS have packed it with a rather lousy InstallShield LE(LIMITED edition).

You can see the frustrated user voices here

enter image description here

Visual studio 2012 and ArcMap 10.3.1 are what I have now. So what are the options now to build an installer for my ArcObjects Tools other than playing around with hacking the limited options in InstallShield LE. Are there any documents in the ESRI Developer docs? I have not found anything yet.

What I'm specifically interested is the process of registration and unregistration of Dlls after installation and unistallation.

All suggestions are welcome.

  • Your best bet is to use WIX. There is plenty of good documentation available. – Petr Krebs Aug 23 '15 at 20:27
  • Is using Installshield LE an option? with visual studio 2012 alone, I don't think you can achieve your goal – Farid Cheraghi Aug 23 '15 at 20:33
  • @FaridCher - so how do you ensure successfull registration/unregistration of assemblies during install and uninstall? – vinayan Aug 23 '15 at 20:39
  • @FaridCher - I have installshield LE..it is an option for sure.. – vinayan Aug 23 '15 at 20:39
  • I had issues with the InstallShield project. If I am setting up an install I usually just Publish the application. It isn't as compact but it solves most of my problems of just moving around my libraries, etc. – Branco Aug 27 '15 at 14:46
2
+75

I had your problem before. I will share a productive solution to solve your problem with InstallShield Limited Edition.

  1. Create a console application project in visual studio and let's call it "InvokeESRIRegAsm". This command line application will have to funcations: install, unistall. Install will take path of your dll and use ESRIRegAsm.exe to register that Dll. And the reverse is true for Unistall.

Now build the project. you will end up with InvokeESRIRegAsm.exe that takes 2 parameters. 1st parameter is to determine whether to install(register) or unistall the dll. 2nd parameter is the location of the dll to register.

  1. Create an InstallShield Project in VS 2012 (let's call it ISLE_Setup). Add InvokeESRIRegAsm.exe to the files that will get installed with your setup. Then go to "Custom Actions" section of InstallShield project. Create a new EXE under "After Register Product" node (Check the following snapshot)

enter image description here

Create the same entry for unistallation process under "After System Changes" node to unregister your dlls after unistallation.

  • 1
    hello..thank you for the detailed answer..I will try this out..one quick question.."After System Changes", I guess my dll(which has to be unregistered), would be been removed from the install location..right? So would the Installshield be able to find this file in install dir? – vinayan Aug 23 '15 at 21:33
  • 1
    maybe silly question, will the console app also get removed by this time? – vinayan Aug 23 '15 at 21:37
  • You are right. The proper entry is Before System Changes, but as you can see with the IS Limited Edition, this feature is locked! – Farid Cheraghi Aug 23 '15 at 21:47
  • i think i tried something like this before..they locked it where it matters..as an unholy workaround, you can copy the executable and libraries to temp folder, to avoid deletion..but then after the user clear the temp, we are dead.. – vinayan Aug 23 '15 at 22:07
  • I think unregistration is not that important. I can't think of any problem if we let the dlls remains registered. – Farid Cheraghi Aug 23 '15 at 22:27
1

You could try to use WiX tooset it is very complete, and it will allow you to perform the registry of the ESRI dll's in the client machine.

furthermore it has a good integration with visual studio.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.