我在使用 .NET 8 的 .NET MAUI 应用程序中遇到以下问题:我需要根据应用程序是在 Release 还是 Debug 模式下编译来显示不同的应用程序图标。这样可以在与他们一起工作时更好地控制。
我根据所选的构建配置在 .csproj
文件中声明
MauiIcon:
<!-- App Icon -->
<MauiIcon Condition="'$(Configuration)' == 'RELEASE'" Include="Resources\AppIcon\appiconblack.svg" ForegroundScale="0.65" Generate="True" />
<MauiIcon Condition="'$(Configuration)' == 'DEBUG'" Include="Resources\AppIcon\appicon.svg" ForegroundScale="0.65" Generate="True" />
到目前为止,一切都很顺利。我无法解决的问题是如何在
AndroidManifest
文件中动态应用正确的图标:
<application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true">
</application>
我找不到一种方法让
AndroidManifest
根据构建配置动态加载正确的应用程序图标。
无需更改
AndroidManifest
中的任何内容。我有适用于所有平台的解决方案。
AppIcon
文件夹中创建两个子文件夹,Debug
和Release
appicon.svg
<MauiIcon Condition="'$(Configuration)' == 'RELEASE'" Include="Resources\AppIcon\Release\appicon.svg" ForegroundScale="0.65" Generate="True" />
<MauiIcon Condition="'$(Configuration)' == 'DEBUG'" Include="Resources\AppIcon\Debug\appicon.svg" ForegroundScale="0.65" Generate="True" />
这应该没有任何问题。
注意:在部署发布和调试版本之前执行
Rebuild
。