3 ms·
Reliably deploying C# desktop app is total nightmare in comparison to single exe generated by Delphi's / Lazarus.
by FpUser 3y ago
Reliably deploying C# desktop app is total nightmare in comparison to single exe generated by Delphi's / Lazarus.
- xupybd 3y agoI've found .Net deployments to be rock solid and easy. What problems do you hit?
- wsc981 3y agoA couple of months ago I started working at a company that (mainly) develops C# libraries. The pipeline to deploy is complicated. Using a tool like ILMerge to combine DLLs into a single DLL (to prevent DLL hell issues). Using Babel to obfuscate the code base. Using nuspecs to create a Nuget package from the DLLs and various metadata. Signing the DLLs with some certificate. Then, if native stuff is included, also ensure the Nuget package can be deployed on all supported architectures. Probably some more stuff. Setting up a pipeline in Azure devops for a product I am working on, for the company, is already taking me a week and will probably take another couple of days to complete. But at least it’s a one-time task.
- zx14 3y agoWell, a lot of those requirements are highly bespoke to your task and to your team. My C# pipelines and C# apps are far easier to package and deploy than my Python apps for example. And, as you said, the pipeline is normally a one time cost.
- IshKebab 3y agoComparing to Python is not exactly fair. I don't think there are any languages that have a worse deployment experience. How does it compare to Go or Rust?
- Thiez 3y agoThey want obfuscation. Rust libraries necessarily include the AST for public generic functions. So it may not be suitable.
- IshKebab 3y agoI think that's a totally different topic, but regardless it's the same with C++ and I don't see that being a big issue to C++ library vendors. Rust doesn't have a stable ABI so it's not like you could realistically distribute a closed source "native" Rust library anyway.
- FpUser 3y agoWe were talking Delphi vs C#. Where does Python fit in?
- xupybd 3y agoAh, I've not had to combine DLLs, obfuscate code, sign code or create Nuget packages. All of that does sound painful. What makes it easier in other languages? Is it a matter of better tooling?
- wsc981 3y agoI am not sure if it’s easier in other languages (no experience except mobile dev). But I do know packaging macOS and iOS apps is also a painful process and becomes more painful over time (e.g. Apple’s recently introduced notarization process).
- mycall 3y agoC# can generate single executables now.
- pjmlp 3y agoKind of. Depends if we are speaking about Xamarin/Mono AOT, .NET Native, Native AOT or IL2CPP. Each of those ones has plus and minus, none of them allow to pick a random .NET application and just compile it straight into native code.