diff --git a/tools/linuxfs/overlay/usr/local/bin/droiddeck-wincomponents b/tools/linuxfs/overlay/usr/local/bin/droiddeck-wincomponents index d98e6d66a..02d66bca3 100755 --- a/tools/linuxfs/overlay/usr/local/bin/droiddeck-wincomponents +++ b/tools/linuxfs/overlay/usr/local/bin/droiddeck-wincomponents @@ -649,7 +649,11 @@ def overrides_value(names): name = name.strip().lower() if name and re.fullmatch(r"[a-z0-9._-]+", name) and re.fullmatch(r"[nb,]*", mode): modes.pop(name, None) - modes[name] = mode if "=" in entry else "n,b" + mode = mode if "=" in entry else "n,b" + # dotnet40 has no native mscoree.dll; native-only would hide Wine's loader and fail IL-only apps. + if name == "mscoree" and mode == "n": + mode = "n,b" + modes[name] = mode return ";".join("%s=%s" % item for item in modes.items()) diff --git a/tools/tests/test_wincomponents.py b/tools/tests/test_wincomponents.py index d7686ebf1..ee4f250c7 100644 --- a/tools/tests/test_wincomponents.py +++ b/tools/tests/test_wincomponents.py @@ -261,6 +261,7 @@ class WinComponentsTest(unittest.TestCase): def test_overrides_value_last_word_wins_and_refuses_junk(self): self.assertEqual(MODULE["overrides_value"](["a", "b=n", "a=b", "bad;name", "c=x"]), "b=n;a=b") + self.assertEqual(MODULE["overrides_value"](["mscoree=n"]), "mscoree=n,b") class PendingWaitTest(unittest.TestCase):