Following this tutorial: https://oren.codes/2017/04/23/using-xamarin-forms-with-net-standard-vs-2017-edition/

  1. Create a PCL Cross Platform Forms app

  2. Remove the Xamarin.Forms nuget package from the platform-specific csproj.

  3. In Nuget Package Manager settings, select "Allow format selection of first package install"

  4. In the platform-specific csproj, add back the Xamarin.Forms Nuget package. Select "Package Reference" as the format.

    • Xamarin.Forms should now be listed in the References list under your project, with the Nuget icon.
  5. Replace the csproj of the PCL with this:

	<Project Sdk="Microsoft.NET.Sdk">

	  <PropertyGroup>
	    <TargetFramework>netstandard1.6</TargetFramework>
        
        <!-- https://docs.microsoft.com/en-us/nuget/schema/msbuild-targets#packagetargetfallback Allows getting nuget packages that don't explicitly set netstandard version -->
    	<PackageTargetFallback>portable-net45</PackageTargetFallback>

	    <DebugType>full</DebugType>
	  </PropertyGroup>

	  <ItemGroup>
	    <Compile Update="**\*.xaml.cs" DependentUpon="%(Filename)" />
	    <EmbeddedResource Include="**\*.xaml" SubType="Designer" Generator="MSBuild:UpdateDesignTimeXaml" />    
	  </ItemGroup>
	  
	</Project>
  1. Delete AssemblyInfo from the PCL (now .NET Standard) project. These properties are generated by Visual Studio now and it will result in duplicates if you don't.