gpt4 book ai didi

xamarin - 从 Visual Studio 2017 15.5.1 开始,如何创建 Xamarin.Forms 项目以使用 PCL 来定位最低 Android KitKat (API 19)?

转载 作者:行者123 更新时间:2023-12-04 15:18:16 24 4
gpt4 key购买 nike

我想知道如何在不使用 Shared Project 选项的情况下创建一个针对最低版本的 Android Kitkat (API 19) 的 Xamarin.Forms 项目。

.Net 标准库不是一个选项,因为 the minimum supported Android version is Nougat .我的很大一部分目标用户(超过 40%)仍然使用 Android 版本低于 Nougat 的手机。

在 Visual Studio 15.5.1 或更高版本中, 下没有提供 PCL 选项。代码共享策略版块在使用 时创建新的 Xamarin.Forms 项目跨平台应用 模板。

enter image description here

注意到 PCL 现在已在 Xamarin's Forum 上被弃用以及 Visual Studio Developer Community

关键支持问题:

  • 使用最新的 Vs 2017,Xamarin.Forms 是否仍然可以使用 PCL?如何?
  • 如果是,创建基于 PCL 的 Xamarin.Forms 项目的步骤是什么,是否有任何开源模板来引导它?
  • 如果否,这是否意味着我只能使用共享项目代码共享策略/模板支持带有 Xamarin.Forms 的 Android KitKat?
  • 最佳答案

  • Forms 支持 Android 4.0.3 (API 15) 及更高版本,您将“ 目标框架 ” ( compileSdkVersion ) 与“ 目标 Android 版本 ” ( |914| 6) 混淆了对比 “最低安卓版本” ( targetSdkVersion )。
  • 您的 minSdkVersion项目必须使用 Nougat/7.0 ( Xamarin.Form ) 或以上的目标框架,但可以针对 4.0.3/IceCreamSandwich 版本的最低版本。
  • 注意:最新版本的 Forms 需要目标框架 8.0
  • Xamarin 有一个很好的指南,解释了这些东西从 Android 到 MonoAndroid7.0 的关系。
  • Understanding Android API Levels
  • 微软完全删除了创建基于 PCL 的库的模板选项
  • PCL 项目仍然构建良好
  • NetStandard 是唯一的 future ,PCL 已死,等等...
  • 恕我直言,这是一个重大变化,因为我的很多客户还没有准备好转换为 NetStd,并且仍然存在 NetStd 错误(主要是边缘情况)
  • 仍然需要创建一个 PCL 库,抓取现有项目并复制、剥离和重命名它...或创建 Xamarin.Android你自己(见基本 .csproj)。

  • 基本配置文件111 PCL .csproj :
    <?xml version="1.0" encoding="utf-8"?>
    <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{C38DBA87-39CB-4FD5-B409-6D19E6ED54C8}</ProjectGuid>
    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    <UseMSBuildEngine>true</UseMSBuildEngine>
    <OutputType>Library</OutputType>
    <RootNamespace>PCLTemplate</RootNamespace>
    <AssemblyName>PCLTemplate</AssemblyName>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <TargetFrameworkProfile>Profile111</TargetFrameworkProfile>
    </PropertyGroup>
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug</OutputPath>
    <DefineConstants>DEBUG;</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    </PropertyGroup>
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <Optimize>true</Optimize>
    <OutputPath>bin\Release</OutputPath>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    </PropertyGroup>
    <ItemGroup>
    <Compile Include="MyClass.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    </ItemGroup>
    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
    </Project>

    关于xamarin - 从 Visual Studio 2017 15.5.1 开始,如何创建 Xamarin.Forms 项目以使用 PCL 来定位最低 Android KitKat (API 19)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47956779/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com