dotnet / runtime

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

Consider putting the runtime in a sub folder #2572

Open Petermarcu opened 7 years ago

Petermarcu commented 7 years ago

Steps to reproduce

Publish a standalone app

Expected behavior

My app is in the root and all the runtime goo is hidden in a sub folder

Actual behavior

I publish my app and I get over 100 binaries that aren't mine. They are just noise for my users who try to launch my app from my folder.

Environment data

gkhanna79 commented 7 years ago

The output is a function of publish operation that CLI implements. Secondly, the layout has strong dependencies with the host and where SharedFX can be found.

Petermarcu commented 7 years ago

yeah, I put the issue here because I assumed publish was putting it where the host could find. In order to do something like this, I assume we'd have to change the host and then update publish. Is that correct?

PurelySimple commented 7 years ago

Agreed that this is annoying for a self contained deployment. I thought about distributing my application with a shortcut to the actual application at an upper level but obviously this is not cross platform compatible. If the application has such a strong dependency on having the .NET Core runtime in the same directory, could we get a publish option that combines the entire runtime into a single DLL? It's not like our end user cares what version of what component of the core runtime we're using anyway.

menasheh commented 5 years ago

anything to be done about this?

dagood commented 5 years ago

@vitek-karas @swaroop-sridhar is this something on your plate? Is the scenario maybe covered by single-file bundling?

vitek-karas commented 5 years ago

If single-file can be used, then it basically solves this problem. For non-single-file case, this would require SDK and hosting changes which we haven't considered yet.

@menashes I understand the general desire of this issue, but I would be interested in your particular scenario and why is it important to you? Is it that you "don't like it" (which is a valid reason, just asking), or is it that this creates an issue for the users, or something else entirely?

Would this be something you would expect an option for during dotnet publish? Or you would like to have other ways to get it?

menasheh commented 5 years ago

@vitek-karas I would expect this to be the default behavior for dotnet publish.

We have a .net core console app which we build for Windows and Mac.

The app builds reports for our client services team. The business people expect an executable file and a readme. If there are 8 files in the folder they can probably find those two files easily enough in Finder or Explorer. If there are 235 files in the folder, it is too complicated to use.

Overall, way too much scrolling necessary to get to the files you actually need.

nmocruz commented 4 years ago

I would like to have this to. Someting like binto place all dlls. Many it managers are very pitty when comes to changes, they are used to have a package with a web.config and bin folder now they get an ugly bunch of files, and they have to find config files mixed with hundreds off dlls. I have some project that I want to migrate to donet core, almost ready to go, but the It doesn't like much this putting any change as an obstacle to move to donet core.

swaroop-sridhar commented 4 years ago

@nmocruz @menasheh
Please take a look at the proposed single-file design for .net 5 to see if it suits your requirements.

Changing the file layout for all apps requires substantial changes, definitely beyond the scope of .net 5.

liesauer commented 4 years ago

@nmocruz @menasheh if single-file is not suitable for you, you can have a try at NetCoreBeauty, it supports both net core 2.x and 3.x. and it only moves dlls into sub-folder, other files will be left at where they should be.

nmocruz commented 4 years ago

I really prefer a solution like NetCoreBeauty https://github.com/nulastudio/NetCoreBeauty Thanks for the advise

On Mon, 8 Jun 2020 at 08:00, L!εsAμεr notifications@github.com wrote:

@nmocruz https://github.com/nmocruz @menasheh https://github.com/menasheh if single-file is not suitable for you, you can have a try at NetCoreBeauty https://github.com/nulastudio/NetCoreBeauty, it supports both net core 2.x and 3.x. and it only moves dlls into sub-folder, other files will be left at where then should be.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dotnet/runtime/issues/2572#issuecomment-640408182, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHGRZJG4FXUVE7A7BLJ3ILRVSD7BANCNFSM4LDP3GNQ .