Proprietà di compilazione
Le proprietà di MSBuild controllano il comportamento delle destinazioni. Vengono specificati all'interno del file di progetto, ad esempio MyApp.csproj, all'interno di un gruppo di proprietà MSBuild.
AdbTarget
La $(AdbTarget)
proprietà specifica il dispositivo di destinazione Android da cui può essere installato o rimosso il pacchetto Android.
Il valore di questa proprietà corrisponde all'opzione adb
Dispositivo di destinazione.
AfterGenerateAndroidManifest
Le destinazioni MSBuild elencate in questa proprietà verranno eseguite direttamente dopo la destinazione interna _GenerateJavaStubs
, che è la posizione in cui il AndroidManifest.xml
file viene generato in $(IntermediateOutputPath)
. Se si desidera apportare modifiche al file generato AndroidManifest.xml
, è possibile farlo usando questo punto di estensione.
Aggiunta in Xamarin.Android 9.4.
AndroidAapt2CompileExtraArgs
Specifica le opzioni della riga di comando da passare al comando di compilazione aapt2 durante l'elaborazione di risorse e asset Android.
Aggiunta in Xamarin.Android 9.1.
AndroidAapt2LinkExtraArgs
Specifica le opzioni della riga di comando da passare al comando di collegamento aapt2 durante l'elaborazione di risorse e asset Android.
Aggiunta in Xamarin.Android 9.1.
AndroidAddKeepAlives
Proprietà booleana che controlla se il linker inserisce GC.KeepAlive()
chiamate all'interno dei progetti di associazione per impedire la raccolta di oggetti prematuri.
Il valore predefinito è True
per le build di configurazione della versione.
Questa proprietà è stata aggiunta in Xamarin.Android 11.2.
AndroidAotAdditionalArguments
Proprietà stringa che consente di passare le opzioni al compilatore Mono durante l'attività Aot
per i progetti con $(AndroidEnableProfiledAot)
o $(AotAssemblies)
impostato su true
.
Il valore stringa della proprietà viene aggiunto al file di risposta quando si chiama il compilatore incrociato Mono.
In generale, questa proprietà deve essere lasciata vuota, ma in alcuni scenari speciali potrebbe offrire una flessibilità utile.
La $(AndroidAotAdditionalArguments)
proprietà è diversa dalla proprietà correlata $(AndroidExtraAotOptions)
. $(AndroidAotAdditionalArguments)
Passa opzioni separate da spazio autonomo complete come --verbose
o --debug
al compilatore AOT, mentre $(AndroidExtraAotOptions)
contiene argomenti delimitati da virgole che fanno parte dell'opzione --aot
del compilatore AOT.
AndroidAotCustomProfilePath
File che aprofutil
deve essere creato per contenere i dati del profiler.
AndroidAotProfiles
Proprietà stringa che consente allo sviluppatore di aggiungere profili AOT dalla riga di comando. Si tratta di un elenco delimitato da punto e virgola o da virgole di percorsi assoluti. Aggiunta in Xamarin.Android 10.1.
AndroidAotProfilerPort
Porta a cui aprofutil
connettersi quando si ottengono i dati di profilatura.
AndroidAotEnableLazyLoad
Abilitare il caricamento differita (ritardato) degli assembly AOT-d, anziché precaricarli all'avvio. Il valore predefinito è True
per le build release con qualsiasi forma di AOT abilitata.
Introdotto in .NET 6.
AndroidApkDigestAlgorithm
Valore stringa che specifica l'algoritmo digest da usare con jarsigner -digestalg
.
Il valore predefinito è SHA-256
. In Xamarin.Android 10.0 e versioni precedenti il valore predefinito è SHA1
.
Aggiunta in Xamarin.Android 9.4.
AndroidApkSignerAdditionalArguments
Proprietà stringa che consente allo sviluppatore di fornire argomenti allo apksigner
strumento.
Aggiunta in Xamarin.Android 8.2.
AndroidApkSigningAlgorithm
Valore stringa che specifica l'algoritmo di firma da usare con jarsigner -sigalg
.
Il valore predefinito è SHA256withRSA
. In Xamarin.Android 10.0 e versioni precedenti il valore predefinito è md5withRSA
.
Aggiunta in Xamarin.Android 8.2.
AndroidApplication
Valore booleano che indica se il progetto è per un'applicazione Android (True
) o per un progetto di libreria Android (False
o non presente).
In un pacchetto Android può essere presente un solo progetto con <AndroidApplication>True</AndroidApplication>
. Purtroppo questo requisito non viene verificato, che può causare errori sottili e bizzarri relativi alle risorse Android.
AndroidApplicationJavaClass
Nome completo della classe Java da usare al posto di android.app.Application
quando una classe eredita da Android.App.Application.
La $(AndroidApplicationJavaClass)
proprietà viene in genere impostata da altre proprietà, ad esempio la $(AndroidEnableMultiDex)
proprietà MSBuild.
Aggiunto in Xamarin.Android 6.1.
AndroidBinUtilsPath
Percorso di una directory contenente i binutils android, ad ld
esempio , il linker nativo e as
, l'assembler nativo. Questi strumenti sono inclusi nell'installazione di Xamarin.Android.
Il valore predefinito è $(MonoAndroidBinDirectory)\binutils\bin\
.
Aggiunta in Xamarin.Android 10.0.
AndroidBoundExceptionType
Valore stringa che specifica la modalità di propagazione delle eccezioni quando un tipo fornito da Xamarin.Android implementa un tipo o un'interfaccia .NET in termini di tipi Java, ad esempio Android.Runtime.InputStreamInvoker
e o Android.Runtime.JavaDictionary
System.IO.Stream
e System.Collections.IDictionary
.
Java
: il tipo di eccezione Java originale viene propagato così come è.Java
significa che, ad esempio,InputStreamInvoker
non implementa correttamente l'APISystem.IO.Stream
perchéJava.IO.IOException
può essere generata da anzichéSystem.IO.IOException
daStream.Read()
.Java
è il comportamento di propagazione delle eccezioni in tutte le versioni di Xamarin.Android, incluso Xamarin.Android 13.0.System
: il tipo di eccezione Java originale viene intercettato e sottoposto a wrapping in un tipo di eccezione .NET appropriato.System
significa che, ad esempio,InputStreamInvoker
implementaSystem.IO.Stream
correttamente eStream.Read()
non generaJava.IO.IOException
istanze. Può invece generare un oggetto contenente unSystem.IO.IOException
Java.IO.IOException
oggetto comeException.InnerException
valore.System
è il valore predefinito in .NET 6.0.
Aggiunta in Xamarin.Android 10.2.
AndroidBoundInterfacesContainConstants
Proprietà booleana che determina se le costanti di associazione sulle interfacce saranno supportate o se verrà utilizzata la soluzione alternativa alla creazione di una IMyInterfaceConsts
classe.
Il valore predefinito è True
in .NET 6 e False
per legacy.
AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods
Proprietà booleana che indica se i membri predefiniti e statici nelle interfacce saranno supportati o una soluzione alternativa precedente per la creazione di una classe di pari livello contenente membri statici come abstract class MyInterface
.
Il valore predefinito è True
in .NET 6 e False
per legacy.
AndroidBoundInterfacesContainTypes
Proprietà booleana che indica se i tipi annidati nelle interfacce saranno supportati o la soluzione alternativa alla creazione di un tipo non annidato, ad IMyInterfaceMyNestedClass
esempio .
Il valore predefinito è True
in .NET 6 e False
per legacy.
AndroidBuildApplicationPackage
Valore booleano che indica se creare e firmare il pacchetto (.apk). L'impostazione di questo valore su True
equivale all'uso di SignAndroidPackage
destinazione di compilazione.
Il supporto per questa proprietà stato aggiunto dopo Xamarin.Android 7.1.
Per impostazione predefinita, il valore della proprietà è False
.
AndroidBundleConfigurationFile
Specifica un nome file da usare come file di configurazione per bundletool
durante la compilazione di un bundle di app Android. Questo file controlla alcuni aspetti del modo in cui gli API vengono generati dal bundle, ad esempio in quali dimensioni il bundle viene suddiviso per produrre API.
Xamarin.Android configura automaticamente alcune di queste impostazioni, incluso l'elenco delle estensioni di file da non comprimere.
Questa proprietà è rilevante solo se $(AndroidPackageFormat)
è impostata su aab
.
Aggiunta in Xamarin.Android 10.3.
AndroidBundleToolExtraArgs
Specifica le opzioni della riga di comando da passare al comando bundletool quando si compilano bundle di app.
Questa proprietà è stata aggiunta in Xamarin.Android 11.3.
AndroidClassParser
Proprietà stringa che controlla la modalità .jar
di analisi dei file. I valori possibili includono:
class-parse: usa
class-parse.exe
per analizzare direttamente il bytecode Java senza ricorrere a JVM.jar2xml: usa
jar2xml.jar
per estrarre tipi e membri da un file.jar
con la reflection Java.
I vantaggi di class-parse
rispetto a jar2xml
sono:
class-parse
può estrarre i nomi dei parametri dal bytecode Java contenente i simboli di debug (bytecode compilato conjavac -g
).class-parse
non "ignora" classi che ereditano da o contengono membri di tipi non risolvibili.
Aggiunto in Xamarin.Android 6.0.
Il valore predefinito è jar2xml
in "legacy" Xamarin.Android e class-parse
in .NET 6 e versioni successive.
Il supporto per jar2xml
è obsoleto e jar2xml
viene rimosso in .NET 6.
AndroidCodegenTarget
Proprietà stringa che controlla l'ABI di destinazione della generazione del codice. I valori possibili includono:
XamarinAndroid: usa l'API di associazione JNI presente da Mono per Android 1.0. Gli assembly di binding compilati con Xamarin.Android 5.0 o versioni successive possono essere eseguiti solo in Xamarin.Android 5.0 o versioni successive (aggiunte API/ABI), ma l'origine è compatibile con le versioni precedenti del prodotto.
XAJavaInterop1: usa Java.Interop per le chiamate JNI. Gli assembly di binding che usano
XAJavaInterop1
possono solo essere compilati ed eseguiti con Xamarin.Android 6.1 o versioni successive. Xamarin.Android 6.1 e versioni successive eseguono il binding diMono.Android.dll
con questo valore.
I vantaggi di XAJavaInterop1
includono:
Assembly di dimensioni ridotte.
Memorizzazione nella cache
jmethodID
per le chiamate ai metodibase
, purché tutti gli altri tipi di binding nella gerarchia di ereditarietà siano compilati conXAJavaInterop1
o versione successiva.Memorizzazione nella cache
jmethodID
di costruttori di Java Callable Wrapper per sottoclassi gestite.
Il valore predefinito è XAJavaInterop1
.
Il supporto per XamarinAndroid
è obsoleto e il supporto per XamarinAndroid
verrà rimosso come parte di .NET 6.
AndroidCreatePackagePerAbi
Proprietà booleana che determina se è necessario creare un set di file, uno per ogni ABI specificato in $(AndroidSupportedAbis)
, anziché disporre del supporto per tutte le istanze abi in un singolo .apk
oggetto .
Vedere anche la guida alla creazione di API specifiche di ABI.
AndroidCreateProguardMappingFile
Proprietà booleana che controlla se un file di mapping proguard viene generato come parte del processo di compilazione.
L'aggiunta del codice seguente al file csproj causerà la generazione del file e userà la AndroidProguardMappingFile
proprietà per controllare il percorso del file di mapping finale.
<AndroidCreateProguardMappingFile>True</AndroidCreateProguardMappingFile>
Quando si producono .aab
file, il file di mapping viene incluso automaticamente nel pacchetto. Non è necessario caricarlo manualmente in Google Play Store. Quando si usano .apk
i file, sarà AndroidProguardMappingFile
necessario caricarlo manualmente.
Il valore predefinito è quando si True
usa $(AndroidLinkTool)
=r8.
Aggiunta in Xamarin.Android 12.3.
AndroidDebugKeyAlgorithm
Specifica l'algoritmo predefinito da utilizzare per .debug.keystore
Il valore predefinito è RSA
.
AndroidDebugKeyValidity
Specifica la validità predefinita da utilizzare per .debug.keystore
Il valore predefinito è 10950
o 30 * 365
30 years
.
AndroidDebugStoreType
Specifica il formato di file dell'archivio chiavi da utilizzare per .debug.keystore
Il valore predefinito è pkcs12
.
Aggiunta in Xamarin.Android 10.2.
AndroidDeviceUserId
Consente la distribuzione e il debug dell'applicazione in account guest o aziendali. Il valore è il uid
valore ottenuto dal comando adb seguente:
adb shell pm list users
Il comando precedente restituirà i dati seguenti:
Users:
UserInfo{0:Owner:c13} running
UserInfo{10:Guest:404}
uid
è il primo valore intero. Nell'output precedente sono 0
e 10
.
La $(AndroidDeviceUserId)
proprietà è stata aggiunta in Xamarin.Android 11.2.
AndroidDexTool
Proprietà di tipo enumerazione con valori validi di dx
o d8
. Indica quale compilatore dex di Android viene usato durante il processo di compilazione di Xamarin.Android.
Il valore predefinito è dx
. Vedere la documentazione su D8 e R8.
AndroidEnableDesugar
Proprietà booleana che determina se desugar
è abilitata. Android attualmente non supporta tutte le funzionalità java 8 e la toolchain predefinita implementa le nuove funzionalità del linguaggio eseguendo trasformazioni bytecode, denominate desugar
, nell'output del javac
compilatore. Il valore predefinito è False
se si usa $(AndroidDexTool)=dx
e True
se si usa=$(AndroidDexTool)
d8
.
AndroidEnableGooglePlayStoreChecks
Proprietà bool che consente agli sviluppatori di disabilitare i controlli seguenti di Google Play Store: XA1004, XA1005 e XA1006. La disabilitazione di questi controlli è utile per gli sviluppatori che non hanno come destinazione Google Play Store e non vogliono eseguire tali controlli.
Aggiunta in Xamarin.Android 9.4.
AndroidEnableMultiDex
Proprietà booleana che determina se il supporto multidex verrà utilizzato o meno nell'oggetto finale .apk
.
Il supporto per questa proprietà stato aggiunto in Xamarin.Android 5.1.
Per impostazione predefinita, il valore della proprietà è False
.
AndroidEnablePreloadAssemblies
Proprietà booleana che controlla se tutti gli assembly gestiti raggruppati all'interno del pacchetto dell'applicazione vengono caricati o meno durante l'avvio del processo.
Se impostata su True
, tutti gli assembly inclusi nel pacchetto dell'applicazione verranno caricati durante l'avvio del processo, prima che venga richiamato il codice dell'applicazione.
Il precaricamento degli assembly è ciò che esegue Xamarin.Android.
Se impostata su False
, gli assembly verranno caricati solo all'occorrenza.
Il caricamento di assembly in base alle esigenze consente alle applicazioni di avviare più velocemente e è anche più coerente con la semantica desktop .NET.
Per visualizzare il tempo risparmiato, impostare la proprietà di sistema debug.mono.log
in modo da includere timing
e cercare il messaggio Finished loading assemblies: preloaded
all'interno di adb logcat
.
Le applicazioni o le librerie, che usano l'inserimento delle dipendenze, possono richiedere che questa proprietà sia True
se a loro volta richiedano la AppDomain.CurrentDomain.GetAssemblies()
restituzione di tutti gli assembly all'interno del bundle dell'applicazione, anche se l'assembly non sarebbe altrimenti necessario.
Per impostazione predefinita, questo valore verrà impostato su True
per Xamarin.Android e verrà impostato su False
per le build .NET 6+.
Aggiunta in Xamarin.Android 9.2.
AndroidEnableProfiledAot
Proprietà booleana che determina se i profili AOT vengono utilizzati durante la compilazione in anticipo.
I profili sono elencati in @(AndroidAotProfile)
gruppo di elementi. Questo ItemGroup contiene i profili predefiniti. Può essere sottoposto a override rimuovendo uno o più profili AOT esistenti e aggiungendo i propri profili AOT.
Il supporto per questa proprietà stato aggiunto in Xamarin.Android 9.4.
Per impostazione predefinita, il valore della proprietà è False
.
AndroidEnableSGenConcurrent
Proprietà booleana che determina se verrà utilizzato o meno l'agente di raccolta GC simultaneo di Mono.
Il supporto per questa proprietà stato aggiunto in Xamarin.Android 7.2.
Per impostazione predefinita, il valore della proprietà è False
.
AndroidErrorOnCustomJavaObject
Proprietà booleana che determina se i tipi possono essere implementati Android.Runtime.IJavaObject
senza ereditare anche da Java.Lang.Object
o Java.Lang.Throwable
:
class BadType : IJavaObject {
public IntPtr Handle {
get {return IntPtr.Zero;}
}
public void Dispose()
{
}
}
Se True, tali tipi genereranno un errore XA4212. In caso contrario, verrà generato un avviso XA4212.
Il supporto per questa proprietà stato aggiunto in Xamarin.Android 8.1.
Per impostazione predefinita, il valore della proprietà è True
.
AndroidExplicitCrunch
Non più supportato in Xamarin.Android 11.0.
AndroidExtraAotOptions
Proprietà stringa che consente di passare le opzioni al compilatore Mono durante l'attività Aot
per i progetti con $(AndroidEnableProfiledAot)
o $(AotAssemblies)
impostato su true
.
Il valore stringa della proprietà viene aggiunto al file di risposta quando si chiama il compilatore incrociato Mono.
In generale, questa proprietà deve essere lasciata vuota, ma in alcuni scenari speciali potrebbe offrire una flessibilità utile.
La $(AndroidExtraAotOptions)
proprietà è diversa dalla proprietà correlata $(AndroidAotAdditionalArguments)
. $(AndroidAotAdditionalArguments)
Inserisce gli argomenti delimitati da virgole nell'opzione --aot
del compilatore Mono. $(AndroidExtraAotOptions)
passa invece al compilatore le opzioni separate da spazio autonomo complete, ad --verbose
esempio o --debug
al compilatore.
Aggiunta in Xamarin.Android 10.2.
AndroidFastDeploymentType
Elenco :
di valori delimitato da due punti per controllare quali tipi possono essere distribuiti nella directory Fast Deployment nel dispositivo di destinazione quando la $(EmbedAssembliesIntoApk)
proprietà MSBuild è False
. Se una risorsa viene distribuita con Fast Deployment, non viene incorporata nel file .apk
generato, con la possibilità di accelerare i tempi di distribuzione. Maggiore è la distribuzione rapida, meno spesso .apk
è necessario ricompilare e il processo di installazione può essere più veloce. I valori validi includono:
Assemblies
: distribuisce gli assembly dell'applicazione.Dexes
: distribuire.dex
file, librerie native e mapping dei tipi. IlDexes
valore può essere usato solo nei dispositivi che eseguono Android 4.4 o versione successiva (API-19).
Il valore predefinito è Assemblies
.
Supporto per la distribuzione rapida di risorse e asset tramite tale sistema è stato rimosso nel commit f0d565fe. Questo perché richiedeva il funzionamento dell'API deprecata.
Sperimentale. Questa proprietà è stata aggiunta in Xamarin.Android 6.1.
AndroidFragmentType
Specifica il tipo predefinito completo da usare per tutti gli elementi <fragment>
del layout quando viene generato il codice dei binding di layout. Il valore predefinito è il tipo Android Android.App.Fragment
standard.
AndroidGenerateJniMarshalMethods
Proprietà bool che consente la generazione di metodi di marshalling JNI come parte del processo di compilazione. In questo modo si riduce notevolmente l'utilizzo System.Reflection
nel codice helper di associazione.
Il valore predefinito è False
. Se gli sviluppatori vogliono usare la nuova funzionalità di marshalling JNI, possono impostare
<AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>
nel relativo .csproj
oggetto . In alternativa, specificare la proprietà sulla riga di comando usando
/p:AndroidGenerateJniMarshalMethods=True
Sperimentale. Aggiunta in Xamarin.Android 9.2.
Il valore predefinito è False
.
AndroidGenerateJniMarshalMethodsAdditionalArguments
Proprietà stringa che può essere usata per aggiungere parametri alla jnimarshalmethod-gen.exe
chiamata ed è utile per il debug, in modo che sia possibile usare opzioni come -v
, -d
o --keeptemp
.
Il valore predefinito è una stringa vuota. Può essere impostato nel .csproj
file o nella riga di comando. Ad esempio:
<AndroidGenerateJniMarshalMethodsAdditionalArguments>-v -d --keeptemp</AndroidGenerateJniMarshalMethodsAdditionalArguments>
oppure:
/p:AndroidGenerateJniMarshalMethodsAdditionalArguments="-v -d --keeptemp"
Aggiunta in Xamarin.Android 9.2.
AndroidGenerateLayoutBindings
Abilita la generazione del code-behind del layout se impostata su o la disabilita completamente se impostata true
su false
. Il valore predefinito è false
.
AndroidGenerateResourceDesigner
Il valore predefinito è true
. Se impostato su false
, disabilita la generazione di Resource.designer.cs
.
Aggiunta in .NET 6 RC 1. Non supportato in Xamarin.Android.
AndroidHttpClientHandlerType
Controlla l'implementazione predefinita System.Net.Http.HttpMessageHandler
che verrà utilizzata dal System.Net.Http.HttpClient
costruttore predefinito. Il valore è un nome di tipo qualificato dall'assembly di una sottoclasse HttpMessageHandler
, adatta per l'uso con System.Type.GetType(string)
.
I valori più comuni per questa proprietà sono:
Xamarin.Android.Net.AndroidClientHandler
: usare le API Java Android per eseguire richieste di rete. L'uso delle API Java consente di accedere agli URL TLS 1.2 quando la versione android sottostante supporta TLS 1.2. Solo Android 5.0 e versioni successive offrono un supporto affidabile di TLS 1.2 tramite Java.Corrisponde all'opzione Android nelle pagine delle proprietà di Visual Studio e all'opzione AndroidClientHandler nelle pagine delle proprietà Visual Studio per Mac.
La Creazione guidata nuovo progetto seleziona questa opzione per i nuovi progetti quando l'opzione Versione minima di Android viene impostata su Android 5.0 (Lollipop) o versioni successive in Visual Studio o quando l'opzione Piattaforme di destinazione viene impostata su Più recente e migliore in Visual Studio per Mac.
Unset/la stringa vuota, che equivale a
System.Net.Http.HttpClientHandler, System.Net.Http
Corrisponde all'opzione Default nelle pagine delle proprietà di Visual Studio.
La Creazione guidata nuovo progetto seleziona questa opzione per i nuovi progetti quando l'opzione Versione minima di Android viene impostata su Android 4.4.87 o versioni precedenti in Visual Studio o quando l'opzione Piattaforme di destinazione viene impostata su Sviluppo moderno o Compatibilità massima in Visual Studio per Mac.
System.Net.Http.HttpClientHandler, System.Net.Http
: usare l'oggetto gestitoHttpMessageHandler
.Corrisponde all'opzione Gestita nelle pagine delle proprietà di Visual Studio.
Nota
se è richiesto il supporto di TLS 1.2 nelle versioni di Android precedenti la 5.0 oppure se è richiesto il supporto di TLS 1.2 con System.Net.WebClient
e le API correlate, è necessario usare $(AndroidTlsProvider)
.
Nota
Il supporto per la $(AndroidHttpClientHandlerType)
proprietà funziona impostando la XA_HTTP_CLIENT_HANDLER_TYPE
variabile di ambiente.
Valore $XA_HTTP_CLIENT_HANDLER_TYPE
trovato in un file con un'azione Di compilazione di @(AndroidEnvironment)
avrà la precedenza.
Aggiunto in Xamarin.Android 6.1.
AndroidIncludeWrapSh
Valore booleano che indica se lo script wrapper Android (wrap.sh
) deve essere inserito nel pacchetto nell'APK. Il valore predefinito è false
poiché lo script wrapper può influire significativamente sulla modalità di avvio e funzionamento dell'applicazione e lo script deve essere incluso solo quando necessario, ad esempio quando si esegue il debug o si modifica il comportamento di avvio/runtime dell'applicazione.
Lo script viene aggiunto al progetto usando @(AndroidNativeLibrary)
azione di compilazione, perché viene inserita nella stessa directory delle librerie native specifiche dell'architettura e deve essere denominata wrap.sh
.
Il modo più semplice per specificare il percorso dello script consiste nell'inserirlo wrap.sh
in una directory denominata dopo l'architettura di destinazione. Questo approccio funzionerà se si dispone di una wrap.sh
sola architettura:
<AndroidNativeLibrary Include="path/to/arm64-v8a/wrap.sh" />
Tuttavia, se il progetto richiede più di un'architettura wrap.sh
, per scopi diversi, questo approccio non funzionerà.
In questi casi, invece, è possibile specificare il nome usando i Link
metadati di AndroidNativeLibrary
:
<AndroidNativeLibrary Include="/path/to/my/arm64-wrap.sh">
<Link>lib\arm64-v8a\wrap.sh</Link>
</AndroidNativeLibrary>
Se vengono usati i Link
metadati, il percorso specificato nel relativo valore deve essere un percorso di libreria specifico dell'architettura nativa valido, relativo alla directory radice APK. Il formato del percorso è lib\ARCH\wrap.sh
dove ARCH
può essere uno dei seguenti:
arm64-v8a
armeabi-v7a
x86_64
x86
AndroidJavadocVerbosity
Specifica il modo in cui devono essere "verbose" i commenti della documentazione XML C# durante l'importazione della documentazione Javadoc all'interno dei progetti di associazione.
Richiede l'uso di @(JavaSourceJar)
azione di compilazione.
La $(AndroidJavadocVerbosity)
proprietà è simile a enumerazione, con valori possibili di full
o intellisense
:
intellisense
: genera solo i commenti XML:<exception/>
,<param/>
,<returns/>
,<summary/>
.full
: generaintellisense
elementi, nonché<remarks/>
,<seealso/>
e qualsiasi altro elemento supportabile.
Il valore predefinito è intellisense
.
Il supporto per questa proprietà è stato aggiunto in Xamarin.Android 11.3.
AndroidKeyStore
Valore booleano che indica se devono essere utilizzate informazioni di firma personalizzate. Il valore predefinito è False
, indicante che per la firma dei pacchetti verrà usata la chiave di firma di debug.
AndroidLaunchActivity
Attività Android da avviare.
AndroidLinkMode
Specifica il tipo di collegamento da eseguire sugli assembly contenuti nel pacchetto Android. Usato solo nei progetti Applicazione Android. Il valore predefinito è SdkOnly. I valori validi sono:
None: non verranno tentati collegamenti.
SdkOnly: il collegamento verrà eseguito solo nelle librerie di classi base e non negli assembly dell'utente.
Full: il collegamento verrà eseguito nelle librerie di classi base e negli assembly dell'utente.
Nota
se si usa Full come valore di
AndroidLinkMode
, spesso le app vengono interrotte, soprattutto quando viene usata la reflection. Evitarlo a meno che non se ne sia davvero certi.
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
AndroidLinkResources
Quando true
, il sistema di compilazione collega i tipi annidati della classe Resource.Designer.cs Resource
in tutti gli assembly. Il codice IL che usa tali tipi verrà aggiornato per usare i valori direttamente anziché accedere ai campi.
Il collegamento dei tipi annidati può avere un impatto ridotto sulla riduzione delle dimensioni dell'apk e può anche contribuire alle prestazioni di avvio. Sono collegate solo le build "Release".
Sperimentale. Progettato solo per funzionare con codice, ad esempio
var view = FindViewById(Resources.Ids.foo);
Gli altri scenari (ad esempio reflection) non saranno supportati.
Il supporto per questa proprietà è stato aggiunto in Xamarin.Android 11.3
AndroidLinkSkip
Specifica un elenco delimitato da punto e virgola (;
) di nomi di assembly, senza estensioni di file, di assembly che non devono essere collegati. Usato solo nei progetti Applicazione Android.
<AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>
AndroidLinkTool
Proprietà di tipo enumerazione con valori validi di proguard
o r8
. Indica quale strumento viene usato per compattare il codice Java. Il valore predefinito è una stringa vuota o proguard
se $(AndroidEnableProguard)
è True
. Vedere la documentazione su D8 e R8.
AndroidLintEnabled
Proprietà bool che consente allo sviluppatore di eseguire lo strumento Android lint
come parte del processo di creazione del pacchetto.
Quando $(AndroidLintEnabled)
=True, vengono usate le proprietà seguenti:
È anche possibile usare le azioni di compilazione seguenti:
Vedere la guida di Lint per maggiori dettagli sullo strumento lint
di Android.
AndroidLintEnabledIssues
Proprietà stringa che rappresenta un elenco delimitato da virgole di problemi lint da abilitare.
Utilizzato solo quando $(AndroidLintEnabled)
=True.
AndroidLintDisabledIssues
Proprietà stringa che rappresenta un elenco delimitato da virgole di problemi di lint da disabilitare.
Utilizzato solo quando $(AndroidLintEnabled)
=True.
AndroidLintCheckIssues
Proprietà stringa che rappresenta un elenco delimitato da virgole di problemi lint da controllare.
Utilizzato solo quando $(AndroidLintEnabled)
=True.
Nota: verranno controllati solo questi problemi.
AndroidManagedSymbols
Proprietà booleana che controlla se i punti di sequenza vengono generati in modo che le informazioni sul nome file e sul numero di riga possano essere estratte dalle Release
tracce dello stack.
Aggiunto in Xamarin.Android 6.1.
AndroidManifest
Specifica un nome file da usare come modello per l'app AndroidManifest.xml
.
Durante la compilazione, verranno uniti gli altri valori necessari per generare il file AndroidManifest.xml
effettivo.
$(AndroidManifest)
deve contenere il nome del pacchetto nell'attributo /manifest/@package
.
AndroidManifestMerger
Specifica l'implementazione per l'unione di file AndroidManifest.xml . Si tratta di una proprietà di tipo enumerazione in cui legacy
seleziona l'implementazione C# originale e manifestmerger.jar
seleziona l'implementazione Java di Google.
Il valore predefinito è attualmente legacy
. Verrà modificato in manifestmerger.jar
in una versione futura per allineare il comportamento con Android Studio.
La fusione di Google consente il supporto per xmlns:tools="http://schemas.android.com/tools"
come descritto nella documentazione di Android.
Introdotto in Xamarin.Android 10.2
AndroidManifestMergerExtraArgs
Proprietà stringa per fornire argomenti allo strumento di documentazione di Android.
Se si vuole ottenere un output dettagliato dallo strumento, è possibile aggiungere quanto segue a .csproj
.
<AndroidManifestMergerExtraArgs>--log VERBOSE</AndroidManifestMergerExtraArgs>
Introdotto in Xamarin.Android 11.x
AndroidManifestType
Proprietà di tipo enumerazione con valori validi di Xamarin
o GoogleV2
.
Questo controlla quale repository viene usato da InstallAndroidDependencies
destinazione per determinare quali pacchetti Android e versioni dei pacchetti sono disponibili e possono essere installati.
Xamarin
è il repository Elenco approvato (consigliato) in Visual Studio SDK Manager.
GoogleV2
è il repository Elenco completo (non supportato) all'interno di Visual Studio SDK Manager.
Aggiunta in Xamarin.Android 13.0. In Xamarin.Android 13.0, se $(AndroidManifestType)
non è impostato, Xamarin
viene usato .
Prima di Xamarin.Android 13.0, l'impostazione $(AndroidManifestType)
non ha alcun effetto e GoogleV2
viene usata.
AndroidManifestPlaceholders
Elenco delimitato da punto e virgola di coppie di sostituzione chiave-valore per AndroidManifest.xml, in cui ogni coppia ha il formato key=value
.
Ad esempio, un valore della proprietà definisce assemblyName=$(AssemblyName)
un ${assemblyName}
segnaposto che può essere visualizzato in AndroidManifest.xml:
<application android:label="${assemblyName}"
In questo modo è possibile inserire variabili dal processo di compilazione nel file AndroidManifest.xml .
AndroidMultiDexClassListExtraArgs
Proprietà stringa che consente agli sviluppatori di passare argomenti a durante com.android.multidex.MainDexListBuilder
la generazione del multidex.keep
file.
Un caso specifico è se si riceve l'errore seguente durante la compilazione di dx
.
com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded
Se viene visualizzato questo errore, è possibile aggiungere quanto segue a .csproj
.
<DxExtraArguments>--force-jumbo </DxExtraArguments>
<AndroidMultiDexClassListExtraArgs>--disable-annotation-resolution-workaround</AndroidMultiDexClassListExtraArgs>
che consentirà al dx
passaggio di avere esito positivo.
Aggiunta in Xamarin.Android 8.3.
AndroidPackageFormat
Proprietà di tipo enumerazione con valori validi di apk
o aab
. Indica se si vuole creare un pacchetto dell'applicazione Android come file APK o bundle di app Android. I bundle di app sono un nuovo formato per le compilazioni Release
destinate all'invio in Google Play. Il valore predefinito è apk
.
Quando $(AndroidPackageFormat)
è impostato su aab
, vengono impostate altre proprietà di MSBuild, necessarie per i bundle di app Android:
$(AndroidUseAapt2)
è .True
$(AndroidUseApkSigner)
è .False
$(AndroidCreatePackagePerAbi)
è .False
Questa proprietà verrà deprecata per .net 6. Gli utenti devono passare alla versione più recente AndroidPackageFormats
.
AndroidPackageFormats
Proprietà delimitata da punti e virgola con valori validi di apk
e aab
.
Indica se si vuole creare un pacchetto dell'applicazione Android come file APK o bundle di app Android. I bundle di app sono un nuovo formato per le compilazioni Release
destinate all'invio in Google Play.
Quando si compila una build di rilascio, è possibile generare sia che aab
una apk
per la distribuzione in vari archivi.
L'impostazione su AndroidPackageFormats
aab;apk
comporterà la generazione di entrambi. Se si imposta AndroidPackageFormats
su aab
o apk
verrà generato un solo file.
Per .net 6 AndroidPackageFormats
verrà impostato su aab;apk
solo per Release
le compilazioni. È consigliabile continuare a usare solo apk
per il debug.
Per Legacy Xamarin.Android Il valore predefinito è ""
.
Di conseguenza, Xamarin.Android legacy NON produrrà per impostazione predefinita entrambi come parte di una build di versione. Se un utente vuole produrre entrambi gli output, sarà necessario definire quanto segue nella configurazione Release
.
<AndroidPackageFormats>aab;apk</AndroidPackageFormats>
Sarà anche necessario rimuovere l'esistente AndroidPackageFormat
per tale configurazione, se disponibile.
Aggiunta in Xamarin.Android 11.5.
AndroidPackageNamingPolicy
Proprietà di tipo enumerazione per specificare i nomi dei pacchetti Java del codice sorgente Java generato.
In Xamarin.Android 10.2 e versioni successive l'unico valore supportato è LowercaseCrc64
.
In Xamarin.Android 10.1 era disponibile anche un valore transitorio LowercaseMD5
che consentiva di tornare allo stile originale del nome del pacchetto Java usato in Xamarin.Android 10.0 e versioni precedenti. Questa opzione è stata rimossa in Xamarin.Android 10.2 per migliorare la compatibilità con gli ambienti di compilazione che hanno applicato la conformità FIPS.
Aggiunta in Xamarin.Android 10.1.
AndroidProguardMappingFile
Specifica la -printmapping
regola proguard per r8
. Ciò significa che il mapping.txt
file verrà prodotto nella $(OutputPath)
cartella . Questo file può quindi essere usato durante il caricamento di pacchetti in Google Play Store.
Per impostazione predefinita, questo file viene generato automaticamente quando si usa AndroidLinkTool=r8
e genera il file $(OutputPath)mapping.txt
seguente.
Se non si vuole generare questo file di mapping, è possibile utilizzare la proprietà per interrompere la AndroidCreateProguardMappingFile
creazione.
Aggiungere quanto segue nel progetto
<AndroidCreateProguardMappingFile>False</AndroidCreateProguardMappingFile>
oppure usare -p:AndroidCreateProguardMappingFile=False
nella riga di comando.
Questa proprietà è stata aggiunta in Xamarin.Android 11.2.
AndroidR8IgnoreWarnings
Specifica la -ignorewarnings
regola proguard per r8
. Ciò consente di r8
continuare con la compilazione dex anche se vengono rilevati determinati avvisi. Il valore predefinito è True
, ma può essere impostato su per False
applicare un comportamento più rigoroso. Per informazioni dettagliate, vedere il manuale di ProGuard.
Aggiunta in Xamarin.Android 10.3.
AndroidR8JarPath
Percorso da r8.jar
usare con il compilatore dex e il compattatore r8. Il valore predefinito è un percorso nell'installazione di Xamarin.Android. Per altre informazioni, vedere la documentazione su D8 e R8.
AndroidResgenExtraArgs
Specifica le opzioni della riga di comando da passare al comando aapt durante l'elaborazione di risorse e asset Android.
AndroidResgenFile
Specifica il nome del file di risorse da generare. Il modello predefinito lo imposta su Resource.designer.cs
.
AndroidSdkBuildToolsVersion
Il pacchetto di strumenti di compilazione di Android SDK fornisce gli strumenti aapt e zipalign , tra gli altri. Più versioni diverse del pacchetto di strumenti di compilazione possono essere installate contemporaneamente. Il pacchetto di strumenti di compilazione scelto per la creazione di pacchetti viene creato cercando e usando una versione "preferita" degli strumenti di compilazione, se presente. Se la versione "preferita" non è presente, viene usato il pacchetto di strumenti di compilazione installato con la versione superiore.
La proprietà MSBuild $(AndroidSdkBuildToolsVersion)
contiene la versione preferita degli strumenti di compilazione. Il sistema di compilazione Xamarin.Android specifica un valore predefinito in Xamarin.Android.Common.targets
ed è possibile eseguire l'override del valore predefinito nel file di progetto per scegliere una versione alternativa degli strumenti di compilazione, se, ad esempio, lo strumento aapt più recente si arresta in modo anomalo mentre una versione di aapt precedente è sicuramente funzionante.
AndroidSigningKeyAlias
Specifica l'alias per la chiave nell'archivio chiavi. Si tratta del valore keytool -alias usato durante la creazione dell'archivio chiavi.
AndroidSigningKeyPass
Specifica la password della chiave all'interno del file dell'archivio chiavi. Si tratta del valore immesso quando keytool
chiede di immettere la password della chiave per $(AndroidSigningKeyAlias).
In Xamarin.Android 10.0 e versioni precedenti questa proprietà supporta solo password di testo normale.
In Xamarin.Android 10.1 e versioni successive, questa proprietà supporta env:
anche i prefissi e file:
che possono essere usati per specificare una variabile di ambiente o un file che contiene la password. Queste opzioni consentono di impedire la visualizzazione della password nei log di compilazione.
Ad esempio, per usare una variabile di ambiente denominata AndroidSigningPassword:
<PropertyGroup>
<AndroidSigningKeyPass>env:AndroidSigningPassword</AndroidSigningKeyPass>
</PropertyGroup>
Per usare un file che si trova in C:\Users\user1\AndroidSigningPassword.txt
:
<PropertyGroup>
<AndroidSigningKeyPass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningKeyPass>
</PropertyGroup>
Nota
Il env:
prefisso non è supportato quando $(AndroidPackageFormat)
è impostato su aab
.
AndroidSigningKeyStore
Specifica il nome del file dell'archivio chiavi creato da keytool
. Corrisponde al valore fornito all'opzione keytool -keystore.
AndroidSigningStorePass
Specifica la password di $(AndroidSigningKeyStore)
.
Si tratta del valore fornito a keytool
quando si è creato il file dell'archivio chiavi ed è stato chiesto di immettere la password dell'archivio chiavi.
In Xamarin.Android 10.0 e versioni precedenti questa proprietà supporta solo password di testo normale.
In Xamarin.Android 10.1 e versioni successive, questa proprietà supporta env:
anche i prefissi e file:
che possono essere usati per specificare una variabile di ambiente o un file che contiene la password. Queste opzioni consentono di impedire la visualizzazione della password nei log di compilazione.
Ad esempio, per usare una variabile di ambiente denominata AndroidSigningPassword:
<PropertyGroup>
<AndroidSigningStorePass>env:AndroidSigningPassword</AndroidSigningStorePass>
</PropertyGroup>
Per usare un file che si trova in C:\Users\user1\AndroidSigningPassword.txt
:
<PropertyGroup>
<AndroidSigningStorePass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningStorePass>
</PropertyGroup>
Nota
Il env:
prefisso non è supportato quando $(AndroidPackageFormat)
è impostato su aab
.
AndroidSigningPlatformKey
Specifica il file di chiave da usare per firmare l'apk.
Questa operazione viene usata solo durante la compilazione di system
applicazioni.
Il supporto per questa proprietà è stato aggiunto in Xamarin.Android 11.3.
AndroidSigningPlatformCert
Specifica il file di certificato da usare per firmare l'apk.
Questa operazione viene usata solo durante la compilazione di system
applicazioni.
Il supporto per questa proprietà è stato aggiunto in Xamarin.Android 11.3.
AndroidSupportedAbis
Proprietà stringa che contiene un elenco delimitato da punto e virgola (;
) di ABI che deve essere incluso in .apk
.
I valori supportati includono:
armeabi-v7a
x86
arm64-v8a
: richiede Xamarin.Android 5.1 e versioni successive.x86_64
: richiede Xamarin.Android 5.1 e versioni successive.
AndroidTlsProvider
Valore stringa che specifica il provider TLS da usare in un'applicazione. I valori possibili sono:
Unset/la stringa vuota: in Xamarin.Android 7.3 e versioni successive, equivale a
btls
.in Xamarin.Android 7.1 equivale a
legacy
.Corrisponde all'impostazione Predefinito nelle pagine delle proprietà di Visual Studio.
btls
: usa Boring SSL per la comunicazione TLS con HttpWebRequest.Ciò consente l'uso di TLS 1.2 in tutte le versioni di Android.
Corrisponde all'impostazione TLS 1.2+ nativo nelle pagine delle proprietà di Visual Studio.
legacy
: in Xamarin.Android 10.1 e versioni precedenti usare l'implementazione ssl gestita cronologica per l'interazione di rete. Questo non supporta TLS 1.2.Corrisponde all'impostazione TLS 1.0 gestito nelle pagine delle proprietà di Visual Studio.
In Xamarin.Android 10.2 e versioni successive questo valore viene ignorato e viene usata l'impostazione
btls
.default
: questo valore è improbabile che venga usato nei progetti Xamarin.Android. Il valore consigliato da usare è invece la stringa vuota, che corrisponde all'impostazione Predefinito nelle pagine delle proprietà di Visual Studio.Il valore
default
non è disponibile nelle pagine delle proprietà di Visual Studio.Attualmente equivale a
legacy
.
Aggiunto in Xamarin.Android 7.1.
AndroidUseAapt2
Proprietà booleana che consente allo sviluppatore di controllare l'uso dello strumento per la aapt2
creazione di pacchetti.
Per impostazione predefinita, questo valore sarà False e Xamarin.Android userà aapt
.
Se lo sviluppatore vuole usare la nuova aapt2
funzionalità, aggiungere:
<AndroidUseAapt2>True</AndroidUseAapt2>
nel relativo .csproj
oggetto . In alternativa, specificare la proprietà nella riga di comando:
/p:AndroidUseAapt2=True
Questa proprietà è stata aggiunta in Xamarin.Android 8.3. L'impostazione su AndroidUseAapt2
false
è deprecata in Xamarin.Android 11.2.
AndroidUseApkSigner
Proprietà bool che consente allo sviluppatore di usare lo apksigner
strumento anziché jarsigner
.
Aggiunta in Xamarin.Android 8.2.
AndroidUseDefaultAotProfile
Proprietà bool che consente allo sviluppatore di eliminare l'utilizzo dei profili AOT predefiniti.
Per eliminare i profili AOT predefiniti, impostare la proprietà su false
.
Aggiunta in Xamarin.Android 10.1.
AndroidUseInterpreter
Proprietà booleana che fa sì che l'oggetto .apk
contenga l'interprete mono e non il normale JIT.
Sperimentale.
Il supporto per questa proprietà è stato aggiunto in Xamarin.Android 11.3.
AndroidUseLegacyVersionCode
Proprietà booleana che consente allo sviluppatore di ripristinare il comportamento precedente di Xamarin.Android 8.2 del calcolo versionCode. Deve essere usata SOLO dagli sviluppatori con applicazioni esistenti in Google Play Store. È consigliabile usare la nuova proprietà $(AndroidVersionCodePattern)
.
Aggiunta in Xamarin.Android 8.2.
AndroidUseManagedDesignTimeResourceGenerator
Proprietà booleana che passerà alla compilazione in fase di progettazione per usare il parser delle risorse gestite anziché aapt
.
Aggiunta in Xamarin.Android 8.1.
AndroidUseSharedRuntime
Proprietà booleana che determina se i pacchetti di runtime condivisi sono necessari per eseguire l'applicazione nel dispositivo di destinazione. Basandosi sui pacchetti di runtime condiviso, è possibile ridurre le dimensioni del pacchetto dell'applicazione, velocizzando il processo di creazione e distribuzione del pacchetto e di conseguenza anche il ciclo di compilazione/distribuzione/debug.
Prima di Xamarin.Android 11.2, questa proprietà deve essere True
per le compilazioni di debug e False
per i progetti release.
Questa proprietà è stata rimossa in Xamarin.Android 11.2.
AndroidVersionCode
Proprietà MSBuild che può essere usata come alternativa al /manifest/@android:versionCode
AndroidManifest.xml
file. Per acconsentire esplicitamente a questa funzionalità, è necessario abilitare <GenerateApplicationManifest>true</GenerateApplicationManifest>
anche .
Questa sarà l'impostazione predefinita in futuro in .NET 6.
Questa proprietà viene ignorata se $(AndroidCreatePackagePerAbi)
e $(AndroidVersionCodePattern)
vengono utilizzati.
@android:versionCode
è un valore intero che deve essere incrementato per ogni versione di Google Play. Per altri dettagli sui requisiti per , vedere la documentazione di Android./manifest/@android:versionCode
Il supporto per questa proprietà è stato aggiunto in Xamarin.Android 11.3.
AndroidVersionCodePattern
Proprietà stringa che consente allo sviluppatore di personalizzare nel versionCode
manifesto.
Per informazioni utili per decidere riguardo a versionCode
, vedere Creazione del codice della versione per l'APK.
Alcuni esempi: se abi
è armeabi
e versionCode
nel manifesto è 123
, {abi}{versionCode}
genererà un elemento versionCode 1123
quando $(AndroidCreatePackagePerAbi)
è True. In caso contrario genererà il valore 123.
Se abi
è x86_64
e versionCode
nel manifesto è 44
, verrà generato 544
quando $(AndroidCreatePackagePerAbi)
è True. In caso contrario, genererà il valore 44
.
Se viene inclusa una stringa di formato con riempimento a sinistra {abi}{versionCode:0000}
, genererà 50044
perché si riempie versionCode
a sinistra con 0
. In alternativa, è possibile usare il riempimento decimale, ad esempio {abi}{versionCode:D4}
che equivale all'esempio precedente.
Sono supportate solo le stringhe in formato con riempimento "0" e "Dx" perché il valore DEVE essere un intero.
Elementi chiave predefiniti
abi: inserisce l'abi di destinazione per l'app
- 2 –
armeabi-v7a
- 3 –
x86
- 4 –
arm64-v8a
- 5 –
x86_64
- 2 –
minSDK : inserisce il valore sdk minimo supportato da
AndroidManifest.xml
o11
se non è definito nessuno.versionCode : usa il codice della versione direttamente da
Properties\AndroidManifest.xml
.
È possibile definire gli elementi personalizzati usando la proprietà $(AndroidVersionCodeProperties)
(definita successivamente).
Per impostazione predefinita, il valore verrà impostato su {abi}{versionCode:D6}
. Se uno sviluppatore vuole mantenere il comportamento precedente può ignorare l'impostazione predefinita impostando la proprietà $(AndroidUseLegacyVersionCode)
su true
Aggiunto in Xamarin.Android 7.2.
AndroidVersionCodeProperties
Proprietà stringa che consente allo sviluppatore di definire elementi personalizzati da usare con .$(AndroidVersionCodePattern)
sotto forma di coppia key=value
. Tutti gli elementi in value
devono essere valori interi. Ad esempio: screen=23;target=$(_AndroidApiLevel)
. Come si può osservare, è possibile usare nella stringa proprietà MSBuild esistenti o personalizzate.
Aggiunto in Xamarin.Android 7.2.
ApplicationId
Proprietà MSBuild che può essere usata come alternativa al /manifest/@package
AndroidManifest.xml
file. Per acconsentire esplicitamente a questa funzionalità, è necessario abilitare <GenerateApplicationManifest>true</GenerateApplicationManifest>
anche .
Questa sarà l'impostazione predefinita in futuro in .NET 6.
Per altri dettagli sui requisiti per , vedere la documentazione di Android./manifest/@package
Il supporto per questa proprietà è stato aggiunto in Xamarin.Android 11.3.
ApplicationTitle
Proprietà MSBuild che può essere usata come alternativa al /manifest/application/@android:label
AndroidManifest.xml
file. Per acconsentire esplicitamente a questa funzionalità, è necessario abilitare <GenerateApplicationManifest>true</GenerateApplicationManifest>
anche .
Questa sarà l'impostazione predefinita in futuro in .NET 6.
Per altri dettagli sui requisiti per , vedere la documentazione di Android./manifest/application/@android:label
Il supporto per questa proprietà è stato aggiunto in Xamarin.Android 11.3.
ApplicationVersion
Proprietà MSBuild che può essere usata come alternativa al /manifest/@android:versionName
AndroidManifest.xml
file. Per acconsentire esplicitamente a questa funzionalità, è necessario abilitare <GenerateApplicationManifest>true</GenerateApplicationManifest>
anche .
Questa sarà l'impostazione predefinita in futuro in .NET 6.
Per altri dettagli sui requisiti per , vedere la documentazione di Android./manifest/@android:versionName
Il supporto per questa proprietà è stato aggiunto in Xamarin.Android 11.3.
AotAssemblies
Proprietà booleana che determina se gli assembly verranno compilati in anticipo nel codice nativo e inclusi in .apk
.
Il supporto per questa proprietà stato aggiunto in Xamarin.Android 5.1.
Per impostazione predefinita, il valore della proprietà è False
.
AProfUtilExtraOptions
Opzioni aggiuntive da passare a aprofutil
.
BeforeGenerateAndroidManifest
Le destinazioni MSBuild elencate in questa proprietà verranno eseguite direttamente prima di _GenerateJavaStubs
.
Aggiunta in Xamarin.Android 9.4.
Impostazione
Specifica la configurazione di compilazione da usare, ad esempio "Debug" o "Release". La proprietà Configuration viene usata per determinare i valori predefiniti per le altre proprietà che determinano il comportamento delle destinazioni. Configurazioni aggiuntive possono essere create nell'IDE.
Per impostazione predefinita, la Debug
configurazione genererà Install
e SignAndroidPackage
è destinato a creare un pacchetto Android più piccolo che richiede la presenza di altri file e pacchetti per funzionare.
La configurazione predefinita Release
comporterà la Install
e SignAndroidPackage
è destinato alla creazione di un pacchetto Android autonomo e può essere usato senza installare altri pacchetti o file.
DebugSymbols
Valore booleano che determina se il pacchetto Android è di cui è possibile eseguire il debug, in combinazione con la $(DebugType)
proprietà .
Un pacchetto di debug contiene simboli di debug, imposta l'attributo //application/@android:debuggable
su true
e aggiunge automaticamenteINTERNET
autorizzazione in modo che un debugger possa connettersi al processo. Un'applicazione è debugbile se DebugSymbols
è True
e DebugType
è la stringa vuota o Full
.
DebugType
Specifica il tipo di simboli di debug da generare come parte della compilazione, che influisce anche sull'eventuale debug dell'applicazione. I valori possibili includono:
Full: vengono generati simboli completi. Se l'oggetto
DebugSymbols
La proprietà MSBuild è ancheTrue
, quindi il pacchetto dell'applicazione è debugabile.PdbOnly: vengono generati simboli "PDB". Il pacchetto dell'applicazione non è possibile eseguire il debug.
Se DebugType
non è impostato o è una stringa vuota, la proprietà DebugSymbols
controlla se l'applicazione può essere sottoposta o meno a debug.
EmbedAssembliesIntoApk
Proprietà booleana che determina se gli assembly dell'app devono essere incorporati nel pacchetto dell'applicazione.
Questa proprietà deve essere True
per le build di rilascio e False
per le build di debug. Potrebbe dover essere True
nelle build di debug se Fast Deployment non supporta il dispositivo di destinazione.
Quando questa proprietà è False
, allora il $(AndroidFastDeploymentType)
La proprietà MSBuild controlla anche cosa verrà incorporato in .apk
, che può influire sui tempi di distribuzione e ricompilazione.
EnableLLVM
Proprietà booleana che determina se verrà utilizzata o meno LLVM durante la compilazione degli assembly in codice nativo.
Per compilare un progetto con questa proprietà abilitata, è necessario installare Android NDK.
Il supporto per questa proprietà stato aggiunto in Xamarin.Android 5.1.
Per impostazione predefinita, il valore della proprietà è False
.
Questa proprietà viene ignorata a meno che la proprietà MSBuild $(AotAssemblies)
non sia True
.
EnableProguard
Proprietà booleana che determina se proguard viene eseguito come parte del processo di creazione del pacchetto per collegare il codice Java.
Il supporto per questa proprietà stato aggiunto in Xamarin.Android 5.1.
Per impostazione predefinita, il valore della proprietà è False
.
Quando True
, i file @(ProguardConfiguration) verranno usati per controllare proguard
l'esecuzione.
GenerateApplicationManifest
Abilita o disabilita le proprietà MSBuild seguenti che generano valori nel file finale AndroidManifest.xml
:
Il valore $(GenerateApplicationManifest)
predefinito è true
in .NET 6 e false
in "legacy" Xamarin.Android.
Il supporto per questa proprietà è stato aggiunto in Xamarin.Android 11.3.
JavaMaximumHeapSize
Specifica il valore del valore del parametro Java-Xmx
da usare durante la compilazione del .dex
file come parte del processo di creazione dei pacchetti. Se il valore non è specificato, l'opzione -Xmx
specifica per java il valore 1G
. Questi valori sono richiesti più comunemente in Windows rispetto ad altre piattaforme.
Personalizzare il valore modificando quanto segue:
<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
JavaOptions
Specifica le opzioni della riga di comando da passare a Java durante la compilazione del .dex
file.
JarsignerTimestampAuthorityCertificateAlias
Questa proprietà consente di specificare un alias nell'archivio chiavi per un'autorità di timestamp. Per altri dettagli, vedere la documentazione relativa al supporto del timestamp della firma Java.
<PropertyGroup>
<JarsignerTimestampAuthorityCertificateAlias>Alias</JarsignerTimestampAuthorityCertificateAlias>
</PropertyGroup>
JarsignerTimestampAuthorityUrl
Questa proprietà consente di specificare un URL per un servizio di autorità di timestamp. Può essere usato per assicurarsi che la .apk
firma includa un timestamp.
Per altri dettagli, vedere la documentazione relativa al supporto del timestamp della firma Java.
<PropertyGroup>
<JarsignerTimestampAuthorityUrl>http://example.tsa.url</JarsignerTimestampAuthorityUrl>
</PropertyGroup>
LinkerDumpDependencies
Proprietà bool che consente la generazione di un file di dipendenze del linker. Questo file può essere usato come input per lo strumento illinkanalyzer.
Il file di dipendenze denominato linker-dependencies.xml.gz
viene scritto nella directory del progetto. Su. NET5/6 viene scritto accanto agli assembly collegati nella obj/<Configuration>/android<ABI>/linked
directory.
Il valore predefinito è Falso.
MandroidI18n
Specifica il supporto per l'internazionalizzazione incluso nell'applicazione, ad esempio le regole di confronto e le tabelle di ordinamento. Il valore è un elenco separato da virgole o punti e virgola di uno o più dei valori seguenti senza distinzione tra maiuscole e minuscole:
None: non include codifiche aggiuntive.
All: include tutte le codifiche disponibili.
CJK: includere codifiche cinesi, giapponesi e coreane, ad esempio giapponese (EUC) [enc-jp, CP51932], giapponese (Shift-JIS) [iso-2022-jp, shift_jis, CP932], giapponese (JIS) [CP50220], Cinese semplificato (GB2312) [gb2312, CP936], coreano (UHC) [ks_c_5601-1987, CP949], coreano (EUC) [euc-kr, CP51949], cinese tradizionale (Big5) [big5, CP950], e cinese semplificato (GB18030) [GB18030, CP54936].
MidEast: includere codifiche middle-eastern come turco (Windows) [iso-8859-9, CP1254], ebraico (Windows) [windows-1255, CP1255], arabo (Windows) [windows-1256, CP1256], arabo (ISO) [iso-8859-6, CP28596], ebraico (ISO) [iso-8859-8, CP28598], latino 5 (ISO) [iso-8859-9, CP28599], e ebraico (Iso Alternative) [iso-8859-8, CP38598].
Altro: includere altre codifiche, ad esempio Cirillico (Windows) [CP1251], Baltic (Windows) [iso-8859-4, CP1257], Vietnamita (Windows) [CP1258], Cirillico (KOI8-R) [koi8-r, CP1251], Ucraino (KOI8-U) [koi8-u, CP1251], Baltic (ISO) [iso-8859-4, CP1257], Cirillico (ISO) [iso-8859-5, CP1251], ISCII Dave digitai [x-iscii-de, CP57002], ISCII Bengali [x-iscii-be, CP57003], ISCII Tamil [x-iscii-ta, CP57004], ISCII Telugu [x-iscii-te, CP57005], ISCII Assamese [x-iscii-as, CP57006], ISCII Oriya [x-iscii-or, CP57007], ISCII Kannada [x-iscii-ka, CP57008], ISCII Malayalam [x-iscii-ma, CP57009], ISCII Gujarati [x-iscii-gu, CP57010], ISCII Punjabi [x-iscii-pa, CP57011], e Thai (Windows) [CP874].
Rare: includere codifiche rare come IBM EBCDIC (Turco) [CP1026], IBM EBCDIC (Open Systems Latin 1) [CP1047], IBM EBCDIC (US-Canada with Euro) [CP1140], IBM EBCDIC (Germania con Euro) [CP1141], IBM EBCDIC (Danimarca/Norvegia con Euro) [CP1142], IBM EBCDIC (Finlandia/Svezia con Euro) [CP1143], IBM EBCDIC (Italia con Euro) [CP1144], IBM EBCDIC (America Latina con Euro) [CP1145], IBM EBCDIC (Regno Unito con Euro) [CP1146], IBM EBCDIC (Francia con Euro) [CP1147], IBM EBCDIC (International with Euro) [CP1148], IBM EBCDIC (Islandese con Euro) [CP1149], IBM EBCDIC (Germania) [CP20273], IBM EBCDIC (Danimarca/Norvegia) [CP20277], IBM EBCDIC (Finlandia/Svezia) [CP20278], IBM EBCDIC (Italia) [CP20280], IBM EBCDIC (America Latina/Spagna) [CP20284], IBM EBCDIC (Regno Unito) [CP20285], IBM EBCDIC (Giapponese Katakana Extended) [CP20290], IBM EBCDIC (Francia) [CP20297], IBM EBCDIC (arabo) [CP20420], IBM EBCDIC (ebraico) [CP20424], IBM EBCDIC (Islandese) [CP20871], IBM EBCDIC (Cirillico - Serbo, Bulgaro) [CP21025], IBM EBCDIC (US-Canada) [CP37], IBM EBCDIC (International) [CP500], Arabo (ASMO 708) [CP708], Europa centrale (DOS) [CP852], cirillico (DOS) [CP855], Turco (DOS) [CP857], Europa occidentale (DOS con euro) [CP858], ebraico (DOS) [CP862], arabo (DOS) [CP864], russo (DOS) [CP866], greco (DOS) [CP869], IBM EBCDIC (Latin 2) [CP870], e IBM EBCDIC (greco) [CP875].
West: includere codifiche occidentali come l'Europa occidentale (Mac) [macintosh, CP10000], Islandese (Mac) [x-mac-islandic, CP10079], Europa centrale (Windows) [iso-8859-2, CP1250], Europa occidentale (Windows) [iso-8859-1, CP1252], Greco (Windows) [iso-8859-7, CP1253], Europa centrale (ISO) [iso-8859-2, CP28592], Latino 3 (ISO) [iso-8859-3, CP28593], greco (ISO) [iso-8859-7, CP28597], latino 9 (ISO) [iso-8859-15, CP28605], OEM Stati Uniti [CP437], Europa occidentale (DOS) [CP850], Portoghese (DOS) [CP860], Islandese (DOS) [CP861], Francese Canadese (DOS) [CP863], e Nordico (DOS) [CP865].
<MandroidI18n>West</MandroidI18n>
MonoAndroidResourcePrefix
Specifica un prefisso di percorso rimosso dall'inizio dei nomi file con un'azione Di compilazione di AndroidResource
. per poter modificare la posizione delle risorse.
Il valore predefinito è Resources
. Impostarlo su res
per la struttura del progetto Java.
MonoSymbolArchive
Proprietà booleana che controlla se .mSYM
gli artefatti vengono creati per un uso successivo con mono-symbolicate
, per estrarre le informazioni sul nome file e sul numero di riga reali dalle tracce dello stack di rilascio.
Questo è True per impostazione predefinita per le app "Release" con simboli di debug abilitati: $(EmbedAssembliesIntoApk)
è True, $(DebugSymbols)
è True e $(Optimize)
è True.
Aggiunto in Xamarin.Android 7.1.