Add explicit app manifest to desktop project

After the .NET Core bump to version 3.0 in the 2019.1011.0 release,
reports popped up of the game not starting any more on some computers
using Intel graphics cards (HD 3000 in particular).

After investigation the auto-generated application manifest changed in
.NET Core 3.0. In particular this seems to be a root cause for the
failed start-ups on Intel cards, due to a Windows version compatibility
section appearing. The section in turn affects some WinAPI calls like
GetVersionEx, which will return major version 10 instead of 6 if
compatibility with Windows 10 is declared. This combined with a broken
check in the Intel OpenGL driver caused the crashes.

To resolve this without having to patch binaries, add an explicit
application manifest to the desktop project with the compatibility
section removed.
This commit is contained in:
Bartłomiej Dach 2019-12-07 19:51:54 +01:00
parent 52a0d98012
commit ff8544597c
2 changed files with 21 additions and 0 deletions

20
osu.Desktop/app.manifest Normal file
View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<assemblyIdentity version="1.0.0.0" name="osu!" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
</applicationRequestMinimum>
</security>
</trustInfo>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</asmv1:assembly>

View File

@ -8,6 +8,7 @@
<Title>osu!lazer</Title>
<Product>osu!lazer</Product>
<ApplicationIcon>lazer.ico</ApplicationIcon>
<ApplicationManifest>app.manifest</ApplicationManifest>
<Version>0.0.0</Version>
<FileVersion>0.0.0</FileVersion>
</PropertyGroup>