-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Host should add supportedOs to application manifest to avoid shims from the Windows OS - Windows only #3028
Comments
Setting 3.0 per last comment in dotnet/sdk#1899 per this:
|
@ericstj Since dotnet/sdk#2545 basically solved this for apphost (app which have their own .exe), do you think that it's now done? |
Not every application runs with its own exe, what about for the application launched with dotnet foo.dll or for the dotnet commands? In the case of desktop Exe's and tools we always added the supportedOs entries so the tools wouldn't get app-compat shims by default. |
Can we do nothing until we get feedback this needs to be fixed? Whatever we do here will always be imperfect. There are way too many things in the classic Win32 that depend on your .exe identity. I think we should make the story simple and always use apphost .exe for the Windows-specific apps. |
I see this issue as less about the Windows-specific app decision and more about what should the default behavior be for dotnet.exe. I opened this issue merely to address supportedOS entries for the host so that it doesn't get Windows-XP compat shims as it does today. That could be relevant for x-plat applications as well. I'm not sure we'll get feedback on this since the behavior of these version lie shims can be very subtle and folks might write it off or work around it. I suspect the Windows folks would have an opinion if we told them that all .NETCore applications were being treated as XP applications. |
It should be "latest known OS". We have fixed that already, no? |
Not in the latest dotnet.exe that I downloaded. If you do, then please close this issue. I only meant for this issue to track a fix to the avoiding the version-lie shims for dotnet.exe-based apps. |
Modified the title to better match the desired behavior. |
My understanding is that Mac/Linux haven't invested this much in appcompat but I don't know what I don't know. I did a quick web search and didn't see anything. @stephentoub or @janvorli might know if there's anything similar in the binary format for unix executables that communicates the compatibility of the app. |
@ericstj Could you please share the repro steps w/ the expected and actual behavior to demonstrate the issue you think needs fixing? I am not able to find the compat in a simple hello world. |
Here is a sample. You can build that and run the desktop version and the core version and observe the difference.
|
Ok, this needs to be fixed in: https://github.com/dotnet/core-setup/blob/master/src/corehost/cli/dotnet/CMakeLists.txt Also, I have noticed that apphost with standalone publish has two manifests now: We should fix https://github.com/dotnet/core-setup/blob/master/src/corehost/cli/apphost/CMakeLists.txt to not have any manifest at all, so the one copied from the managed .dll is the only one there. |
Nevermind, I see @vitek-karas fixed it. |
See dotnet/sdk#1899.
Essentially we should add a application manifest file to dotnet.exe with all the known supportedOs entries.
The text was updated successfully, but these errors were encountered: