6 ms·
"Although the application did run correctly, it threw an exception that gdiplus.dll could not be found. It makes sense, that’s a Windows component so it’s not a
by jorgeleo 10y ago
"Although the application did run correctly, it threw an exception that gdiplus.dll could not be found. It makes sense, that’s a Windows component so it’s not available on Linux.
But my point here is that although being the .NET Core application it’d still crash, so imagine what would happen if I’d publish it to some Linux server – everything would seem to work, but actually it wouldn’t. Another point for the .NET Core development on the Linux instead of Windows."
I am baffled... so silent crashes and the illusion of working is a plus... really?
I hope I am missing something
- tobz 10y agoIt seems like he was happy that he was developing on Linux, because Linux is not the happy case for .NET. By doing so, he discovered a bug he might not have otherwise discovered until he was running his project on a Linux environment.
- dsp1234 10y agoLinux is the default environment for the official .net core docker images. You can see this on Microsoft's official docker page[0]. For non-linux builds, you have to specifically ask for the nanoserver images. ex: microsoft/dotnet:latest is a debian based image[1] microsoft/dotnet:core is a debian based image[2] [0] - https://hub.docker.com/r/microsoft/dotnet/ https://hub.docker.com/r/microsoft/dotnet/ [1] - https://github.com/dotnet/dotnet-docker/blob/master/1.0.0-preview2/debian/Dockerfile https://github.com/dotnet/dotnet-docker/blob/master/1.0.0-pr... [2] - https://github.com/dotnet/dotnet-docker/blob/master/1.0/debian/core/Dockerfile https://github.com/dotnet/dotnet-docker/blob/master/1.0/debi...
- tobz 10y agoSure, for .NET Core, that sounds accurate. If you take the .NET ecosystem as a whole: the CLR, the tooling, the libraries, etc.. Windows is the happiest case. That's at least how I take his specific point.
- Vendan 10y agoI think the point is "develop on the platform you are going to use". You'd get that error when you were developing on linux, so it'd never make it to production. If you developed on windows, you'd never get the error, cause you have gdiplus.dll. Still you should be at least testing on something matching the target platform, but catching this kind of stuff early is a plus!
- NetStrikeForce 10y agoWell, I guess he wouldn't have used gdiplus.dll if he was planning to run the app on Linux, so I'm guessing the conclusions should be: - If you're doing multi-platform software, don't use platform specific libraries. - If you're doing multi-platform software, test on all your target OSes. Use any OS that makes you productive.
- Vendan 10y agoJust to clarify, he didn't use gdiplus.dll, he used System.Drawing, which in turn uses gdiplus.dll.
- NetStrikeForce 10y agoYou're right, thanks!