Vincent Povirk : mscoree: State the . NET and Mono versions when a runtime is missing.

Alexandre Julliard julliard at winehq.org
Wed May 11 13:02:58 CDT 2011


Module: wine
Branch: master
Commit: 92563de3ea5165e071ae44bc1b97040b80d52d58
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=92563de3ea5165e071ae44bc1b97040b80d52d58

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Wed May 11 10:07:23 2011 -0500

mscoree: State the .NET and Mono versions when a runtime is missing.

---

 dlls/mscoree/metahost.c |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/dlls/mscoree/metahost.c b/dlls/mscoree/metahost.c
index 878cdee..98f1cbb 100644
--- a/dlls/mscoree/metahost.c
+++ b/dlls/mscoree/metahost.c
@@ -97,6 +97,16 @@ static void CDECL do_nothing(void)
 {
 }
 
+static void missing_runtime_message(const CLRRuntimeInfo *This)
+{
+    if (This->major == 1)
+        MESSAGE("wine: Install Mono 2.6 for Windows to run .NET 1.1 applications.\n");
+    else if (This->major == 2)
+        MESSAGE("wine: Install Mono for Windows to run .NET 2.0 applications.\n");
+    else if (This->major == 4)
+        MESSAGE("wine: Install Mono 2.8 or greater for Windows to run .NET 4.0 applications.\n");
+}
+
 static HRESULT load_mono(CLRRuntimeInfo *This, loaded_mono **result)
 {
     static const WCHAR bin[] = {'\\','b','i','n',0};
@@ -109,11 +119,11 @@ static HRESULT load_mono(CLRRuntimeInfo *This, loaded_mono **result)
     int trace_size;
     char trace_setting[256];
 
-    if (This->mono_abi_version == -1)
-        MESSAGE("wine: Install the Windows version of Mono to run .NET executables\n");
-
     if (This->mono_abi_version <= 0 || This->mono_abi_version > NUM_ABI_VERSIONS)
+    {
+        missing_runtime_message(This);
         return E_FAIL;
+    }
 
     *result = &loaded_monos[This->mono_abi_version-1];
 
@@ -1015,7 +1025,7 @@ static HRESULT WINAPI CLRMetaHost_GetRuntime(ICLRMetaHost* iface,
                 return IUnknown_QueryInterface((IUnknown*)&runtimes[i], iid, ppRuntime);
             else
             {
-                ERR("Mono is missing %s runtime\n", debugstr_w(pwzVersion));
+                missing_runtime_message(&runtimes[i]);
                 return CLR_E_SHIM_RUNTIME;
             }
         }
@@ -1309,7 +1319,10 @@ HRESULT get_runtime_info(LPCWSTR exefile, LPCWSTR version, LPCWSTR config_file,
                     &IID_ICLRRuntimeInfo, (void**)result);
         }
 
-        ERR("No %s.NET runtime installed\n", legacy ? "legacy " : "");
+        if (legacy)
+            missing_runtime_message(&runtimes[1]);
+        else
+            missing_runtime_message(&runtimes[NUM_RUNTIMES-1]);
 
         return CLR_E_SHIM_RUNTIME;
     }




More information about the wine-cvs mailing list