Package Feeds

Before you can use the package management features in Gordon you need to define your package feeds where you want Gordon to get the packages from. At the moment Gordon supports the following feed types

  • NuGet: Can be used for any Nuget (v3+) compatible package feed. This includes Azure Artifacts or any other provider. It supports various configuration parameters. By using it’s default settings, this provider is fully compatible with the Microsoft Nuget AL package feeds.
  • Proget / Inedo Upack: If you are using Inedo Proget, you can opt to use it’s proprietary Upack format. This is not to be confused with “Universal Packages” on Azure Artifacts. The latter are not supported.
  • Folder: This provider reads packages from any file system folder. UNC paths and network shares are supported. Folders that require authentication are not supported.
  • MS Apps: This feed is essentially the same as the NuGet provider, but already uses the correct configuration to access the MS Apps feed.
  • AppSourceSymbols: This, similar to MS Apps is also just a NuGet provider with a specific configuration to access the AppSource symbols feed. Be aware that this package feed does not contain actual app packages, but only the symbols packages.

The configuration of feeds (as well as any other configuration) is shared across all of three Gordon clients. That is: Gordon UI, Gordon VS Code and Gordon PowerShell. Any change you make in one client, is automatically available in all others.

Creating a package feed

To configure package feeds directly in VS Code, you can go - from the Gordon icon - to the “Package Feeds” entry.

Click the + icon on the “Package Feeds” item to create a new feed.


This will create a new package feed and open it in the editor. The configuration is essentially a .json file. The following properties are common to all feeds:

  • $schema: This is the schema of the JSON file. Do not modify this. It is provided to allow intellisense in VS Code to work.
  • Name: Gives a unique name to the feed.
  • Description: Gives a description to the feed.
  • Enabled [Obsolete]: This exists for backwards compatibility only and can be ignored.
  • ProviderName: specifies the provider to be used for this feed.
  • ProviderType [Obsolete]: This exists for backwards compatibility only and can be ignored.
  • Configuration: the configuration for this package feeds. This objects depends on which package provider you choose. The schema is availble in $schema and VS Code will give you a hand in discovering the possible values and how to define them.

Deleting a package feed

You can also delete a package feed by simply deleting the file. There is a shortcut action to do so by right-clicking the package feed and deleting it.

Selecting package feeds

Gordon chooses the package feeds to use based on the server you are connecting to. This means that you can have one set of package feeds for a BC24 development environment and a different set of package feeds for a BC25 development environment.

Gordon VS Code does this by using your launch.config to determine which target you are working with. This is essential, because the various package management related actions that are available in Gordon VS Code will be based on this concept.

To choose which feeds you want to use with wich server, you can go to list of servers in Gordon and using the Select Package Feeds action you can select one or more feeds to be used with this target.


This will open the list of all available package feeds and you can select one or more that you want to use with this target server / service.


Restore Dependencies

Gordon VS Code has an action Restore Dependencies that you can use to install all the required dependencies of your current project to a given BC service or environment.

To execut this action you have two possibilities:

  1. You run the Restore Dependencies (Project) action from the command palette. Gordon will ask you for the target service you want to restore the depencies on. If you only have one configured, Gordon will automatically use this.
  2. From the list of target services, you can run the context action Restore Dependencies (Project) that will restore the dependencies for this selected target.

Gordon will now look at your app.json and analyze all the dependencies that you have defined. It will then look at the service you selected and check which apps are installed and which are not.

The missing dependencies Gordon will then try to download and install to the service by looking them up on the package manager.

Adding/updating dependency

Gordon allows you to add or update dependencies to a project. Because Gordon always uses the target service to decide which package manager to use, you have access to the dependencies from below your launch configuration:

When you expand the Dependencies entry, you can see a list of all the dependencies currently in your project. You will also get an information if the given dependency is currently satisfied on the selected service and/or if there are updates to the given dependency available on the package manager.


  • There is an up arrow icon: an update is available. You can right-click on the the dependency or expand the item to see the available versions and update your app.json with the selected version.
  • There is a checkmark icon: the requested dependency is already available and installed on the service
  • The item has a (missing) indicator: the dependency is not installed on the service or the installed version does not satisfy the requested version.

After you are done modifying your dependencies, you can run Restore Dependencies to restore them to your service.


EOS Labs -