diff options
Diffstat (limited to 'oowintool')
-rwxr-xr-x | oowintool | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/oowintool b/oowintool index 9e40a78102f7..e418ae410037 100755 --- a/oowintool +++ b/oowintool @@ -212,11 +212,21 @@ sub print_msvs_productdir() sub print_csc_compiler_dir() { - my $csc_exe = - reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v4/Client/InstallPath") || - reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.5/InstallPath") || - reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/.NETFramework/InstallRoot") . "v2.0.50727"; - print cygpath ($csc_exe, 'w', $output_format); + my $csc_exe; + my $ver = find_msvc(); + if ($ver->{'ver'} == "9.0") { + # We need to compile C# with the 3.5 or 2.0 compiler in order + # for the assemblies to be loadable by managed C++ code + # compiled with MSVC 2008. + $csc_exe = + reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.5/InstallPath") || + reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/.NETFramework/InstallRoot") . "v2.0.50727"; + } else { + # Is it enough to look for the 4.0 compiler? + $csc_exe = + reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v4/Client/InstallPath"); + } + print cygpath ($csc_exe, 'w', $output_format); } sub print_dotnetsdk_dir() |