Files
dotnet-packaging/README.md
Frederik Carlier d75593b478 Drop netcoreapp2.0 and netcoreapp3.0
Replace with netcoreapp3.1
2021-11-09 16:41:17 +01:00

101 lines
3.2 KiB
Markdown

# Packaging utilities for .NET Core
[![NuGet](https://img.shields.io/nuget/v/Packaging.Targets.svg)](https://www.nuget.org/packages/Packaging.Targets)
[![Build status](https://ci.appveyor.com/api/projects/status/ac3j676f9g8r0g15?svg=true)](https://ci.appveyor.com/project/qmfrederik/dotnet-packaging)
This repository contains command-line extensions for the .NET Core CLI which make it easy to create
deployment packages (such as `.zip` files, tarballs or installers) for .NET Core applications.
The following commands are already available:
* `dotnet tarball` - Create a `.tar.gz` file for Linux and OS X
* `dotnet rpm` - Create a CentOS/RedHat Linux installer
* `dotnet zip` - Create a `.zip` file
* `dotnet deb` - Create a Ubuntu/Debian Linux installer
And these are up next:
* `dotnet pkg` - Create a macOS installer
* `dotnet choco` - Create a Chocolatey package
* `dotnet msi` - Create a Windows Installer (msi) package
Did we miss anything? Feel free to file a feature request, or send a PR!
## Installation
First, install the .NET Packaging tools. You don't need to install all tools if you only plan to use one.
```bash
dotnet tool install --global dotnet-zip
dotnet tool install --global dotnet-tarball
dotnet tool install --global dotnet-rpm
dotnet tool install --global dotnet-deb
```
Then, in your project directory, run `dotnet {zip|tarball|rpm|deb} install` to add the tool to your project:
```bash
dotnet zip install
dotnet tarball install
dotnet rpm install
dotnet deb install
```
## Usage
From the command line, run `dotnet rpm`, `dotnet zip` or `dotnet tarball` to create a `.rpm`, `.zip` or `.tar.gz` archive of the published output of your project.
All commands take the following command line arguments:
* `-r`, `--runtime`: The target runtime to build your project for. For example, `win7-x64` or `ubuntu.16.10-x64`.
* `-f`, `--framework`: The target framework to build your project for. For example, `netcoreapp1.1` or `net462`.
* `-c`, `--configuration`: Target configuration. The default for most projects is 'Debug'.
* `-o`, `--output`: The output directory to place built packages in.
* `--version-suffix`: Defines the value for the `$(VersionSuffix)` property in the project.
* `--no-restore`: Skip the implicit call to `dotnet restore`.
All arguments are optional.
## Tutorial
Let's create a new console application and package it as a `.deb` file, so we can install it on our Ubuntu machine:
First, create your console application:
```bash
mkdir my-app
cd my-app
dotnet new console
```
Then, install the dotnet-deb utility:
```bash
dotnet tool install --global dotnet-deb
dotnet deb install
```
All set. Let's package your application as a deb package:
```bash
dotnet deb
```
There's now a `bin\Debug\netcoreapp3.1\my-app.1.0.0.deb` file wich you can install:
```bash
apt-get install bin\Debug\netcoreapp3.1\my-app.1.0.0.deb
```
Your application is installed into `/usr/local/share/my-app`. Invoke it by running `/usr/local/share/my-app/my-app`:
```bash
/usr/local/share/my-app/my-app
```
### Note
You can invoke the packaging tools manually, using a MSBuild target instead of using the a .NET Core CLI tool:
```
dotnet msbuild [your-project].csproj /t:CreateZip /p:TargetFramework=netcoreapp1.1 /p:RuntimeIdentifier=win7-x64 /p:Configuration=Release
```