Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Voorbeeldberichten
error XA1041: The MSBuild property 'MonoAndroidAssetPrefix' has an invalid value of 'c:\Foo\Assets'. The value is expected to be a directory path representing the relative location of your Assets or Resources.
error XA1041: The MSBuild property 'MonoAndroidResourcePrefix' has an invalid value of 'c:\Foo\Resources'. The value is expected to be a directory path representing the relative location of your Assets or Resources.
Issue
Het probleem is dat zowel MonoAndroidAssetPrefix als MonoAndroidResourcePrefix naar verwachting een relatief mappad zouden moeten zijn. Deze informatie wordt gebruikt om de hoofdmapgegevens van de asset of resource te verwijderen wanneer we de app verpakken.
De fout wordt gegenereerd omdat de eigenschap een volledig pad bevat.
Denk bijvoorbeeld aan de volgende structuur:
Foo.csproj
MyAssets/
Foo.txt
Subfolder/
Bar.txt
MainActivity.cs
In de laatste .apk-fase verwachten we dat de bestanden Foo.txt en Bar.txt in de assets-map geplaatst worden. Om dit correct te doen, moet het buildsysteem de naam weten van de map waarin de assets zich bevinden. Dit is standaard Assets, maar andere mapnamen worden ook ondersteund.
In het bovenstaande voorbeeld verwachten we dat de gebruiker MonoAndroidAssetPrefix instelt op een waarde van 'MyAssets'. Dit zou ervoor zorgen dat het deel "MyAssets" van het pad naar "Foo.txt" enz. wordt verwijderd tijdens de verpakking. Wanneer MonoAndroidAssetPrefix is ingesteld op /Users/xxx/Foo/MyAssets of c:\Users\xxx\Foo\MyAssets, zie je dit foutbericht.
Solution
De oplossing hiervoor is om geen volledig pad te gebruiken voor de waarden van MonoAndroidAssetPrefix of MonoAndroidResourcePrefix. Ze moeten een relatief directorypad zijn dat identiek is aan het directorypad waarin uw assets worden opgeslagen.