Closed bastianeicher closed 3 years ago
@bastianeicher Thanks for taking the time to do this. However, I do not wish to add the extra support burden of supporting net45 and strong naming. Is there a specific reason you want to add this to this library?
I would like to use your library Spectre.Console (which has a dependency on Wcwidth) in Zero Install which targets .NET Framework 4.5 and .NET 5.0 and uses strong naming (and can therefore only use dependencies with strong naming).
I've adjusted the PR to include a reference to Microsoft.NETFramework.ReferenceAssemblies
, allowing the build to succeed without .NET Framework 4.5 installed (e.g. during CI builds).
@bastianeicher While I sympathize with your problem, I have no intention of supporting .NET framework or strong naming in Spectre.Console either. I could stretch myself to support strong naming if there was a good enough reason, but not .NET framework. Sorry.
My recommendation would be to drop net45 and strong naming to use Spectre.Console in your project or use something like StrongNamer.
Ok, thanks for the feedback.
I do intend to retarget to .NET Framework 4.6.1 sooner or later, so that problem will take care of itself.
Unfortunately StrongNamer is not really an option for me, since I also publish NuGet packages for others to consume, so they'd have a transitive dependency on a still-unsigned Spectre.Console. I suppose the only arguments I can make for strong naming are: adding it is pretty easy, it has no runtime impact (therefore shouldn't add to the support burden) and MS recommends it since it increases the number of projects that consume a lib.
This PR adds a .NET Framework 4.5 build target to the existing .NET Standard 2.0 target (which can be used for .NET Framework 4.6.1+).
It also adds strong name signing. While this is losing importance in the .NET Core era, MS guidelines still recommend strong-name signing for open-source libraries: https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/strong-naming