4 ms·
So, does this also replace/update the .NET Framework that is bundled with Windows 10, meaning that you can release a .NET EXE and ask people to use the latest v
by badsectoracula 8y ago
So, does this also replace/update the .NET Framework that is bundled with Windows 10, meaning that you can release a .NET EXE and ask people to use the latest version of the .NET like you can release a .JAR and you can ask people to have the latest version of Java, or you have to bundle the entire runtime (be it via a fat compiled AOT or regular bundling) with your application?
I ask because one of the positive things about .NET Framework 4 is that i can create a tiny .EXE and give it away and expect that people will have the runtime to run it since it is already part of Windows.
- testvox 8y agoYou will have the option to do either. Require a runtime be provided by the system or package one together with your application.
- badsectoracula 8y agoYes but will this 'required runtime provided by the system' be part of Windows like it is with .NET Framework 4 (that is also updated automatically via Windows updates) or something that the user will have to go out of their way to install like Java? In many cases, this is the crucial difference between deciding to bundle the runtime yourself or not.
- kevingadd 8y agoWell, even at present there's no guarantee the end user has the version of .net framework and libraries you need. You might need 4.8.x stuff and they only have 4.7.x. Maybe they're on win8 and not 10, or they're behind on updates, etc. Typically the solution for this is to either sense what's installed (and use an installer) or just ship it and let the error messages help them figure out what to do.
- Dylan16807 8y agoYou can't even guarantee the user has a computer. But it's a very bad idea to throw error messages at the user mid-install, and it hurts to bundle an entire framework installer inside yours. If you can target 4.7 and know it will exist on computers with windows 10, that's much better.
- testvox 8y agoThis is already supported in dotnet core 2.2 so I would assume it will continue to be supported. https://docs.microsoft.com/en-us/dotnet/core/deploying/#framework-dependent-executables-fde https://docs.microsoft.com/en-us/dotnet/core/deploying/#fram... > Starting with .NET Core 2.2, you can deploy your app as an FDE, along with any required third-party dependencies. Your app will use the version of .NET Core that's installed on the target system. > Your app can be run by calling the published executable without invoking the dotnet utility directly.
- Arnavion 8y agoFrom the 3.0-preview5 announcement: >You can now publish a single-file executable with `dotnet publish`. This form of single EXE is effectively a self-extracting executable. It contains all dependencies, including native dependencies, as resources. At startup, it copies all dependencies to a temp directory, and loads them for there. It only needs to unpack dependencies once. After that, startup is fast, without any penalty. https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0-preview-5/ https://devblogs.microsoft.com/dotnet/announcing-net-core-3-...
- badsectoracula 8y agoThis is for .NET Core 3, not for .NET 5. While .NET 5 might provide the same tool, it doesn't answer if it will also provide a .NET Framework 4-like functionality where the .EXE relies on a runtime already installed on the user's system and if that framework will be something the developer will need to provide and/or be part of Windows 10 like .NET Framework 4.
- Arnavion 8y agoAnd .Net 5 will be the release after .Net Core 3, so I assume they won't go ahead and remove the feature for it.
- badsectoracula 8y agoSorry, i edited my message above after you replied it to add a bit of more detail what i mean.
- deleted 8y ago[deleted]
- Arnavion 8y agoAh, got it. You want to be able to ship something that relies on an existing installed runtime and don't want to bundle the runtime with your executable.