net-commons / common-logging

A portable logging abstraction for .NET
http://net-commons.github.io/common-logging
Apache License 2.0
649 stars 203 forks source link

Can't install Common.Logging.Portable into Xamarin iOS or Android PCL projects #157

Open ghost opened 6 years ago

ghost commented 6 years ago

I had hoped that I would be able to target netstandard in my application, bypassing this issue, but Xamarin.Forms and Visual Studio for Mac are still not ready for netstandard.

I am not able to install Common.Logging.Portable into Xamarin iOS or Android native projects.

I suspect that the full name of the PCL profile for Common.Logging.Portable is incorrect, and that maybe confusing nuget about compatibility.

Common.Logging.Portable.2010.csproj#L14 shows that the assembly is build for PCL Profile328.

Microsoft's Nuget docs state that the full name of Profile328 is portable-net40+sl5+win8+wpa81+wp8.

Common.Logging.Portable.nuspec#L20 encodes the full name as portable-win+net40+sl40+wp7+wpa81.

Some amount of substitution of the full name components is permitted, but I don't think that sl5 and sl40 are compatible, for instance. I suspect that will prevent the install. I don't actually know what PCL profile it is that the full name used in the Common.Logging.Portable nuspec would map to.

Is there any reason that the Microsoft-specified full name for Profile 328 (portable-net40+sl5+win8+wpa81+wp8) isn't used?

ghost commented 6 years ago

As an experiment, I repackaged the contents of the Common.Logging.Portable 3.4.1 nuget into a different nuget, but used the documented full name for Profile 328. It installed just fine into my Android and iOS native application projects, and runs just fine as well.

I think it's just a 3-line change in Common.Logging.Portable.nuspec to use the right full profile name instead of the one that's there. I don't have a machine on which I can build up a full dev environment for this project. I can supply an untested PR, but it might be easier for us both if you are able to make the change yourself.