ProEvergreen 3.0.0

dotnet add package ProEvergreen --version 3.0.0
                    
NuGet\Install-Package ProEvergreen -Version 3.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ProEvergreen" Version="3.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ProEvergreen" Version="3.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ProEvergreen" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ProEvergreen --version 3.0.0
                    
#r "nuget: ProEvergreen, 3.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ProEvergreen@3.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ProEvergreen&version=3.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ProEvergreen&version=3.0.0
                    
Install as a Cake Tool

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.

Options tab with data from evergreen and option to be on beta channel
image

One way to show available updates with evergreen
image

example of showing information evergreen knows about the current add-in
image

showing available update in a growl style notification
image

restart is required after an update
image

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
    • dotnet pack .\ProEvergreen\ProEvergreen.csproj
  2. edit nuspec
  3. publish
    • dotnet nuget push ProEvergreen.{M.m.p}.nupkg --api-key {apikey} --source https://api.nuget.org/v3/index.json
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0 174 8/26/2025
2.0.2 1,480 8/16/2018
2.0.1 1,406 7/19/2018
2.0.0 1,400 7/18/2018
1.2.0 1,699 6/25/2018
1.1.0 1,759 4/3/2018
1.0.1 1,616 3/29/2018
1.0.0 1,602 3/29/2018

Migrate to NETStandard2.1