dfonville.OutSystems.ExternalLibrary.Template 1.0.1

dotnet new install dfonville.OutSystems.ExternalLibrary.Template@1.0.1
                    
This package contains a .NET Template Package you can call from the shell/command line.

OutSystems External Library Template

A dotnet new template for creating an OutSystems external library solution in C#.

The template creates a ready-to-build solution with:

  • A .NET 8 external library project
  • A companion NUnit test project
  • A .slnx solution file

Prerequisites

  • .NET SDK 8.0 or later

Check your installed SDKs with:

dotnet --list-sdks

Install From NuGet

Install the template package from NuGet:

dotnet new install dfonville.OutSystems.ExternalLibrary.Template

Confirm that the template is available:

dotnet new list outsystems

The template short name is:

outsystems-extlib

Create a New External Library

Create a solution from the template:

dotnet new outsystems-extlib -n Contoso.ExternalLibrary.HelloWorld

This creates a new directory named Contoso.ExternalLibrary.HelloWorld because the template uses the project name as the output directory by default.

Build and test the generated solution:

cd .\Contoso.ExternalLibrary.HelloWorld
dotnet restore .\Contoso.ExternalLibrary.HelloWorld.slnx
dotnet build .\Contoso.ExternalLibrary.HelloWorld.slnx
dotnet test .\Contoso.ExternalLibrary.HelloWorld.slnx

Generated Structure

For this command:

dotnet new outsystems-extlib -n Contoso.ExternalLibrary.HelloWorld

the template generates:

Contoso.ExternalLibrary.HelloWorld/
|-- Contoso.ExternalLibrary.HelloWorld.slnx
|-- Contoso.ExternalLibrary.HelloWorld/
|   |-- Contoso.ExternalLibrary.HelloWorld.csproj
|   |-- ExternalLibrary.cs
|   `-- IExternalLibrary.cs
`-- Contoso.ExternalLibrary.HelloWorld.Tests/
    |-- Contoso.ExternalLibrary.HelloWorld.Tests.csproj
    `-- ExternalLibraryTests.cs

Project names, namespaces, and the solution file name are derived from the value passed with -n.

Update or Uninstall the Template

Update the installed template to the latest available NuGet version:

dotnet new update

Uninstall the template:

dotnet new uninstall dfonville.OutSystems.ExternalLibrary.Template

Local Development

Install the template directly from this repository while developing it:

dotnet new install .\dotnet-template\OutSystems.ExternalLibrary.CSharp

Create a project using the local template:

dotnet new outsystems-extlib -n Contoso.ExternalLibrary.HelloWorld

Uninstall the locally installed template:

dotnet new uninstall .\dotnet-template\OutSystems.ExternalLibrary.CSharp

Package the Template

Create a NuGet package:

dotnet pack --configuration Release OutSystems.ExternalLibrary.Template.csproj --output .\artifacts

Install the generated package locally:

dotnet new install .\artifacts\dfonville.OutSystems.ExternalLibrary.Template.0.1.0-local.nupkg

Use the actual .nupkg file name from the artifacts directory when the version differs.

Test the Template

Run the smoke test:

.\build\Invoke-DotNetTemplateSmokeTest.ps1

The smoke test:

  • Packs the template into a NuGet package
  • Installs it into a temporary custom template hive
  • Generates a sample external library solution
  • Runs dotnet restore
  • Runs dotnet build
  • Runs dotnet test

CI and Release

Pull request builds run .github/workflows/pr.yml, which:

  • Computes a pull request package version
  • Packs the template
  • Runs the smoke test
  • Uploads the .nupkg as a workflow artifact

Release builds run .github/workflows/release.yml on pushes to main, which:

  • Creates or bumps a Git tag
  • Packs the template with the generated version
  • Runs the smoke test
  • Creates a GitHub release
  • Pushes the package to NuGet

Package Details

  • Package ID: dfonville.OutSystems.ExternalLibrary.Template
  • Template short name: outsystems-extlib
  • Template identity: dfonville.OutSystems.ExternalLibraries.CSharp.Cli
  • Template source directory: dotnet-template/OutSystems.ExternalLibrary.CSharp
  • Package project: OutSystems.ExternalLibrary.Template.csproj
  • net8.0

    • No dependencies.

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
1.0.1 313 4/16/2026