Select to view content in your preferred language

What is the best approach to update an AddIn while using older version?

854
4
04-11-2022 07:58 AM
Amadeus111
Frequent Contributor

I will update an AddIn I created couple years ago. I am an end-user for this AddIn as well. I would like to continue to use it while developing the newer version. 

I created another branch in GitHub but if I run the newer version in VS it will overwrite the old AddIn In ArcGIS Pro. 

Ideally, I would like to develop it as a separate AddIn but both older and newer versions point to the same GitHub entry. Later on, I can archive the older version. Is there a solution to this? What is the best approach?

Thanks.

0 Kudos
4 Replies
CharlesMacleod
Esri Regular Contributor

I recommend u change three things:

The addin id, the module id, and the name of the assembly.

Change all of these in the Config.daml. U can use something like https://www.guidgen.com/ to generate a new addin id. The module id is arbitrary. U can use anything u want as long as its different from the original. Ditto for the assembly name. Change defaultAssembly.

<ArcGIS defaultAssembly="ProAppModule1.dll" ...>
  <AddInInfo id="{0ccd96a6-029c-409e-9e97-d8f35e9f055d}" version="1.0" desktopVersion="2.3">
    <Name>ProAppModule1</Name>
    <Description>ProAppModule1 description</Description>
    ...
 </AddInInfo>
  <modules>
    <insertModule id="ProAppModule1_Module" ...>
      <!-- uncomment to have the control hosted on a separate tab-->
      <tabs>

 

U will also have to change the module id in your module code-behind file (eg Module1.cs, Module1.vb, etc)

internal class Module1 : Module {
    private static Module1 _this = null;

    public static Module1 Current {
      get {
        return _this ?? (_this = (Module1)FrameworkApplication.FindModule("ProAppModule1_Module"));
      }
    }

 

Last, change the assembly name in Visual Studio on the Application properties of your csproj/vbproj to match defaultAssembly.

 

 

 

 

 

 

0 Kudos
Amadeus111
Frequent Contributor

How about button id and DockPane id?

<group id="SpatialDataExplorer_Group1" caption="Data Explorer Group" appearsOnAddInTab="true">
          <!-- host controls within groups -->
          <button refID="SpatialDataExplorer_Dockpane1_ShowButton" size="large" />
        </group>
      </groups>
      <controls>
        <!-- add your controls here -->
        <button id="SpatialDataExplorer_Dockpane1_ShowButton" caption="Kentucky Spatial Data" className="Dockpane1_ShowButton" loadOnClick="true" smallImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonPurple16.png" largeImage="Images/SDE_Icon.png">
          <tooltip heading="Explore Kentucky spatial data">Show Dockpane<disabledText /></tooltip>
        </button>
      </controls>
      <dockPanes>
        <dockPane id="SpatialDataExplorer_Dockpane1" caption="Kentucky Spatial Data Explorer" className="Dockpane1ViewModel" dock="right" dockWith="esri_core_contentsDockPane" >
          <content className="Dockpane1View" />
        </dockPane>
      </dockPanes>

 

0 Kudos
CharlesMacleod
Esri Regular Contributor

you should change what ever _you_ need to tell them apart - captions, images, text, etc., etc. Pro only needs the first three.

0 Kudos
Amadeus111
Frequent Contributor

I was trying to make sure before proceeding further.  Thank you! 

0 Kudos