Hi Lemmings, I wondered if anyone had successfully created a C# project that uses winforms on linux.
I just can’t figure out how to do it.
I use Arch and have full dotnet 6 and 8 packages; but I can’t dotnet new winforms as the template seems to not exist.
I also have installed mono and monodevelop installed, but even the simplest solution (Console App) can’t load correctly (currently I have /usr/share/dotnet/sdk/8.0.102/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.Shared.targets(152,5) : error MSB4062: The "CheckForImplicitPackageReferenceOverrides" task could not be loaded from the assembly /usr/share/dotnet/sdk/8.0.102/Sdks/Microsoft.NET.Sdk/targets/../tools/net472/Microsoft.NET.Build.Tasks.dll. Invalid Image Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. but there were different similar errors before, these errors.
I don’t really want to boot up a VM every time I have to code on that project, but I’m starting to feel desperate about this.

TLDR: How does one create and work on a WinForms C# project with linux ? Any suggestions are welcome

Some clarifications for future readers :

  • It is for a school group project; winforms in imposed, which sadly won’t let me go with Avalonia
  • Tramort@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    8 months ago

    I know it’s possible. I’ve used a keepass client on Linux that required Winforms; I think it was keepassx.

    Mono was how I got it to work.

    • nopeOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      8 months ago

      well, mono in itself seems to work and I have successfully built the hello world winforms program using mono, but the monodevelop IDE won’t seem to work at all, which would make coding harder than it should be.
      I’ve also seen things online saying that monodevelop is half dead, so I don’t have much hope about this