xamarin Android< UseMauiEssentials>< UseMaui>/iOS csproj文件中的和有什么区别?我应该在csproj文件中同时使用两者吗?

zujrkrfu  于 2022-12-28  发布在  Android
关注(0)|答案(1)|浏览(156)

我想在我现有的Android和iOS项目中使用.NET MAUI,但我不确定是否需要将UseMaui Essentials和UseMaui或其中一个添加到我现有的csproj文件中。目前我在Android和iOS项目中使用Xamarin.Essentials和其他一些XamarinNuGet包。
我的安卓系统csproj:
'

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0-android</TargetFramework>
    <SupportedOSPlatformVersion>23</SupportedOSPlatformVersion>
    <OutputType>Exe</OutputType>
    <ApplicationId>com.companyname.AndroidprojectwithXamarin</ApplicationId>
    <ApplicationVersion>1</ApplicationVersion>
    <ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="MonoGame.Content.Builder.Task" Version="3.8.1.303" />
    <PackageReference Include="MonoGame.Framework.Android" Version="3.8.1.303" />
    <PackageReference Include="Xamarin.Essentials" Version="1.7.4" />
  </ItemGroup>
  <Target Name="RestoreDotnetTools" BeforeTargets="Restore">
    <Message Text="Restoring dotnet tools" Importance="High" />
    <Exec Command="dotnet tool restore" />
  </Target>
</Project>

'
我的iOS csproj:'

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0-ios</TargetFramework>
    <OutputType>Exe</OutputType>
    <SupportedOSPlatformVersion>15.0</SupportedOSPlatformVersion>
    <CodesignKey>iPhone Developer</CodesignKey>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <CreatePackage>false</CreatePackage>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <CreatePackage>false</CreatePackage>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="MonoGame.Content.Builder.Task" Version="3.8.1.303" />
    <PackageReference Include="MonoGame.Framework.iOS" Version="3.8.1.303" />
    <PackageReference Include="Xamarin.Essentials" Version="1.7.4" />
  </ItemGroup>
  <Target Name="RestoreDotnetTools" BeforeTargets="Restore">
    <Message Text="Restoring dotnet tools" Importance="High" />
    <Exec Command="dotnet tool restore" />
  </Target>
</Project>

'
Android/iOS csproj文件中的UseMauiEssentials和UseMaui有什么区别?我应该在csproj文件中同时使用它们吗?是否需要从我的项目中删除Xamarin.Essentials NuGet包?如果我想使用.NET MAUI,是否需要添加另一个.NET MAUI NuGet包?或者我应该保留安装的Xamarin.Essentials NuGet包?

ni65a41a

ni65a41a1#

正如你已经发现的,Xamarin.Essentials是一个独立的项目,它基本上是一个抽象层,用于各种API,这些API可以在不同的平台(iOS、Android、Windows)上使用,但不一定有任何UI。
因为Xamarin.Forms是一个UI框架,所以所有的Essentials都没有包含在Forms中。事实上,如果你愿意,你可以在传统的Xamarin应用程序中使用Xamarin.Essentials,它对Forms没有依赖性。
随着.NET MAUI的引入,Essentials作为一个独立的概念逐渐消失,Essentials现在是.NET MAUI的一个集成部分,它只是供您使用的API。
然而,这些API仍然不依赖于.NET MAUI,您应该能够在不使用.NET MAUI的情况下使用Essentials。这就是我们得到这个问题的答案的地方:如果您只想使用以前称为Essentials的API,请使用UseMauiEssentials;或者,如果您无论如何都要使用所有.NET MAUI,请包含同样会自动引入Essentials的UseMaui

相关问题