Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przykładowe komunikaty
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.
Problematyka
Problem polega na tym, że zarówno MonoAndroidAssetPrefix, jak i MonoAndroidResourcePrefix powinny być względnymi ścieżkami katalogów. Ta informacja jest używana do "usuwania" informacji o katalogu głównym z zasobu lub materiału podczas pakowania aplikacji.
Występuje błąd, ponieważ właściwość zawiera pełną ścieżkę.
Rozważmy na przykład następującą strukturę.
Foo.csproj
MyAssets/
Foo.txt
Subfolder/
Bar.txt
MainActivity.cs
W końcowej wersji .apk oczekujemy, że pliki Foo.txt i Bar.txt będą umieszczone w folderze assets. Aby zrobić to poprawnie, system kompilacji musi znać name folderu, w którym znajdują się zasoby. Domyślnie jest to "Zasoby", ale powinniśmy również obsługiwać inną nazwę folderu.
W powyższym przykładzie spodziewamy się, że użytkownik ustawi MonoAndroidAssetPrefix wartość na wartość "Moje zasoby". To zapewni, że podczas tworzenia pakietów zostanie usunięta część ścieżki "MyAssets" do "Foo.txt" itp. Jeśli parametr MonoAndroidAssetPrefix jest ustawiony na /Users/xxx/Foo/MyAssets lub c:\Users\xxx\Foo\MyAssets zostanie wyświetlony ten komunikat o błędzie.
Rozwiązanie
Poprawka tego problemu polega na tym, że nie należy używać pełnej ścieżki dla wartości MonoAndroidAssetPrefix lub MonoAndroidResourcePrefix. Powinny one być względną ścieżką katalogu zgodną ze ścieżką folderu, w której są przechowywane zasoby.