Updating PCL projects for compatibility with .NET Standard
.NET Standard libraries are set to replace the Portable Class Libraries (PCL) that Xamarin.Forms has extensively used in the past. Both PCL profiles and .NET Standard versions have a complicated web of platforms that they target and compatibility with each other. Microsoft provides more in-depth information here.
Beginning with version 2.4.2017.2.195, ComponentOne Studio for Xamarin supports .NET Standard 1.1 which has support for some PCL profiles. Profile 111 (which is the default for the Xamarin.Forms PCL project template) is supported, but other older profiles are not.
If you encounter an error message when attempting to add ComponentOne Studio for Xamarin projects such as
Or
...you'll need to update the profile of your PCL.
To update the PCL profile of your project:
- In Visual Studio, right click you PCL project, and select the option “Unload Project”
- Right click on your PCL project again, and choose the option “Edit YourProjectName.csproj”
- Inside your csproj, look for the TargetFrameworkProfile node, or simply do a search for the term profile.
You should be able to find something like this:
<TargetFrameworkProfile>Profile49</TargetFrameworkProfile>
- Edit the string in this node to read Profile111
- Save your edits and reload the project
You should now be able to add the NuGet packages to your project successfully. Keep in mind that different PCL profiles and .NET Standard versions provide compatibility with different, and checking Microsoft’s .NET Standard compatibility page should be your first step.
Microsoft and Xamarin seem poised to eventually move their project templates to use .NET Standard instead of PCLs, but updating the profile will remain something to keep in mind when dealing with older projects for some time to come.