I recently inherited a .NET application, written in C#. I know little to nothing
about any of the aforementioned, but I do know how to use a web search and/or
AI chat bot to figure things out.
That being said, I installed Mono locally, as one does when they are attempting
to run .NET code on a Linux machine, in my case, on a Debian install.
Lo and behold, mono
ran fine, but that’s for running compiled executables.
The csharp
command also ran run, but that’s an interactive C# REPL.
Seems like the thing I wanted was csc
, the C# compiler, so I could take the
.cs
file I had and compile that to an .exe
which could then be executed with
mono
.
Keep in mind, I learned this from what I would consider a reputable source, the
Mono Project documentation.
Of course, when I went to run that and was greeting with:
% csc
zsh: command not found: csc
Already pretty salty that I am needing to work with a .NET application,
considering the entirety of our existing stack is in Node.js, I got to
sleuthing around, as I wasn’t going to let this beat me.
Sure, I could have ventured into using the mono
Docker image, but I really
wanted to get things running locally before attempting to Dockerize things.
So turns out, on Debian, the command isn’t csc
, it’s mono-csc
.
Why? No freakin’ clue. It would have made a bit more sense if all of the
commands were prefixed that way, so csharp
was mono-csharp
but that wasn’t
the case at all.
Mystery solved, with more mysteries to unravel as I try to get the app in it’s
entirety running on Linux, and not just an individual .cs
file.