Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
Lucene.Net 4.8.0
-
None
-
None
Description
As discussed on the dev mailing list, I would like to submit a PR to add strong-naming to all the Lucene.Net assemblies.
Rationale:
Microsoft still recommends that libraries (but not applications) use strong-names. Modern frameworks like .NET Core/Xamarin/UWP have relaxed the assembly binding policy so that pain point is gone moving forward, but .NET Core still strong-names its assemblies which effectively means this ship has sailed (if anything was going to change further it would have changed in .NET Core).
I would strongly advocate that we follow the published guidance on this:
https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/strong-naming
specifically:
You should strong name your open-source .NET libraries. Strong naming an assembly ensures the most people can use it, and strict assembly loading only affects the .NET Framework.
This guidance is specific to publicly distributed .NET libraries, such as .NET libraries published on NuGet.org. Strong naming is not required by most .NET applications and should not be done by default.
Also:
DO NOT publish strong-named and non-strong-named versions of your library. For example, Contoso.Api and Contoso.Api.StrongNamed.
Publishing two packages forks your developer eco-system. Also, if an application ends up depending on both packages the developer can encounter type name conflicts. As far as .NET is concerned they are different types in different assemblies.