dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.23k stars 4.72k forks source link

True self-contained builds #43980

Open 0xCA opened 4 years ago

0xCA commented 4 years ago

Currently there is a Visual C++ Redistributable 2015 requirement for .Net Core 3. This way we can't have truly portable apps without the need of installing dependency first.

Self-contained option is really useful, but it's not truly self-contained for now. It's easy to imagine several situations where completely independent assembly would be great to have. Utility app that should run from USB drive on any Win7SP1+ computer, client app that should work without administrator access at limited workstations (installing vcredist requires it), etc.

I'm sorry if there is a way to have it already which I couldn't find. Or if it is a wrong place or wrong way to write my suggestion. But if it's right it'd be great to have these scenarios covered. Thank you for your work! I can't wait for .Net 5 and AOT.

joeloff commented 4 years ago

Still listed as a requirement: https://docs.microsoft.com/en-us/dotnet/core/install/windows?tabs=netcore31#dependencies

On some OS versions the VC redist requires additional patches to be installed, e.g. https://support.microsoft.com/en-us/help/2533623/microsoft-security-advisory-insecure-library-loading-could-allow-remot

The patch is distributed as an MSU, and patched through CBS. If you want to include patch redist for server OS there will likely need to be different sets of binaries that need to be linked into the SCD image depending on what its targeting.

ghost commented 4 years ago

Tagging subscribers to this area: @vitek-karas, @agocke See info in area-owners.md if you want to be subscribed.