gpt4 book ai didi

c# - Xamarin Xaml 和多目标

转载 作者:太空宇宙 更新时间:2023-11-03 14:51:15 25 4
gpt4 key购买 nike

我正在为 Xamarin Forms 项目创建一个多目标类库,该项目将面向 .NET Standard 2.0、MonoAndroid 8.1 和 Xamarin.iOS 1.0。我了解如何根据平台有条件地包含用于编译的文件,以包含特定于平台的渲染器和实用程序。

我需要知道如何以一种不会破坏 resharper 和智能感知的方式包含 *.xaml 文件,并且不会因 InitializeComponent 在 ContentPage 中脱离上下文而发出误报。将 xaml 文件设置为构建操作 EmbeddedResource,在 csproj 中使用自定义工具 UpdateDesignTimeXaml,并将文件隐藏代码设置为编译,未检测到部分类,resharper 停止提供帮助等。

针对这些平台并包含 xaml 资源的多目标项目的 csproj 文件是什么样的?

最佳答案

我从头开始创建了一个新的多目标项目,现在我还可以包含 Xaml 文件。我遇到的唯一问题是,当我添加例如 Test.shared.xaml 或 Test.shared.cs 时,我必须转到项目文件并删除以下生成的行:

<Project Sdk="MSBuild.Sdk.Extras">

<PropertyGroup>
<TargetFrameworks>netstandard2.0;netcoreapp2.0;net461;MonoAndroid90;Xamarin.iOS10</TargetFrameworks>

<Product>$(AssemblyName) ($(TargetFramework))</Product>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<AssemblyFileVersion>1.0.0.0</AssemblyFileVersion>
<Version>1.0.0.0</Version>
<PackageVersion>1.0.0.0</PackageVersion>
<PackOnBuild>true</PackOnBuild>
<NeutralLanguage>en</NeutralLanguage>
<LangVersion>default</LangVersion>
<DefineConstants>$(DefineConstants);</DefineConstants>

<UseFullSemVerForNuGet>false</UseFullSemVerForNuGet>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>

<LangVersion>latest</LangVersion>
</PropertyGroup>

<PropertyGroup Condition=" '$(Configuration)'=='Debug' ">
<DebugType>full</DebugType>
<DebugSymbols>true</DebugSymbols>
<GenerateDocumentationFile>false</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)'=='Release' ">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<DebugType>pdbonly</DebugType>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

<ItemGroup>
<Compile Include="**\*.shared.cs" />
<Compile Include="**\*.shared.xaml.cs" />
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('netstandard')) ">
</ItemGroup>

<ItemGroup Condition=" $(TargetFramework.StartsWith('MonoAndroid')) ">
<Compile Include="**\*.android.cs" />
</ItemGroup>

<ItemGroup Condition=" $(TargetFramework.StartsWith('Xamarin.iOS')) ">
<Compile Include="**\*.apple.cs" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Xamarin.Forms" Version="4.3.0.819712-pre2" />
<PackageReference Include="Xamarin.Forms.PancakeView" Version="1.2.1" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'MonoAndroid90'">
<PackageReference Include="Plugin.CurrentActivity">
<Version>2.1.0.4</Version>
</PackageReference>
</ItemGroup>

</Project>

还有应该在项目根目录中的 global.json

  "sdk": {
"version": "3.0.100-preview"
},
"msbuild-sdks": {
"MSBuild.Sdk.Extras": "2.0.46"
}
}

关于c# - Xamarin Xaml 和多目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51697013/

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