postsharp / PostSharp.Community.Packer

Packs all your .dlls into your main executable so it becomes standalone
MIT License
8 stars 1 forks source link

  PostSharp.Community.Packer

Embeds dependencies as resources so that you can have a standalone executable.

This add-in only works under .NET Framework. In .NET Core, we recommend instead upgrading to .NET Core 3 or later and use the single file executable feature.

May 27, 2020. We've covered this add-in in a blog post.

This is an add-in for PostSharp. It modifies your assembly during compilation by using IL weaving.

CI badge

Example

Your project would normally result in MyProject.exe which requires Newtonsoft.Json.dll and Soothsilver.Random.dll as dependencies because you used those NuGet packages.

If you use this add-in, instead those two DLLs will be embedded into MyProject.exe as resources and loaded from there.

Installation

  1. Install the NuGet package: PM> Install-Package PostSharp.Community.Packer
  2. Get a free PostSharp Community license at https://www.postsharp.net/essentials
  3. When you compile for the first time, you'll be asked to enter the license key.
  4. Add [assembly: Packer] into the beginning of one of your source files.

You can then distribute just the main output assembly file. It will be enough.

There are documented configuration options in the Packer attribute. Set them in your source code to change them from their defaults.

Building the project

To build the project on your local machine, execute this from a VS 2019 command prompt:

msbuild /p:Configuration=Release
nuget pack PostSharp.Community.Packer.nuspec

For an official build:

  1. Install SignClient

    dotnet tool install --tool-path . SignClient
  2. Sign

    set SIGNSERVER_SECRET=****
    sign.cmd

Copyright notices

Published under the MIT license.