AL Packagist

A VS Code extension for browsing, searching, and installing Business Central NuGet symbol packages. Resolves packages to the BC version declared in app.json, supports W1 and 40+ country localizations, and works with custom NuGet V3 feeds alongside the built-in Microsoft and AppSource feeds.


What it does
Browse every BC symbol package without leaving VS Code
The sidebar gives you live access to Microsoft's symbol feed and the AppSource feed in one place. Switch between Microsoft and AppSource tabs, filter by BC version and country, and search by name -- all while keeping your editor in focus.

The version selector is populated live from the feed -- no hardcoded list. New BC waves appear automatically the day Microsoft publishes them. Same for country localizations: the country dropdown reflects what is actually on the feed.

AppSource packages, not just Microsoft symbols
The AppSource tab lets you search by publisher name, extension name, or both. Publisher names are normalized so Professional Advantage and professionaladvantage return the same results.

Set up a new project in one click
Setup Project reads your app.json dependencies, resolves each one to the correct BC version and country, and downloads everything in parallel. For a standard BC project this takes seconds.

Install core symbols without hunting for package names
Install All Core fetches Application, Base Application, System Application, Business Foundation, Platform, and System at the BC version your app.json declares. No searching required.

Inline dependency status in app.json
Every entry in app.json's dependencies array gets an inline CodeLens label showing whether the package is installed, outdated, or missing. The summary line at the top of the array shows the full count and doubles as the restore trigger.

Clicking the summary line resolves and downloads everything missing in one pass.

Requirements
- VS Code 1.85.0 or later
- A workspace containing
app.json
Getting started
- Install from the VS Code Marketplace.
- Open a workspace containing
app.json.
- Click the AL Packagist icon in the Activity Bar.
Usage
Package browser
The sidebar has three tabs: Microsoft Symbols, AppSource, and any custom feeds you have configured. Results are returned from cache immediately and refreshed from the feed in the background.
Microsoft Symbols lists W1 packages and all country-specific variants. The version selector and country selector are both populated live from Microsoft's feeds -- no hardcoded version list, no hardcoded country list. New BC wave releases and new localizations appear automatically.
AppSource accepts a publisher name, an extension name, or both. The search normalizes publisher names so Professional Advantage and ProfessionalAdvantage produce the same results. Results load incrementally as you scroll.


Custom feeds -- any NuGet V3 service index URL added in settings appears as its own tab.

Package detail
Clicking any package opens a panel with the full version history sorted by publish date (yanked versions excluded), dependency tree, authors, description, and project and license links. Any version in the history can be installed directly from the panel.

Restore All Packages
Reads the dependencies array in app.json, resolves each dependency to the correct BC version, and downloads anything not already present in .alpackages. All downloads run in parallel.
app.json CodeLens
Every entry in app.json's dependencies array gets an inline status label:
| Label |
Meaning |
Installed v25.1.0.0 |
Present in .alpackages |
Outdated -- v25.1 installed, v26.0 available |
Newer version available on the feed |
Missing -- click to restore |
Not in .alpackages |
The summary line above the array shows installed and missing counts. Clicking it runs Restore All Packages.

- Install Core Symbols -- downloads Application, BaseApplication, SystemApplication, Platform, System, and BusinessFoundation at the BC version declared in
app.json.
- Setup Project -- installs every package in
app.json's dependencies array. Prompts for country localization, resolves the correct version per package, and downloads in parallel.
- Check for Updates -- compares installed packages against the feed and reports available upgrades in the sidebar.
Installed packages panel
Tree view listing every .app file in the packages folder. Right-click any entry to reveal it in Explorer or remove it.
Version resolution
BC NuGet packages version by BC release number using the major version segment. AL Packagist resolves the target major version from app.json in this order:
| Priority |
Field |
Example |
| 1 |
application |
"22.0.0.0" targets BC 22 packages |
| 2 |
platform |
used if application is absent |
| 3 |
Latest on feed |
used if neither field is present |
A project declaring "application": "22.0.0.0" always receives BC 22 symbols, regardless of the current cloud release.
Custom feeds
"alPackagist.customFeeds": [
{
"name": "Company Internal",
"url": "https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json"
}
]
Settings
| Setting |
Default |
Description |
alPackagist.showReleaseNotesOnUpdate |
true |
Open the release notes panel when the extension updates |
alPackagist.defaultCountry |
w1 |
Country code used when no project-specific country is detected |
alPackagist.packagesFolder |
.alpackages |
Output folder for downloaded packages, relative to workspace root |
alPackagist.includePrerelease |
false |
Include prerelease versions in search results |
alPackagist.autoRestoreOnOpen |
true |
Check for missing packages on project open and prompt to restore |
alPackagist.customFeeds |
[] |
Additional NuGet V3 feeds |
Commands
| Command |
Description |
AL Packagist: Show Release Notes |
Open the release notes panel |
AL Packagist: Restore All Packages |
Resolve and install missing packages for the current project |
AL Packagist: Check for Updates |
Check installed packages for newer versions |
AL Packagist: Refresh Packages |
Clear the cache and reload the current feed |
AL Packagist: Open Package Browser |
Focus the sidebar |
Building from source
npm install
npm run build
npm run package # produces a .vsix
npm test # integration and e2e tests; requires VS Code on the machine
License
MIT
Built by Jeffrey Bulanadi