mirror of
https://github.com/quamotion/dotnet-packaging.git
synced 2026-02-15 05:35:56 +00:00
101 lines
3.2 KiB
Markdown
101 lines
3.2 KiB
Markdown
# Packaging utilities for .NET Core
|
|
|
|
[](https://www.nuget.org/packages/Packaging.Targets)
|
|
[](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
|
|
```
|