2

I am trying to compile a project in visual basic into an Arc map add on. I am receiving two warnings that are preventing the build from completing. Both errors entail that the assembly ESRI.ArcGIS.Desktop.AddIns could not be found. I received this project and source code by request from someone else. From other responses on here to similar issues in compiling in Visual Basic I have made sure that the Register for COM interop is unchecked in the compile tab of the project properties and I have made sure the Copy Local and Specific Version in the References tab is set to false.

When I searched through my computer I was not able to find the ESRI.ArcGIS.Desktop.AddIns assembly in order browse and assign a reference path in Visual Basic. It seems the it is not on my computer. I have not had any experience with an assembly before, so my question is how do I get access to this ESRI.ArcGIS.Desktop.AddIns assembly?

  • 1
    have you installed the ArcObjects SDK? – Midavalo Jun 1 '16 at 21:13
  • I do not believe so, I was not able to find it from a search or in the ArcGIS administrator. I am on a university computer, therefore IT does all the product installations and license management. – zanwigz Jun 1 '16 at 21:26
  • 2
    As far as I'm aware you need the SDK to create AddIns. – Midavalo Jun 1 '16 at 21:34
  • 3
    I'm on a machine with 10.4 Desktop, but without the SDK. I see this file: C:\Program Files (x86)\ArcGIS\Desktop10.4\bin\ESRI.ArcGIS.Desktop.AddIns.dll. You might try adding a reference to this and try to compile. To create new add-in projects I think you'll need the SDK though. – Kirk Kuykendall Jun 1 '16 at 21:44
  • Okay, I was able to locate that file, so I added the reference to this to compile. This resolved the warning that were keeping the document from compiling. – zanwigz Jun 1 '16 at 22:39
3

While the SDK is required to create new projects (the templates that appear when you choose File>New Project), it should be possible to compile existing projects without the ArcObjects SDK.

Also, I've heard:

1) you don't really need Visual Studio to compile - you can use MSBuild, which is now part of the .NET framework installation.

2) you can compile arcobjects projects without checking out an Esri license. This is helpful when you have to build legacy versions of a project, but can't afford licenses on the build servers.

  • That's good to know, I've only got 1 Visual Studio so I couldn't test editing an existing project without the SDK on a non-Esri workstation but suspected it to be true... It sounds like a lot of effort to build with MSBuild, considering VS Express is easy to get for 'free', so long as you don't want to sell (or make profit by other means) the tools. Not needing a license to compile is also good to know; I knew this for years, all the way back to VB6, but tend to take it for granted that everyone else knows it too. – Michael Stimson Jun 2 '16 at 3:17
0

You definitely need the ArcObjects SDK to build addins. It's more than just referencing the libraries, the SDK installs vital templates for creating addins; when you start a new project there is an Esri category which you pick from ArcMap, ArcCatalog etc.. and the template is created with all the necessary components.

You might be able to get away with editing an existing project without the SDK but I wouldn't like to try it.

In order to install the SDK you must have a supported version of Microsoft Visual Studio (Express) installed, see system requirements example for 10.3 and system requirements example for 10.2. If a suitable version of Visual Studio is detected by the installer you can install it, if not then the installer will not offer to install. Not all versions of Visual Studio are appropriate for all versions of ArcGis, for example on 10.2.1 you can use VS 2010 or 2012 but not VS2005 or 2008, VS Express is only supported on 2010 and not 2012 - and those are the only choices, no other VS will work.

  • Templates are never a requirement. You can always reproduce whatever is in them yourself. And the code in some of their templates is some of the worst designed code I've ever seen. I don't want to ever see it being used in any of my projects. (Unsurprising given that ArcObjects is a poor API itself. All those explicit interface implementations are proof enough of that.) The only thing I can figure that it really buys you is registering ArcGIS's .NET binaries in a place that VS can find them more easily (the GAC, maybe?), but even that can be done without. – jpmc26 Dec 21 '17 at 21:33
  • I understand that @jpmc26, however the templates make it much easier to create an addin without being an expert at C#/VB.net IDE. Whether the API is good or not is a moot point, it is what it is and is the only way to get into the background of ArcGIS. Can you give an example of the 'bad code' created by a template? As I see it creating an addin via a template does not add significant code except for an XML file (Config.esriaddinx), I think you may have an addin confused with a standalone application with Esri licensing.. – Michael Stimson Dec 21 '17 at 23:20

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.