left-code.BcSymbols 0.1.0

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet tool install --global left-code.BcSymbols --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local left-code.BcSymbols --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=left-code.BcSymbols&version=0.1.0
                    
nuke :add-package left-code.BcSymbols --version 0.1.0
                    

BcSymbols

Deterministic AL symbol restore for Microsoft Dynamics 365 Business Central.

BcSymbols is a .NET CLI tool that restores AL symbols into .alpackages/ using the same public symbol feeds used by the VS Code AL extension.

It behaves similarly to:

  • dotnet restore
  • npm install
  • cargo build

…but for Business Central AL symbols.


Features

  • Restores Microsoft and AppSource AL symbols
  • Reads dependencies from app.json
  • Downloads and extracts .app packages
  • Writes symbols into .alpackages
  • Recursive transitive dependency restoration
  • Deterministic package resolution
  • Stable locked restore mode
  • Floating latest restore mode
  • Supports custom output directories
  • Supports custom app.json paths

Installation

.NET Tool

dotnet tool install --global BcSymbols

Verify installation

bcsymbols --help

Usage

Restore symbols

bcsymbols restore

Restores symbols using deterministic locked dependency resolution.


Restore latest dependency graph

bcsymbols restore --latest

Uses floating dependency resolution and restores the newest compatible graph.


Restore from custom app.json

bcsymbols restore path/to/app.json

Restore to custom output directory

bcsymbols restore --output ./symbols

Restore Modes

Default restore

bcsymbols restore

Behavior:

  • Stable deterministic restore
  • Prefers versions declared in app.json
  • Constrains Microsoft packages by Business Central major version
  • Produces reproducible dependency graphs

Comparable to:

dotnet restore
npm ci

Floating restore

bcsymbols restore --latest

Behavior:

  • Restores latest compatible dependency graph
  • Updates Microsoft and partner packages together
  • Uses recursive dependency graph as authoritative source

Comparable to:

npm install

Public Symbol Feeds

Microsoft symbols

https://dynamicssmb2.pkgs.visualstudio.com/DynamicsBCPublicFeeds/_packaging/MSSymbolsV2/nuget/v3/index.json

AppSource / Partner symbols

https://dynamicssmb2.pkgs.visualstudio.com/DynamicsBCPublicFeeds/_packaging/AppSourceSymbols/nuget/v3/index.json

How It Works

BcSymbols generates deterministic package IDs compatible with Business Central symbol conventions.

Example:

Microsoft.BaseApplication.symbols.<AppId>

Resolution uses:

  • normalized publisher
  • normalized app name
  • AL AppId GUID

The dependency graph is restored recursively using:

  • app.json root dependencies
  • NuGet nuspec transitive dependencies
  • NuGet v3 metadata feeds

Example Workflow

cd MyBcProject

bcsymbols restore

Result:

.alpackages/
    Microsoft_System_26.0.0.0.app
    Microsoft_Base Application_26.0.0.0.app
    MyDependency_1.2.0.0.app

Roadmap

Planned improvements:

  • Semantic version range support
  • Dependency conflict resolution
  • Local metadata cache
  • Authenticated feeds

Tech Stack

  • .NET 8
  • NuGet.Protocol
  • System.CommandLine

Architecture Notes

BcSymbols evolved from a simple symbol downloader into a recursive NuGet-backed AL package manager with:

  • deterministic package resolution
  • recursive dependency traversal
  • transitive graph restoration
  • NuGet v3 metadata integration

The recursive graph now operates primarily in NuGet dependency space rather than reconstructing package identities manually.


License

MIT License


Contributing

Issues and pull requests are welcome.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated

Initial public preview release with recursive AL symbol restore.