sillsdev / sillsdev/icu-dotnet

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

Open
#148 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C#
Stars
83
Forks
33
Avg merge
3h 21m
Merged PRs (30d)
1

Description

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

  • icu-dotnet to provide a config option to only look for Windows' version of icu dlls,
  • a separate version of icu-dotnet dedicated for Windows that always use Windows' version of icu dlls, and
  • a version of icu4c.Win.Min and/or icu4c.Win.Full.Bin containing dlls that internally pass through to Windows' version of the icu dlls.

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the ICU DLL search and loading logic, then review how the wrapper currently finds application-provided ICU4C binaries on Windows. Add the requested fallback to Windows' system32 ICU DLLs when standard folders do not contain them, while preserving application-provided binaries; verify behavior on a supported Windows 10 system.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.