Azure / DotNetty

DotNetty project – a port of netty, event-driven asynchronous network application framework
Other
4.1k stars 978 forks source link

No instructions/Hints for building on Linux? #601

Open pdxcodemonkey opened 2 years ago

pdxcodemonkey commented 2 years ago

My team is using DotNetty on a .net 6 project, and I'm experiencing different behavior on Linux (Ubuntu 20.04 in my case) than on Windows. Having ruled out most everything I could think of in my own code, I thought I'd attempt to build DotNetty locally and see if I could see what's what in a debugger, or at least add some logging that might provide a clue. The only build instructions I could find were on This old Wiki page, are these current? Among other things, it says to use build.sh to "launch FAKE on Linux", but build.sh isn't even a shell script as of this commit, it's been replaced with Powershell code. I tried to just run dotnet build from the root and this mostly seemed to work without use of FAKE, cake, et al, but attempting to run tests via dotnet test just resulted in a sea of red text about missing vairous things, like this:

Testhost process exited with error: It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '3.1.0' (x64) was not found.
  - The following frameworks were found:
      6.0.6 at [/usr/local/dotnet/shared/Microsoft.NETCore.App]
You can resolve the problem by installing the specified framework and/or SDK.
The specified framework can be found at:
  - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=3.1.0&arch=x64&rid=ubuntu.20.04-x64
. Please check the diagnostic logs for more information.

Test Run Aborted.

And this:

System.IO.FileNotFoundException: Could not find 'mono' host. Make sure that 'mono' is installed on the machine and is available in PATH environment variable.
   at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Helpers.DotnetHostHelper.GetMonoPath()
   at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Hosting.DefaultTestHostManager.GetTestHostProcessStartInfo(IEnumerable`1 sources, IDictionary`2 environmentVariables, TestRunnerConnectionInfo connectionInfo)
   at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyOperationManager.SetupChannel(IEnumerable`1 sources, String runSettings)
   at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyExecutionManager.StartTestRun(TestRunCriteria testRunCriteria, ITestRunEventsHandler eventHandler)

Test Run Aborted.

So I'm kind of at a loss. Is DotNetty inteneded to work on Linux? Is building/testing it possible on Linux? If so, how is it done? build.sh just contains Powershell code, am I supposed to install Powershell on my Ubuntu machine and run it, or was the bash code overwritten and never noticed?

It seems to me it would be great to have a clear, concise statement like in README.md or somewhere else prominent stating exactly which platforms are expected to work, how it's supposed to be built/tested on each, etc. Thanks!