Keep your arcgis pro add ins current with github releases
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ProEvergreen.AddIn
ProEvergreen.tests
ProEvergreen
.gitattributes
.gitignore
LICENSE
ProEvergreen.sln
README.md
proevergreen.png
proevergreen.psd

README.md

pro-evergreen

NuGet version

pro evergreen

Never send an esri addin update to someone via email or a file share again!

Using github releases and release assets, you can automatically download and install new versions.

What? Why?!

Esri is not in the business of creating an addin registry like npm has for node or pypi has for python. This class library makes it simple for you to add the functionality to auto update pro addins for your users. When you add pro evergreen as a reference to your existing addin, you get access to methods that will check the version of the addin running with the version of the addin that you have made available on GitHub. You have access to methods to download and update the addin so when your users restart pro, the new code will be live.

You are in charge of the update flow. You can be passive with a popup that suggests your user to update the addin or you can make the addin update as soon as it knows there is a new version. It is up to you!

Getting Started

Prerequisites

  1. You have a GitHub repository
  2. The GitHub repository has semver releases with a *.esriAddinX file as an asset

Nuget Installation

Usage

var evergreen = new Evergreen("github username", "repository");
var evergreen = new Evergreen("steveoh", "pro-evergreen");

The API has four main uses currently.

  1. evergreen.GetCurrentAddInVersion(); retuns a VersionInformation object that has the addin name, version, and the version of pro it was created with. Will throw a ArgumentOutOfRangeException if it can't find the file or an ArgumentException if it can't find the config.daml.
  2. evergreen.GetLatestReleaseFromGithub(); returns an OctoKit Release object with the information about the GitHub releases for the repository. Will throw a ArgumentNullException if either parameters are empty.
  3. evergreen.IsCurrent(addinVerion, OctoKit Release); returns a bool. It is true if the semantic version of the addin is equal to what is available on GitHub.
  4. evergreen.Update(OctoKit Release); will download the current release, replacing and updating the current addin. Will throw an ArgumentNullException if the release is null.

Example

You can view an addin example in this repository.

This repository also has a sample release.

Projects using Evergreen

  1. https://github.com/agrc/uic-addin
  2. roemhildtg/arcgis-pro-addins - streetview and selection tools addins

send a pr to add your project!

Publishing new releases

  1. create nuspec and edit output
    • nuget spec ProEvergreen.csproj
  2. edit nuspec release notes
  3. release build
  4. create package
    • nuget pack ProEvergreen.csproj -Properties Configuration=Release
  5. publish
    • nuget push ProEvergreen.{M.m.p}.nupkg {apikey} -Source https://api.nuget.org/v3/index.json