@jonpryor found that on Windows, shared library name hashes are
generated using the Windows path separator character, while the
runtime expects a Unix one. This discrepancy leads to different
hashes for the same satellite assembly on Linux/macOS and Windows.
Fix by explicitly converting any \ characters in the satellite
assembly name to / prior to hash generation.
Fixes: https://github.com/dotnet/android/issues/9200
@jonpryor found that on Windows, shared library name hashes are generated using the Windows path separator character, while the runtime expects a Unix one. This discrepancy leads to different hashes for the same satellite assembly on Linux/macOS and Windows.
Fix by explicitly converting any
\
characters in the satellite assembly name to/
prior to hash generation.