How can I create Debian install packages in Windows for a Visual Studio project?
-
08-06-2019 - |
Question
I'm developing some cross platform software targeting Mono under Visual Studio and would like to be able to build the installers for Windows and Linux (Ubuntu specifically) with a single button click. I figure I could do it by calling cygwin from a post-build event, but I was hoping for at best a Visual Studio plugin or at worst a more Windows-native way of doing it. It seems like the package format is fairly simple and this must be a common need.
edit: Re-asked question under other account due to duplicate login issue.
Solution
I am not aware of any plugin that does it natively, especially since Mono users seem to prefer MonoDevelop.
However, it should be possible to use Cygwin and a custom MSBuild Task or Batch file in order to achieve that by using the native .deb creation tools.
OTHER TIPS
Debian's .deb packages are just "ar" archives containing tarballs. You can manipulate both types of files using cygwin or msys quite easily:
$ ar xv asciidoc_8.2.1-2_all.deb
x - debian-binary
x - control.tar.gz
x - data.tar.gz
$ tar -tzf control.tar.gz
./
./conffiles
./md5sums
./control
Or you can install all the "standard" Debian stuff using cygwin, I suppose, but most of that stuff won't benefit you much if you're building a .Net app anyway.
this must be a common need.
Some small percentage of software developers develop for .NET
Some very small percentage of that group develop for mono
Some small percentage of that group wants to provide .debs instead of just a zip
Some very small percentage of that group wants to build their linux apps on windows instead of natively on linux
It's just you :-)
If you use the .NET Core SDK, you can use dotnet-packaging tools to create a Debian installer package from any platform that runs .NET Core.
For example, running dotnet deb -c Release -f netcoreapp2.1 -r ubuntu.16.04-x64
would then create a .deb
file which you can use to install your app on Ubuntu 16.04.
The project repository has more details.
If you don't mind using Java tools it's possible to build Debian packages with jdeb in an Ant script. That's probably lighter than relying on Cygwin.