Commit Graph

98 Commits

Author SHA1 Message Date
Rémi Bernon 500478cae9 mscoree: Improve non-neutral assembly lookup logic.
And neutral logic too, and the combinations with custom privatePath
config.

This fixes a crash with Mafia III launcher, when it tries to load its
localized strings from culture-specific assemblies to display its
warning popup message.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-03 09:23:43 +01:00
Esme Povirk f222f56414 mscoree: Use exe basename to name the default domain.
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-07 21:07:00 +02:00
Esme Povirk f87171c601 mscoree: Use builtin XNA implementation by default.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=32877
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-12 22:13:54 +02:00
Serge Gautherie e4e5eda3d9 mscoree: RegQueryValueExW() wants bytes, not chars.
Signed-off-by: Serge Gautherie <winehq-git_serge_180711@gautherie.fr>
Signed-off-by: Esme Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 10:45:29 +02:00
Vincent Povirk e3e0cb8ebc mscoree: Replace uses of mono_domain_assembly_open.
This function is only intended to be used for the entry point
assembly.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 12:36:05 +02:00
Vincent Povirk 049e50bcaa mscoree: Use mono_get_corlib to get mscorlib image.
Apparently, mono_domain_assembly_open is intended for the entry
point assembly only, and no longer works when mscorlib is passed
in.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 12:35:59 +02:00
Francois Gouget 3649fe09ed mscoree: Handle the shared wine-mono installation like the msi case.
Expect to find the wine-mono-<ver> directory in the same location as the
msi file, that is inside the mono directory.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 15:25:05 +01:00
Vincent Povirk 22e58b11a7 mscoree: Remove appdomain tracking.
This didn't work correctly with multiple runtime versions. We
should rely on Mono to keep track of AppDomains.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:26:53 +01:00
Alexandre Julliard df3c911c63 mscoree: Store the Mono base directory in Unicode. 2019-11-18 19:12:14 +01:00
Vincent Povirk 1fddf230ff Revert "mscoree: Call mono_thread_manage in GC Unsafe mode.".
This reverts commit d10f2c0723.

The bug we were working around has been fixed in upstream Mono and
in Wine Mono 4.9.4.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-04 22:50:34 +01:00
Vincent Povirk d10f2c0723 mscoree: Call mono_thread_manage in GC Unsafe mode.
The mono_thread_manage API expects to be called in GC Unsafe mode.

This has been the case for a while, but for some reason it only
caused problems in the Mono merge I'm working on now.

We don't need a matching exit call because we're shutting down
the runtime anyway, and we can't change GC modes after the runtime
shuts down.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-27 19:20:35 +01:00
Gijs Vermeulen d7031be892 mscoree: Support loading assemblies from path specified in config file.
Signed-off-by: Gijs Vermeulen <gijsvrm@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-18 20:20:14 +02:00
Alexandre Julliard f89ab56ef6 mscoree: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-05 17:34:22 +02:00
Vincent Povirk 6ee29c048c mscoree: Accept old framework build in exe metadata.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=27185
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-06 07:13:53 -05:00
Vincent Povirk 91e3ce8c5d mscoree: Try skipping c: when searching for support msi.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-15 12:50:25 +02:00
Vincent Povirk 30baa2a833 mscoree: Don't use a shared mono install with no drive letter.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-08 19:50:40 +02:00
Vincent Povirk 23181b40c5 mscoree: Update install process to account for shared installs.
This will install the support MSI if it's found in a shared
install. Otherwise, it'll fall back to appwiz as before.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-04 17:30:53 +02:00
Vincent Povirk dc2c580bdf mscoree: Search shared addon locations for mono runtime.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-04 17:30:51 +02:00
Vincent Povirk 179797a6fb mscoree: Check for mono runtime path in registry.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-04 17:30:48 +02:00
Piotr Caban cef4d3465b mscoree: Don't use strncasecmp.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-02 19:23:40 +02:00
Vincent Povirk 5baadda536 mscoree: Implement an override setting for .net libraries.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-11 22:15:23 +01:00
Vincent Povirk e41502b429 mscoree: Add support for config stream in GetRequestedRuntime.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=37751
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-25 12:30:12 +01:00
Alex Henrie e078e1654c mscoree: Make several string constants static.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-30 19:36:51 +01:00
Vincent Povirk bce8330f99 mscoree: Mono renamed mono_trace_set_assembly.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-05 19:36:15 +02:00
Vincent Povirk bb256b4f21 mscoree: Fix locking in GetRuntimeHost.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-02 20:20:27 +02:00
Vincent Povirk 57cdf8bfa8 mscoree: Implement RequestRuntimeLoadedNotification.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-01 19:21:02 +02:00
Vincent Povirk c5f72a72da mscoree: Update for mono profiler api v2.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-25 09:11:18 +02:00
Akihiro Sagawa 83aca41eb5 mscoree: Avoid using isdigit() for WCHARs.
Found with Coccinelle.

Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-17 21:57:11 +02:00
Sebastian Lackner e5404d4bf6 mscoree: Avoid buffer overflow when mono print handler returns huge string at once.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-03 10:05:09 +09:00
Vincent Povirk ccac8a455b mscoree: Enable crash chaining in Mono.
This allows winedbg to handle crashes and print native stack traces,
after Mono has attempted to print a managed stack trace.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-31 10:39:51 +09:00
Vincent Povirk 4dec065e2b mscoree: Restore previous domain whenever we set it.
Unmanaged APIs could be called directly or indirectly by managed code in
any domain, and we could create problems by not restoring the old one.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-09 18:41:05 +09:00
Charles Davis fdeaf812e2 mscoree: Implement ICorRuntimeHost::CreateDomain{, Ex}().
Signed-off-by: Charles Davis <cdavis5x@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-18 21:05:48 +09:00
Paul Gofman b9a0fe18e3 mscoree: Fix calling convention for mono callback functions.
ms_abi calling convention is required for x86_64 arch.

Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-21 17:01:45 +09:00
Vincent Povirk 26c9bd9f15 mscoree: Remove "Install Mono for Windows" message.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-14 03:11:25 +09:00
Vincent Povirk f34be7c690 mscoree: Remove search fallbacks when Wine Mono isn't installed.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-14 03:11:21 +09:00
Andrew Eikum 4d44363e60 mscoree: Set config path for default app domain.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-13 15:48:39 +09:00
Vincent Povirk 2ecd3772e3 mscoree: Send Mono's debug output to Unix stderr. 2015-09-07 15:03:49 +09:00
Vincent Povirk 6df7366e4e mscoree: Don't modify the PATH environment variable.
Wine Mono 4.5.4 eliminated the need for this.
2015-09-04 15:10:12 +09:00
Vincent Povirk 5cd6db0349 mscoree: Remove the runtime version selection logic and just use 4.0.
Mono has removed support for the .NET 2.0 profile, so we'll have to be
using 4.0 for everything next time we want to update.
2015-03-26 14:21:33 +09:00
Vincent Povirk 6ef156e656 mscoree: Use mono_runtime_quit in shutdown process. 2014-10-16 12:59:46 +09:00
Nikolay Sivov a99d8cb21b mscoree: Use E_NOT_SUFFICIENT_BUFFER definition. 2014-10-16 12:58:52 +09:00
Vincent Povirk 805da6bf83 mscoree: Accept "v4.0" as a runtime version in config files. 2014-07-15 10:23:46 +02:00
Frédéric Delanoy 8cdcf47001 mscoree: Use BOOL type where appropriate. 2014-02-19 11:37:02 +01:00
Frédéric Delanoy 3c6a4fe554 mscoree: Constify a character string. 2013-12-17 08:45:40 +01:00
Alistair Leslie-Hughes d8f54b4d49 mscoree: Implement IMetahostPolicy GetRequestedRuntime. 2013-11-22 11:35:57 +01:00
Alistair Leslie-Hughes 2d899505d7 mscoree: Rename function to match its use. 2013-10-30 11:21:31 +01:00
Frédéric Delanoy 38adec4ac5 mscoree: Use BOOL type where appropriate. 2013-10-25 13:36:01 +02:00
Vincent Povirk 5e81bad239 mscoree: Call Mono's System.Environment.Exit instead of duplicating it. 2013-10-25 13:35:36 +02:00
Vincent Povirk 770918a91b mscoree: Do a "normal" runtime shutdown from _CorExeMain.
This needs to work differently from CorExitProcess because we need to wait for
foreground threads and abort the rest.
2013-10-25 13:34:47 +02:00
Vincent Povirk 6b889fe918 mscoree: Remove support for multiple Mono ABI versions.
Having two instances of Mono loaded at once is problematic, and now that we
use the 2.0 runtime to support 1.x there's no need to support old versions.
2013-10-25 13:34:26 +02:00