sillsdev / icu-dotnet

C# wrapper for ICU4C
MIT License
62 stars 33 forks source link

Great if icu-dotnet can use Windows-supplied icu dlls. #148

Open AlissaSabre opened 3 years ago

AlissaSabre commented 3 years ago

Summary

Recent Windows 10 (since version 1703) come with ICU4C, in particular icuuc.dll, icuin.dll, and icudt.dll, as documented here. It's great if icu-dotnet can use them, as an option or at least when no icu dlls are provided in the folder where icu.net.dll is in.

Is your feature request related to a problem? Please describe.

I wrote several small tools using icu-dotnet and felt that the installation footprint of several MB (even when using Icu4c.Win.Min binaries) is too large when compared to the main parts of my tools (less than 50KB each)...

Describe the solution you'd like

icu-dotnet to search the icu dlls in Windows' system32 folder when it is running on Windows and doesn't find ones in the standard folders (in the current version).

Describe alternatives you've considered

Additional context

The ICU version that Windows bundles is controlled only by Microsoft, so I think it is a good idea that icu-dotnet can use application-provided icu dlls of a particular version. Use of Windows' version of icu is for programs that are not sensitive to ICU (primarily data) version differences.

ermshiperete commented 3 years ago

The Windows supplied version of ICU doesn't have the version number in the file names nor in the method names, so unfortunately getting this to work is a little more involved than telling icu-dotnet where to look for the ICU dlls.