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.
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!
- You have a GitHub repository
- The GitHub repository has semver releases with a
*.esriAddinX
file as an asset
- NuGet package manager: Search for
ProEvergreen
https://www.nuget.org/packages/ProEvergreen/ - Powershell: `Install-Package ProEvergreen
var evergreen = new Evergreen("github username", "repository");
var evergreen = new Evergreen("steveoh", "pro-evergreen");
evergreen.GetCurrentAddInVersion();
retuns aVersionInformation
object that has the addin name, version, and the version of pro it was created with. Will throw aArgumentOutOfRangeException
if it can't find the file or anArgumentException
if it can't find the config.daml.evergreen.GetLatestReleaseFromGithub();
returns an OctoKitRelease
object with the information about the GitHub releases for the repository. Will throw aArgumentNullException
if either parameters are empty.evergreen.IsCurrent(addinVerion, OctoKit Release);
returns abool
. It istrue
if the semantic version of the addin is equal to what is available on GitHub.evergreen.Update(OctoKit Release);
will download the current release, replacing and updating the current addin. Will throw anArgumentNullException
if the release is null.
You can view an addin example in this repository.
This repository also has a sample release.
Options tab with data from evergreen and option to be on beta channel
One way to show available updates with evergreen
example of showing information evergreen knows about the current add-in
showing available update in a growl style notification
restart is required after an update
- https://github.com/agrc/uic-addin
- roemhildtg/arcgis-pro-addins - streetview and selection tools addins
send a pr to add your project!
- create nuspec and edit output
nuget spec ProEvergreen.csproj
- edit nuspec release notes
- release build
- create package
nuget pack ProEvergreen.csproj -Properties Configuration=Release
- publish
nuget push ProEvergreen.{M.m.p}.nupkg {apikey} -Source https://api.nuget.org/v3/index.json