我想在我现有的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包?
1条答案
按热度按时间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
。