Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As propriedades do MSBuild controlam o comportamento dos destinos . Eles são especificados dentro do arquivo de projeto, por exemplo, MyApp.csproj, dentro de um MSBuild PropertyGroup.
AltoolPath
O caminho completo para a ferramenta altool.
O comportamento padrão é usar xcrun altool.
ACToolPath
O caminho completo para a ferramenta actool.
O comportamento padrão é usar xcrun actool.
AppBundleResourcePrefix
O diretório onde os recursos são armazenados (esse prefixo será removido ao copiar recursos para o pacote de aplicativos).
Se não for definida explicitamente, essa propriedade herdará seu valor das propriedades de prefixo de recurso específicas da plataforma (IPhoneResourcePrefix, MonoMacResourcePrefix ou XamMacResourcePrefix , dependendo da plataforma).
Padrão: "Recursos"
AppBundleDir
O local do pacote de aplicativos criado.
Opções Extra do Pacote de Aplicação
Argumentos adicionais avançados para a criação de pacotes de aplicativos.
O conjunto válido de argumentos depende da plataforma.
Normalmente, eles não devem ser usados, a menos que especificado por um engenheiro da Microsoft.
Ícone do aplicativo
O grupo de itens AppIcon pode ser usado para especificar um ícone de aplicativo para o aplicativo.
O valor da propriedade deve apontar para o nome de ficheiro de um recurso de imagem .appiconset (para iOS, macOS e Mac Catalyst) ou .brandassets (para tvOS) dentro de um catálogo de ativos.
Exemplo:
<PropertyGroup>
<!-- The value to put in here for the "Resources/MyImages.xcassets/MyAppIcon.appiconset" resource would be "MyAppIcon" -->
<AppIcon>MyAppIcon</AppIcon>
</PropertyGroup>
Ver também:
- O grupo de itens AlternateAppIcon.
- A propriedade IncludeAllAppIcons.
Versão de Exibição da Aplicação
Se definido, especifica o valor CFBundleShortVersionString no manifesto do aplicativo (Info.plist).
Esta é uma propriedade que suporta .NET "Single Project".
Consulte OneDotNetSingleProject para obter mais informações.
ApplicationId
Se definido, especifica o valor CFBundleIdentifier no manifesto do aplicativo (Info.plist).
Esta é uma propriedade que suporta .NET "Single Project".
Consulte OneDotNetSingleProject para obter mais informações.
Título da Aplicação
Se definido, especifica o CFBundleDisplayName no manifesto do aplicativo (Info.plist).
Esta é uma propriedade que suporta .NET "Single Project".
Consulte OneDotNetSingleProject para obter mais informações.
Versão da Aplicação
Se definido, especifica o CFBundleVersion no manifesto do aplicativo (Info.plist).
Esta é uma propriedade que suporta .NET "Single Project".
Consulte OneDotNetSingleProject para obter mais informações.
ArchiveBasePath
O local onde os arquivos são armazenados no Windows para uma compilação remota.
O padrão é: %LocalAppData%\Xamarin\iOS\Archives
Aplicável apenas a projetos iOS (uma vez que apenas projetos iOS podem ser criados remotamente a partir do Windows).
ArchiveDir
Um caminho opcional para o diretório de arquivo morto. Se definido, o arquivo compactado será criado neste diretório em vez de calcular um caminho único em ~/Library/Developer/Xcode/Archives.
ArquivoOnBuild
Se um arquivo Xcode deve ser criado no final da compilação.
Os arquivos criados são expostos no grupo de itens ApplicationArtifact.
BGenEmitDebugInformation
Se a ferramenta bgen (o gerador de vinculação) deve emitir informações de depuração ou não.
O comportamento padrão é true quando a propriedade Debug está definida como true.
BGenExtraArgs
Quaisquer argumentos adicionais para a ferramenta bgen (o gerador de ligações).
BGenToolExe
O nome do executável bgen (uma ferramenta usada por projetos de vinculação para gerar associações).
O comportamento padrão é usar a ferramenta bgen fornecida com nossa carga de trabalho.
BGenToolPath
O diretório onde o bgen (BGenToolExe) está localizado.
O comportamento padrão é usar a ferramenta bgen fornecida com nossa carga de trabalho.
BuildIpa
Se um pacote (.ipa) deve ser criado para o pacote de aplicativos no final da compilação.
Aplicável apenas a projetos iOS e tvOS.
Consulte CreatePackage para projetos macOS e Mac Catalyst.
Os pacotes IPA criados são expostos no grupo de itens ApplicationArtifact.
BundleCreateDump
CoreCLR tem um utilitário de linha de comando chamado createdump para criar core dumps se o processo crashar. O macOS criará automaticamente relatórios de falhas para qualquer aplicativo da App Store e os disponibilizará para o desenvolvedor do aplicativo, portanto, a createdump ferramenta não é útil para muitos aplicativos do macOS e, como tal, não está incluída nos aplicativos por padrão.
Isso pode ser substituído definindo a BundleCreateDump propriedade:
<PropertyGroup>
<BundleCreateDump>true</BundleCreateDump>
</PropertyGroup>
Nota: a createdump ferramenta atualmente não funciona para aplicativos em área restrita (#18961);
Apenas aplicável a projetos que utilizam o ambiente de execução CoreCLR (que, no momento em que este artigo foi escrito, são apenas os dos projetos macOS).
PacoteRecursosOriginais
Essa propriedade determina se os recursos são compilados antes de serem incorporados em projetos de biblioteca ou se a versão original (não compilada) é incorporada.
Historicamente, os recursos foram compilados antes de serem incorporados em projetos de biblioteca, mas isso requer ter o Xcode disponível, o que tem algumas desvantagens:
- Torna mais lentas as compilações remotas no Windows.
- Ele não funcionará ao criar localmente no Windows, e nem em qualquer outra plataforma, exceto macOS.
- Os recursos são compilados usando o Xcode disponível atual, que pode não ter os mesmos recursos de um Xcode potencialmente mais recente disponível quando a biblioteca em questão é consumida.
- Isso torna impossível ter uma visão de todo o programa de todos os recursos ao criar um aplicativo, o que é necessário para detetar recursos conflitantes.
Como tal, adicionámos suporte para incorporar os recursos originais em bibliotecas. Isso será opcional no .NET 9, mas obrigatório a partir do .NET 10.
O valor padrão dessa propriedade false no .NET 9 e true no .NET 10+.
Observação
Registre um problema se achar que precisa desativar esse recurso, pois é possível que a opção para desativá-lo seja removida no futuro.
CheckForIllegalCrossThreadCalls
Controla se as verificações da thread da UI (as chamadas [NS|UI]Application.EnsureUIThread que as ligações geradas emitem para o código da UI) são realizadas.
Quando definido para true, as verificações estão ativadas: aceder à API da interface a partir do thread da interface lança uma exceção. Quando definido para false, as verificações ficam desativadas.
Esta propriedade é emitida como o comutador de funcionalidade ObjCRuntime.Runtime.CheckForIllegalCrossThreadCalls em tempo de execução, pelo que tem efeito mesmo quando o trimming está desativado: o campo [NS|UI]Application.CheckForIllegalCrossThreadCalls reflete o valor da propriedade em tempo de execução, e as verificações são ativadas ou desativadas em conformidade.
Quando o corte está ativado e as verificações desativadas, o ILLink substitui adicionalmente o corpo do método [NS|UI]Application.EnsureUIThread por um stub e remove o campo CheckForIllegalCrossThreadCalls, tornando a aplicação um pouco mais pequena e rápida.
Se este valor não for especificado, as verificações são mantidas nas compilações de depuração e removidas nas versões de lançamento.
CodesignAlocar
O caminho para a ferramenta codesign_allocate.
Por padrão, esse valor é detetado automaticamente.
CodesignConfigureDependsOn
Este é um ponto de extensão para a compilação: um desenvolvedor pode adicionar quaisquer destinos a essa propriedade para executar esses destinos antes que a compilação examine qualquer uma das propriedades de codesign.
Isso pode, por exemplo, ser usado para desativar a assinatura de código para compilações de simulador:
<PropertyGroup>
<CodesignConfigureDependsOn>$(CodesignConfigureDependsOn);DisableCodesignInSimulator</CodesignConfigureDependsOn>
</PropertyGroup>
<Target Name="DisableCodesignInSimulator" Condition="'$(SdkIsSimulator)' == 'true'">
<PropertyGroup>
<EnableCodeSigning>false</EnableCodeSigning>
</PropertyGroup>
</Target>
CodesignDependeDe
Este é um ponto de extensão para a compilação: um programador pode adicionar quaisquer alvos a esta propriedade para executar esses alvos antes que o pacote de aplicação seja assinado.
Exemplo:
<PropertyGroup>
<CodesignDependsOn>$(CodesignDependsOn);DoThisBeforeCodesign</CodesignDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCodesign">
<Exec Command="echo This is executed right before the app is signed." />
</Target>
CodesignDireitos
O caminho para o arquivo de direitos que especifica os direitos que o aplicativo requer.
Normalmente "Entitlements.plist".
Definiremos automaticamente como "Entitlements.plist" se esse arquivo existir no diretório raiz do projeto.
Isso pode ser evitado definindo a propriedade EnableDefaultCodesignEntitlements como false.
CodesignExtraArgs
Argumentos extras passados para a ferramenta 'codesign' ao assinar o pacote de aplicativos.
CodesignKey
Especifica a chave de assinatura de código a ser usada ao assinar o pacote de aplicativos.
CodesignKeychain
As chaves a serem usadas durante a assinatura de código.
Chave de Assinatura de Código
Especifica a chave de assinatura de código a ser usada ao assinar o pacote de aplicativos.
Aplicável apenas a aplicativos macOS e Mac Catalyst, mas é recomendado usar a propriedade CodesignKey em vez disso (que funciona em todas as plataformas).
CodesignProvision
Especifica o perfil de provisionamento a ser usado ao assinar o pacote de aplicativos.
CodesignResourceRules
O caminho para o ResourceRules.plist a ser copiado para o pacote de aplicativos.
CodesignRequireProvisioningProfile
Especifica se um perfil de provisionamento é necessário ao assinar o pacote de aplicativos.
Por padrão, exigimos um perfil de provisionamento se:
- macOS, Mac Catalyst: um perfil de provisionamento foi especificado (com a propriedade CodesignProvision).
- iOS, tvOS: a criação para dispositivo ou um arquivo de direitos foi especificada (com a propriedade CodesignEntitlements ).
Definir essa propriedade como true ou false substituirá a lógica padrão.
CompressBindingResourcePackage
As referências nativas em um projeto de vinculação são copiadas para o diretório de saída durante o processo de compilação, ao lado do assembly de vinculação (em algo que chamamos de "pacote de recursos de vinculação").
Essas referências nativas podem ser armazenadas compactadas dentro de um arquivo zip (chamado $(AssemblyName).resources.zip, ou as-is, dentro de um diretório chamado $(AssemblyName).resources.
A CompressBindingResourcePackage propriedade especifica se um arquivo zip ou um diretório deve ser criado.
Os valores possíveis são:
-
auto: decida automaticamente a melhor opção (atualmente um arquivo zip é sempre criado, mas uma vez que o Visual Studio oferece suporte a caminhos longos no Windows, isso pode mudar para apenas pacotes de recursos de vinculação zip com links simbólicos). -
true: criar um arquivo zip -
false: criar um diretório
A predefinição é auto.
Isso também se aplica à forma como as referências nativas são armazenadas dentro do NuGets.
Observação
Em alguns casos, pode ser benéfico forçar um ficheiro zip no iOS também, especialmente quando há um conjunto de ficheiros com nomes longos, porque o ficheiro zip às vezes pode contornar problemas de MAX_PATH no Windows.
CopyDSYMToPublishDirectory
Uma propriedade booleana que especifica se quaisquer diretórios gerados *.dSYM devem ser copiados para o diretório de publicação ao publicar (dotnet publish).
As diretorias *.dSYM são geradas ao lado do bundle da aplicação (ver NoDSymUtil) e, quando esta propriedade estiver true, também serão copiadas para o diretório de publicação (ao lado do .ipa/.pkg gerado).
O valor predefinido é true.
CopySceneKitAssetsPath
O caminho completo para a ferramenta copySceneKitAssets.
O comportamento padrão é usar xcrun copySceneKitAssets.
CoreMLCompilerPath
O caminho completo para a ferramenta coremlc.
O comportamento padrão é usar xcrun coremlc.
CriarPacoteAplicativoDependeDe
Este é um ponto de extensão para a compilação: um desenvolvedor pode adicionar quaisquer destinos a essa propriedade para executar esses destinos ao criar o pacote de aplicativos.
Exemplo:
<PropertyGroup>
<CreateAppBundleDependsOn>$(CreateAppBundleDependsOn);DoThisBeforeCreatingAppBundle</CreateAppBundleDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingAppBundle">
<Exec Command="echo This is executed before the app bundle is created." />
</Target>
CriarIpaDependeDe
Este é um ponto de extensão para o build: um desenvolvedor pode adicionar quaisquer alvos a essa propriedade para executar esses alvos ao criar um IPA.
Aplicável a todas as plataformas que constroem arquivos IPA (atualmente iOS e tvOS).
Exemplo:
<PropertyGroup>
<CreateIpaDependsOn>$(CreateIpaDependsOn);DoThisBeforeCreatingIPA</CreateIpaDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingIPA">
<Exec Command="echo This is executed before the IPA is created." />
</Target>
CreatePackage
Se um pacote (.pkg) deve ser criado para o pacote de aplicativos no final da compilação.
Aplicável apenas a projetos macOS e Mac Catalyst.
Veja BuildIpa para projetos iOS e tvOS.
Os pacotes PKG criados são expostos no grupo de itens ApplicationArtifact.
Device
Especifica qual dispositivo móvel ou simulador direcionar ao usar dotnet run --device <Device> ou alvos do MSBuild que interagem com dispositivos (como Run, Install, ou Uninstall).
O valor pode ser qualquer coisa que as ferramentas simctl de linha de comandos ou devicectl aceitam para o nome do dispositivo; isto é tipicamente o UDID ou o nome do dispositivo. Por exemplo, para o dispositivo My iOS Device com UDID 00001111-012301230123ABCD, use -p:Device="My iOS Device" ou -p:Device=00001111-012301230123ABCD.
Para mais informações sobre a seleção de dispositivos, consulte a especificação de seleção de dispositivos do SDK .NET.
CompilaçãoEspecíficaDoDispositivo
Se a compilação deve ser específica para o dispositivo selecionado.
Aplicável a todas as plataformas que suportam compilações específicas do dispositivo (atualmente iOS e tvOS).
CaminhoDeSaídaIntermediáriaEspecíficoDoDispositivo
O caminho de saída intermediário a ser usado quando compilações específicas do dispositivo estão habilitadas.
Aplicável a todas as plataformas que suportam compilações específicas do dispositivo (atualmente iOS e tvOS).
DeviceSpecificOutputPath
O caminho de saída a ser usado quando compilações específicas do dispositivo estiverem habilitadas.
Aplicável a todas as plataformas que suportam compilações específicas do dispositivo (atualmente iOS e tvOS).
Endereço de diagnóstico
O endereço IP onde dotnet-dsrouter está sendo executado. Isso ocorre normalmente 127.0.0.1 ao criar o perfil no simulador e o endereço IP da máquina ao dotnet-dsrouter criar o perfil em um dispositivo.
Este é o componente de endereço IP de DiagnosticConfiguration'.
Implicitamente define EnableDiagnostics como true.
O padrão é 127.0.0.1.
Configuração de Diagnóstico
Um valor fornecido por dotnet-dsrouter para DOTNET_DiagnosticPorts como:
127.0.0.1:9000,suspend,connect127.0.0.1:9000,nosuspend,connect
Note que o caractere , precisa ser escapado com %2c se for passado na linha de comando para dotnet build.
dotnet build -c Release -p:DiagnosticConfiguration=127.0.0.1:9000%2csuspend%2cconnect
Isso definirá automaticamente a DOTNET_DiagnosticPorts variável de ambiente empacotada dentro do aplicativo, para que a variável de ambiente seja definida quando o aplicativo for iniciado.
Implicitamente define EnableDiagnostics como true.
O comportamento padrão é calcular esse valor a partir das outras propriedades de diagnóstico (DiagnosticAddress, DiagnosticPort, DiagnosticListenMode e DiagnosticSuspend).
Se definida, qualquer uma das outras propriedades de diagnóstico será ignorada.
DiagnosticListenMode
Um valor fornecido por dotnet-dsrouter tal como connect ou listen, o componente de modo de escuta de DiagnosticConfiguration'.
Implicitamente define EnableDiagnostics como true.
O padrão é listen.
DiagnosticPort
Um valor fornecido por dotnet-dsrouter , como 9000, o componente de porta de DiagnosticConfiguration'.
Implicitamente define EnableDiagnostics como true.
O padrão é 9000.
Suspensão de Diagnóstico
Um valor que especifica o comportamento de inicialização ao criar o perfil de um aplicativo.
Defina para true suspender o aplicativo na inicialização (aguardando que o servidor de diagnóstico se conecte ao aplicativo) ou false para iniciar o aplicativo como de costume (e conecte o servidor de diagnóstico ao aplicativo mais tarde).
Isso corresponde com o valor suspend/nosuspend em DiagnosticConfiguration'.
Implicitamente define EnableDiagnostics como true.
O padrão é false.
DittoPath
O caminho completo para o executável ditto.
O comportamento padrão é usar /usr/bin/ditto.
Registo dinâmico suportado
Controla se o registrador dinâmico está disponível em tempo de execução (conforme reportado por ObjCRuntime.Runtime.DynamicRegistrationSupported).
Se este valor não for especificado, a build calcula um valor padrão com base na necessidade do registrador dinâmico da aplicação e ativa a opção de funcionalidade do trimmer ObjCRuntime.Runtime.DynamicRegistrationSupported em conformidade (para que o trimmer possa remover o registrador dinâmico quando não for necessário, tornando a app mais pequena).
Defina esta propriedade para true ou false para substituir a predefinição calculada.
Remover o registrador dinâmico requer um registrador estático (Registrar=static ou Registrar=managed-static) e trimming, por isso definir esta propriedade não tem efeito (e a build avisa) quando essas condições não são cumpridas.
EmbedOnDemandResources
Controla onde os pacotes de recursos sob demanda são colocados ao empacotar uma aplicação para distribuição. Esta propriedade não ativa os recursos on-demand (use EnableOnDemandResources para isso) — apenas afeta a forma como os pacotes de ativos já etiquetados são embalados.
Esta é a propriedade definida pela opção "Embed on-demand resources in the app bundle" no IDE. Só tem efeito para a distribuição AdHoc:
-
true: os pacotes de ativos estão incorporados no.appbundle dentro da IPA e servidos localmente pela aplicação. -
false: os pacotes de assets são empacotados separadamente (fora do pacote de aplicações) para que possam ser transmitidos/alojados (por exemplo, num servidor web).
Para a distribuição AppStore, os pacotes de ativos são sempre colocados fora do pacote .app (para serem alojados na App Store), independentemente desta propriedade.
Esta propriedade só é consultada ao empacotar uma IPA para distribuição (quando BuildIpa é true e o tipo de distribuição é AppStore ou AdHoc); não tem efeito numa compilação de simulador ou compilação de depuração para dispositivo.
Padrão: verdadeiro
AtivarAssinaturaDeCódigo
Se a assinatura de código estiver habilitada.
A assinatura de código é ativada por padrão para todas as plataformas; isso pode ser substituído por esta propriedade.
Ativar Presets de Assinatura de Código
Consulte CodesignEntitlements.
AtivarRecursosSobDemanda
Se os recursos sob demanda estiverem habilitados.
Quando ativada, os recursos do pacote que são etiquetados com metadados ResourceTags são colocados em pacotes de ativos de recursos a pedido, em vez de serem copiados diretamente para o app bundle. Um recurso está etiquetado assim:
<ItemGroup>
<BundleResource Update="Resources\MyResource.dat" ResourceTags="MyTag" />
</ItemGroup>
Use Update (não Include) quando o ficheiro já faz parte dos recursos predefinidos do projeto (por exemplo, qualquer coisa na pasta Resources no iOS, que é automaticamente incluída como BundleResource), caso contrário o recurso seria adicionado duas vezes e a cópia não etiquetada ganharia. Num projeto .NET MAUI, os mesmos metadados ResourceTags podem ser definidos no item MauiAsset correspondente.
Esta propriedade só permite recursos sob demanda; não controla como os pacotes de ativos são embalados para distribuição — veja EmbedOnDemandResources para isso.
Padrão: false para macOS, true para todas as outras plataformas.
AtivarAssinaturaDePacotes
Se o .pkg que foi criado (se CreatePackage tiver sido ativado) deve ser assinado.
Aplicável apenas ao macOS e Mac Catalyst.
Ativar Diagnósticos
Habilite os componentes necessários para o diagnóstico (como a criação de perfil) funcionem.
Ele é habilitado por padrão para compilações de depuração (quando MtouchDebug ou MmpDebug está habilitado), mas precisa ser habilitado manualmente antes de criar o perfil das compilações de versão:
<PropertyGroup>
<EnableDiagnostics>true</EnableDiagnostics>
</PropertyGroup>
Isso aumentará ligeiramente o tamanho do aplicativo.
Aplicável apenas ao usar o tempo de execução do Mono (o CoreCLR sempre suporta diagnósticos, enquanto o NativeAOT nunca o faz).
EnableSGenConc
Habilita o modo simultâneo para o coletor de lixo SGen.
Aplicável apenas a iOS, tvOS e Mac Catalyst (quando não estiver usando NativeAOT).
Esta propriedade só tem efeito ao usar o runtime Mono, e um aviso será mostrado se estiver definido quando não estiver a usar o runtime Mono (por exemplo, ao usar CoreCLR).
EventSourceSupport
Quando definido como false, desativa o suporte de EventSource do .NET em aplicações otimizadas. Desativar esta funcionalidade impediria o funcionamento de ferramentas de diagnóstico do .NET, como dotnet-counters, mas traria a vantagem de reduzir o tamanho da aplicação.
Padrão: definido como false quando Optimize está definido como true (que é o padrão para compilações Release), a menos que $(EnableDiagnostics) esteja habilitado.
ManifestoDeAplicaçãoGerado
Se um manifesto de aplicação (Info.plist) deve ser gerado.
Padrão: verdadeiro
DiretórioDeFontesGeradas
Onde a origem gerada pelo gerador é salva.
GerarTrustedPlatformAssemblies
Uma propriedade booleana que especifica se a lista de assemblies fidedignos da plataforma é gerada em tempo de compilação em vez de ser descoberta quando a aplicação é lançada.
O valor padrão é false para builds de depuração e true para outras builds.
GetApplicationArtifactsDependsOn
Uma propriedade delimitada por ponto e vírgula que pode ser usada para estender os alvos GetApplicationArtifacts e Publish.
Build é uma dependência obrigatória de GetApplicationArtifacts; Os alvos do MSBuild adicionados a esta propriedade executam-se depois de a build da plataforma ter recolhido @(ApplicationArtifact) itens e antes de GetApplicationArtifacts ou Publish os devolverem.
As builds da plataforma Apple preenchem os metadados comuns da aplicação documentados para ApplicationArtifact antes de serem executados os alvos desta propriedade. Os alvos de extensão podem atualizar ou substituir esses metadados e só devem adicionar novos itens ao introduzirem artefactos adicionais.
Exemplo:
<PropertyGroup>
<GetApplicationArtifactsDependsOn>$(GetApplicationArtifactsDependsOn);AddApplicationArtifactMetadata</GetApplicationArtifactsDependsOn>
</PropertyGroup>
<Target Name="AddApplicationArtifactMetadata">
<ItemGroup>
<ApplicationArtifact Update="@(ApplicationArtifact)">
<ApplicationTitle>$(ApplicationTitle)</ApplicationTitle>
</ApplicationArtifact>
</ItemGroup>
</Target>
HotReloadCompatibleBuild
Uma propriedade booleana que indica se a build deve permanecer compatível com o Hot Reload. Quando definido para true, a build evita modificar os assemblies do utilizador para que permaneçam inalterados byte a byte (um requisito para o Hot Reload). Isto vai desativar algumas otimizações menores, mas as outras alterações não afetam nada.
O valor padrão é true para builds de debug e false outras.
IBToolPath
O caminho completo para a ferramenta ibtool.
O comportamento padrão é usar xcrun ibtool.
IncluirTodosOsÍconesDeAplicação
Defina a propriedade IncludeAllAppIcons como true para incluir automaticamente todos os ícones de aplicativos de todos os catálogos de ativos no aplicativo.
Exemplo:
<PropertyGroup>
<IncludeAllAppIcons>true</IncludeAllAppIcons>
</PropertyGroup>
Ver também:
- O grupo de itens AlternateAppIcon.
- A propriedade AppIcon.
InlineClassGetHandle
Controla se o sistema de compilação substitui chamadas em tempo de execução a Class.GetHandle /
Class.GetHandleIntrinsic classes Objective-C por referências nativas diretas em tempo de compilação.
Veja classes de Objective-C para uma visão geral.
As opções válidas são:
-
compatibility: Faz inline de chamadasClass.GetHandleapenas para tipos cujo tipo declarante corresponde ao nome da classe Objective-C solicitado. -
strict: Expande todas as chamadasClass.GetHandleincondicionalmente. Requer usar o registo estático (não o registador dinâmico). - (vazio): Desativa o inlining de chamadas
Class.GetHandle.
Valor predefinido:
- .NET 11+:
strictao usar NativeAOT (PublishAot=true),compatibilitycaso contrário. - .NET 10 e anteriores: não definido (desativado).
Exemplo:
<PropertyGroup>
<InlineClassGetHandle>compatibility</InlineClassGetHandle>
</PropertyGroup>
O comportamento personalizado para classes de Objective-C específicas pode ser definido usando o grupo de itens ReferenceNativeSymbol :
<ItemGroup>
<ReferenceNativeSymbol SymbolMode="Ignore" SymbolType="ObjectiveCClass" Include="SomeClassName" />
</ItemGroup>
InlineDlfcnMethods
Controla se o sistema de compilação substitui, durante a compilação, as chamadas em tempo de execução a métodos ObjCRuntime.Dlfcn por pesquisas diretas de símbolos nativos, eliminando a sobrecarga de dlsym em tempo de execução.
As opções válidas são:
-
compatibility: Apenas utilizações inline de símbolos suportadas por atributos[Field]. Isto é mais conservador e evita erros de ligação para símbolos que não existem durante a compilação. -
strict: Expande em linha chamadas ao dlfcn e cria referências nativas para todos os símbolos. Isto é mais agressivo e pode causar erros de ligação se não existirem símbolos nativos referenciados. - (vazio): Desativa a incorporação das chamadas aos métodos dlfcn.
Valor predefinido:
- .NET 11+:
strictao usar NativeAOT (PublishAot=true),compatibilitycaso contrário. - .NET 10 e anteriores: não definido (desativado).
Exemplo:
<PropertyGroup>
<InlineDlfcnMethods>compatibility</InlineDlfcnMethods>
</PropertyGroup>
O comportamento personalizado para símbolos específicos pode ser definido usando o grupo de itens ReferenceNativeSymbol :
<ItemGroup>
<ReferenceNativeSymbol SymbolMode="Ignore" SymbolType="Field" Include="InexistentSymbol" />
</ItemGroup>
Versão Mínima do iOS
Especifica a versão mínima do iOS em que o aplicativo pode ser executado.
Aplicável ao iOS; definir esse valor definirá SupportedOSPlatformVersion para projetos iOS (apenas).
IPhoneResourcePrefix
O diretório onde os recursos são armazenados (esse prefixo será removido ao copiar recursos para o pacote de aplicativos).
Aplicável a projetos iOS, tvOS e Mac Catalyst.
Em vez disso, considere usar a propriedade unificada AppBundleResourcePrefix .
Consulte também MonoMacResourcePrefix e XamMacResourcePrefix.
IpaIncludeArtwork
Se obras de arte devem ser incluídas no IPA.
Aplicável apenas a projetos iOS e tvOS.
IpaIncludeSymbols
Se os símbolos da aplicação devem estar incluídos na IPA, no diretório Symbols esperado pela Apple. Isto faz com que a App Store Connect (e o Organizer do Xcode) simbolique automaticamente os relatórios de falhas para a aplicação.
Os símbolos são os ficheiros Apple *.symbols gerados a partir dos diretórios dSYM da build utilizando xcrun symbols (os próprios diretórios dSYM não estão incorporados no IPA).
O valor predefinido é true. Defina-o como false para não participar. Esta propriedade não tem efeito a menos que esteja a ser criada uma IPA (ver BuildIpa).
Aplicável apenas a projetos iOS e tvOS.
IpaPackageName
Especifica o nome do arquivo .ipa resultante (sem o caminho) ao criar um pacote IPA (consulte BuildIpa). IpaPackagePath substituirá esse valor.
Aplicável apenas a projetos iOS e tvOS.
IpaPackageDir
Especifica o diretório do arquivo .ipa resultante ao criar um pacote IPA (consulte BuildIpa). IpaPackagePath substituirá esse valor.
Aplicável apenas a projetos iOS e tvOS.
IpaPackagePath
Especifica o caminho para o arquivo .ipa resultante ao criar um pacote IPA (consulte BuildIpa).
Aplicável apenas a projetos iOS e tvOS.
O IPA resultante é exposto no grupo de itens ApplicationArtifact.
IsAppExtension
Se um projeto for uma extensão de aplicativo.
IsBindingProject
Se um projeto for um projeto vinculativo.
IsXPCService
Se uma extensão macOS for um serviço xpc.
Aplicável apenas a projetos macOS.
Modo de Ligação
Especifica o modo de link para o projeto (None, SdkOnly ou Full).
Aplicável a projetos macOS, mas esta propriedade está descontinuada. Use TrimMode em vez disso.
Consulte também MtouchLink.
LigarComBibliotecasDoSistemaSwift
Se definido como true, a compilação informará ao vinculador nativo onde encontrar as bibliotecas de sistema do Swift.
Isso é útil quando uma biblioteca nativa usa o Swift de alguma forma, caso em que o vinculador nativo precisa saber onde encontrar as bibliotecas do sistema do Swift.
Atualmente, isso significa que esses argumentos serão passados para o vinculador nativo:
- -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/[plataforma]
- -L/Applications/Xcode.app/Contents/Developer/Platforms/[platform].platform/Developer/SDKs/[platform].sdk/usr/lib/swift
O conjunto exato de argumentos pode mudar no futuro.
Versão Mínima do MacCatalyst
Especifica a versão mínima do Mac Catalyst (iOS) em que o aplicativo pode ser executado.
Aplicável ao Mac Catalyst; ao definir este valor, irá definir SupportedOSPlatformVersion para projetos Mac Catalyst (apenas).
MaciOSPrepareForBuildDependsOn
Propriedade delimitada por ponto e vírgula que pode ser usada para estender o processo de compilação. Os destinos MSBuild adicionados a essa propriedade serão executados no início da compilação para os tipos de projeto de aplicativo e biblioteca. Esta propriedade está vazia por padrão.
Exemplo:
<PropertyGroup>
<MaciOSPrepareForBuildDependsOn>$(MaciOSPrepareForBuildDependsOn);MyCustomTarget</MaciOSPrepareForBuildDependsOn>
</PropertyGroup>
<Target Name="MyCustomTarget" >
<Message Text="Running target: 'MyCustomTarget'" Importance="high" />
</Target>
Esta propriedade foi introduzida no .NET 9.
VersãoMínimaMacOS
Especifica a versão mínima do macOS em que o aplicativo pode ser executado.
Aplicável ao macOS; definir esse valor definirá SupportedOSPlatformVersion para projetos macOS (apenas).
MacOSXSdkVersion
A versão do SDK do macOS a ser usada para a compilação.
Padrão: detetado automaticamente de acordo com a versão padrão fornecida com o Xcode selecionado.
Consulte também MtouchSdkVersion .
Modo de Exceção Gerida Marshal
Escolha como as exceções gerenciadas são tratadas ao encontrar um quadro nativo durante o desenrolamento da pilha durante o processamento da exceção gerenciada.
Valores válidos:
-
default: Atualmente, isto éthrowobjectivecexception. -
unwindnativecode: Isso não está disponível ao usar o tempo de execução CoreCLR. -
throwobjectivecexception: Capture a exceção gerenciada e converta-a em uma exceção Objective-C. -
abort: Abortar o processo. -
disable: Desative a intercetação de quaisquer exceções gerenciadas. Para MonoVM, isso é equivalente aunwindnativecode, para CoreCLR, isso é equivalente aabort.
Para obter mais informações, consulte Exception marshaling e MarshalObjectiveCExceptionMode.
MarshalObjectiveCExceptionMode
Escolha como Objective-C exceções são tratadas ao encontrar um quadro gerenciado durante o desenrolamento da pilha durante o processamento da exceção Objective-C.
Valores válidos:
-
default: Atualmente, isto éthrowmanagedexception. -
unwindmanagedcode: Isso não está disponível ao usar o tempo de execução CoreCLR. -
throwmanagedexception: Pegue a exceção Objective-C e converta-a em uma exceção gerenciada. -
abort: Abortar o processo. -
disable: Desative a intercetação de quaisquer Objective-C exceções.
Para obter mais informações, consulte Marshaling de exceções e MarshalManagedExceptionMode.
MdimportPath
O caminho completo para a ferramenta mdimport.
O comportamento padrão é usar xcrun mdimport.
MetalLibPath
O caminho completo para a ferramenta metallib (o Metal Linker).
O comportamento padrão é usar xcrun metallib.
MetalPath
O caminho completo para o compilador Metal.
O comportamento padrão é usar xcrun metal.
Métricas-Suporte
Quando definido como false, desativa o suporte de Métricas do .NET em aplicações reduzidas. Desativar este recurso impediria que APIs como System.Diagnostics.Metrics funcionassem, mas com o benefício de menor tamanho da aplicação.
Padrão: definido como false quando Optimize está definido como true (que é o padrão para compilações Release), a menos que $(EnableDiagnostics) esteja habilitado.
MmpDebug
Habilita o modo de depuração para a criação de pacotes de aplicativos.
Aplicável apenas a projetos macOS.
Consulte também MtouchDebug.
RecorteAgressivoDeAtributosMóveis
Essa propriedade determina se vários atributos que raramente são necessários em tempo de execução devem ser cortados.
Isso é ativado por padrão.
Observe que, embora os atributos removidos sejam muito raramente usados, é tecnicamente possível que a remoção possa alterar o comportamento do tempo de execução.
Por exemplo, System.Xml.Serialization se comportará de forma diferente se um construtor tiver o [Obsolete] atributo (que é um dos atributos que são removidos). Este é um risco baixo o suficiente para justificar a remoção desses atributos por padrão devido à economia de tamanho.
A lista de atributos que são removidos pode mudar no futuro, mas no momento em que este artigo foi escrito (para .NET 10), estes são os atributos:
- Microsoft.CodeAnalysis.EmbeddedAttribute
- System.CLSCompliantAttribute
- System.CodeDom.Compiler.GeneratedCodeAttribute
- System.ComponentModel.EditorBrowsableAttribute
- System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute
- System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute
- System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute
- System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
- System.Diagnostics.CodeAnalysis.ExperimentalAttribute
- System.Diagnostics.CodeAnalysis.FeatureGuardAttribute
- System.Diagnostics.CodeAnalysis.FeatureSwitchDefinitionAttribute
- System.Diagnostics.CodeAnalysis.MemberNotNullAttribute
- System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute
- System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute
- System.Diagnostics.CodeAnalysis.NotNullWhenAttribute
- System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute
- System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute
- System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute
- System.Diagnostics.CodeAnalysis.StringSyntaxAttribute
- System.Diagnostics.CodeAnalysis.SuppressMessageAttribute
- System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute
- System.Diagnostics.CodeAnalysis.UnscopedRefAttribute
- System.ObsoleteAttribute
- System.Reflection.AssemblyCompanyAttribute
- System.Reflection.AssemblyConfigurationAttribute
- System.Reflection.AssemblyCopyrightAttribute
- System.Reflection.AssemblyDefaultAliasAttribute
- System.Reflection.AssemblyDescriptionAttribute
- System.Reflection.AssemblyMetadataAttribute
- System.Reflection.AssemblyProductAttribute
- System.Reflection.AssemblyTitleAttribute
- System.Runtime.CompilerServices.AsyncMethodBuilderAttribute
- System.Runtime.CompilerServices.CallerArgumentExpressionAttribute
- System.Runtime.CompilerServices.CallerFilePathAttribute
- System.Runtime.CompilerServices.CallerLineNumberAttribute
- System.Runtime.CompilerServices.CallerMemberNameAttribute
- System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute
- System.Runtime.CompilerServices.CompilerGlobalScopeAttribute
- System.Runtime.CompilerServices.EnumeratorCancellationAttribute
- System.Runtime.CompilerServices.ExtensionAttribute
- System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute
- System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute
- System.Runtime.CompilerServices.IntrinsicAttribute
- System.Runtime.CompilerServices.IsReadOnlyAttribute
- System.Runtime.CompilerServices.IsUnmanagedAttribute
- System.Runtime.CompilerServices.NativeIntegerAttribute
- System.Runtime.CompilerServices.RefSafetyRulesAttribute
- System.Runtime.CompilerServices.ScopedRefAttribute
- System.Runtime.CompilerServices.SkipLocalsInitAttribute
- System.Runtime.CompilerServices.TupleElementNamesAttribute
- System.Runtime.InteropServices.LibraryImportAttribute
- System.Runtime.InteropServices.Marshalling.ContiguousCollectionMarshallerAttribute
- System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute
- System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute
- System.Runtime.InteropServices.Marshalling.NativeMarshallingAttribute
- System.Runtime.Versioning.NonVersionableAttribute
- System.Runtime.Versioning.ObsoletedOSPlatformAttribute
- System.Runtime.Versioning.RequiresPreviewFeaturesAttribute
- System.Runtime.Versioning.SupportedOSPlatformAttribute
- System.Runtime.Versioning.SupportedOSPlatformGuardAttribute
- System.Runtime.Versioning.TargetPlatformAttribute
- System.Runtime.Versioning.UnsupportedOSPlatformAttribute
- System.Runtime.Versioning.UnsupportedOSPlatformGuardAttribute
Esta propriedade foi introduzida no .NET 10.
MonoBundlingExtraArgs
Argumentos adicionais especificando como criar o pacote de aplicativos.
Aplicável apenas a projetos macOS.
Esta propriedade está obsoleta, use AppBundleExtraOptions em vez disso.
MonoMacResourcePrefix
O diretório onde os recursos são armazenados (esse prefixo será removido ao copiar recursos para o pacote de aplicativos).
Aplicável apenas a projetos macOS.
Em vez disso, considere usar a propriedade unificada AppBundleResourcePrefix .
Consulte também IPhoneResourcePrefix e XamMacResourcePrefix .
MonoUseCompressedInterfaceBitmap
Isso direciona o tempo de execução do Mono para usar uma versão compactada de bitmaps de interface (bitmaps de interface são usados para determinar se um determinado tipo implementa uma determinada interface).
Esses bitmaps podem usar uma quantidade significativa de memória em tempo de execução, em particular para aplicativos que têm uma quantidade substancial de interfaces.
Essa configuração é desabilitada por padrão, mas pode ser habilitada assim, o que diminuirá a quantidade de memória usada em tempo de execução:
<PropertyGroup>
<MonoUseCompressedInterfaceBitmap>true</MonoUseCompressedInterfaceBitmap>
</PropertyGroup>
A desvantagem é que as verificações de tipo (obj is SomeInterface) serão mais lentas.
Aplicável somente ao usar o tempo de execução Mono. Será mostrado um aviso se estiver definido quando não estiver a usar o runtime Mono (por exemplo, ao usar CoreCLR).
MtouchDebug
Habilita o modo de depuração para a criação de pacotes de aplicativos.
Aplicável a projetos iOS, tvOS e Mac Catalyst.
Consulte também MmpDebug.
MtouchEnableSGenConc
Habilita o modo simultâneo para o coletor de lixo SGen.
Aplicável apenas ao iOS, tvOS e Mac Catalyst quando não estiver usando o NativeAOT.
Esta propriedade foi preterida, use EnableSGenConc em vez disso.
Esta propriedade só tem efeito ao usar o runtime Mono, e um aviso será mostrado se estiver definido quando não estiver a usar o runtime Mono (por exemplo, ao usar CoreCLR).
MtouchExtraArgs
Argumentos adicionais especificando como criar o pacote de aplicativos.
Aplicável apenas a projetos iOS, tvOS e Mac Catalyst.
Esta propriedade está obsoleta, use AppBundleExtraOptions em vez disso.
MtouchInterpreter
Habilita o intérprete e, opcionalmente, usa uma lista de assemblies, separados por vírgula, para interpretar (se estiverem prefixados com um sinal de subtração, o assembly será, em vez disso, compilado por AOT). 'all' pode ser usado para especificar todos os assemblies. Este argumento pode ser especificado várias vezes.
Exemplo:
<PropertyGroup>
<!-- interpret all assemblies -->
<MtouchInterpreter>all</MtouchInterpreter>
<!-- AOT-compile all assemblies, except System.dll, which will be interpreted. -->
<MtouchInterpreter>System</MtouchInterpreter>
<!-- interpret all assemblies, except System.Core.dll, which will be AOT-compiled. -->
<MtouchInterpreter>all,-System.Core</MtouchInterpreter>
</PropertyGroup>
Uma abreviatura para o MtouchInterpreter é definir UseInterpreter=true, que é equivalente a MtouchInterpreter=all.
Se ambos os UseInterpreter e MtouchInterpreter forem definidos, então MtouchInterpreter tem precedência.
Aplicável a aplicativos iOS, tvOS e Mac Catalyst (quando não estiver usando NativeAOT).
O comportamento padrão é não habilitar o interpretador.
Observação
MAUI altera o padrão definindo UseInterpreter=true para a configuração "Debug".
Esta propriedade só tem efeito ao usar o runtime Mono, e um aviso será mostrado se estiver definido quando não estiver a usar o runtime Mono (por exemplo, ao usar CoreCLR).
MtouchLink
Especifica o modo de link para o projeto (None, SdkOnly, Full).
Esta propriedade é aplicável a projetos iOS, tvOS e Mac Catalyst, mas está obsoleta; use TrimMode em vez disso.
Consulte também LinkMode.
MtouchSdkVersion
A versão iOS ou tvOS SDK a ser usada para a compilação.
Padrão: detetado automaticamente de acordo com a versão padrão fornecida com o Xcode selecionado.
Consulte também MacOSXSdkVersion.
MtouchUseLlvm
Uma propriedade booleana que especifica se a compilação AOT deve ser feita usando LLVM.
Aplicável a projetos iOS, tvOS e Mac Catalyst.
Padrão:
- No iOS e tvOS: ativado para builds de lançamento (onde
Configuration="Release"). - No Mac Catalyst: nunca ativado por padrão.
Esta propriedade só tem efeito ao usar o runtime Mono, e um aviso será mostrado se estiver definido quando não estiver a usar o runtime Mono (por exemplo, ao usar CoreCLR).
NoBindingEmbedding
Warning
Definir esta propriedade como false está atualmente obsoleta e gerará um erro de compilação no .NET 12+.
Uma propriedade booleana que especifica se as bibliotecas nativas em projetos de vinculação devem ser incorporadas no assembly gerenciado ou colocadas em um diretório .resources ao lado do assembly gerenciado.
O valor predefinido é true (o que significa que as bibliotecas nativas não serão incorporadas na assemblagem gerida).
Observação
Xcframeworks não funcionará corretamente se incorporado dentro do assembly gerenciado (se essa propriedade não estiver true).
NoDSymUtil
Uma propriedade booleana que especifica se a geração .dSYM deve ser desabilitada.
Padrão:
-
truepara iOS e tvOS ao compilar para o simulador. -
truepara macOS e Mac Catalyst, exceto ao criar um arquivo (ArchiveOnBuild=true) ou ao utilizar o Native AOT.
Isso significa que o arquivo .dSYM será gerado nos seguintes casos (por padrão):
- No iOS e tvOS ao criar para o dispositivo.
- No macOS e Mac Catalyst, ao criar um arquivo morto (
ArchiveOnBuild=true) ou usar o AOT nativo.
NoSymbolStrip
Uma propriedade booleana que especifica se os símbolos de depuração são removidos do aplicativo no momento da compilação.
O comportamento padrão é manter símbolos de depuração para:
-
DebugCompilações para plataformas de desktop. - Compilações de simuladores para plataformas móveis.
Exemplo para manter símbolos de depuração:
<PropertyGroup>
<NoSymbolStrip>true</NoSymbolStrip>
</PropertyGroup>
OnDemandResourcesInitialInstallTags
Uma propriedade string que especifica as tags de instalação inicial para recursos sob demanda.
OnDemandResourcesPrefetchOrder
Uma propriedade string que especifica a ordem de pré-busca para recursos sob demanda.
UrlDeRecursosSobDemanda
Uma propriedade string que especifica a url do recurso para recursos sob demanda.
OptimizePNGs
Uma propriedade booleana que especifica se as imagens png devem ser otimizadas.
OtimizarDependênciasDeImagensPng
Este é um ponto de extensão para a compilação: um desenvolvedor pode adicionar quaisquer destinos a essa propriedade para executar esses destinos antes que quaisquer imagens png sejam otimizadas.
Exemplo:
<PropertyGroup>
<OptimizePngImagesDependsOn>$(OptimizePngImagesDependsOn);MyCustomTarget</OptimizePngImagesDependsOn>
</PropertyGroup>
<Target Name="MyCustomTarget" >
<Message Text="Running target: 'MyCustomTarget'" Importance="high" />
</Target>
Otimizar Listas de Propriedades
Uma propriedade booleana que especifica se as listas de propriedades (plists) devem ser otimizadas.
OtimizarListasDePropriedadesDependeDe
Este é um ponto de extensão para a compilação: um desenvolvedor pode adicionar quaisquer destinos a essa propriedade para executar esses destinos antes que quaisquer listas de propriedades (plists) sejam otimizadas.
Exemplo:
<PropertyGroup>
<OptimizePropertyListsDependsOn>$(OptimizePropertyListsDependsOn);MyCustomTarget</OptimizePropertyListsDependsOn>
</PropertyGroup>
<Target Name="MyCustomTarget" >
<Message Text="Running target: 'MyCustomTarget'" Importance="high" />
</Target>
Chave de Assinatura de Pacote
Especifica a chave de assinatura de código para assinar o pacote ao criar .pkg para um projeto macOS e Mac Catalyst.
Aplicável apenas a aplicações macOS e Mac Catalyst.
EmbalagemExtraArgs
Especifica quaisquer argumentos extras a serem passados para a ferramenta 'productbuild' ao criar .pkg para um projeto macOS e Mac Catalyst.
Aplicável apenas a aplicações macOS e Mac Catalyst.
PkgPackagePath
Especifica o caminho para o arquivo .pkg resultante ao criar um pacote (consulte CreatePackage).
Aplicável apenas a aplicações macOS e Mac Catalyst.
O PKG resultante é disponibilizado no grupo de itens ApplicationArtifact.
PlutilPath
O caminho completo para a ferramenta de linha de comandos plutil.
O comportamento padrão é usar xcrun plutil.
PngCrushPath
O caminho completo para a ferramenta de linha de comandos pngcrush.
O comportamento padrão é usar xcrun pngcrush.
ProcessEnums
Uma propriedade booleana que especifica se enums devem ser processados como uma definição de api em projetos de vinculação.
ProductBuildPath
O caminho completo para a ferramenta productbuild.
O comportamento padrão é usar xcrun productbuild.
Definição do Produto
O modelo de definição de produto (.plist) a ser usado ao criar a definição de produto para passar para a ferramenta de compilação de produto ao criar pacotes (.pkg).
Aplicável apenas a aplicações macOS e Mac Catalyst.
RecommendedXcodeVersion
A versão do Xcode recomendada para utilização com esta versão de .NET para iOS, tvOS, macOS e Mac Catalyst.
Esta é a versão Xcode contra a qual a build valida (ver ValidateXcodeVersion); usar uma versão diferente provavelmente gerará problemas mais tarde no processo de build.
Esta propriedade é apenas de leitura: é calculada pelo SDK e não deve ser definida nos ficheiros de projeto.
Pode obter a versão recomendada do Xcode para um projeto ao executar:
$ dotnet build -getProperty:RecommendedXcodeVersion myProject.csproj
26.6
Nota: o número de versão pode conter mais de 2 componentes ("26.6.1", por exemplo). Apenas os dois primeiros componentes (maior e menor) são tidos em conta ao validar a versão instalada do Xcode.
SímboloNativoDeReferência
RequireLinkWithAttributeForObjectiveCClassSearch
Verificaremos automaticamente todas as bibliotecas em busca de classes gerenciadas que mapeiam para classes de Objective-C existentes e, em seguida, criaremos uma referência nativa no momento da compilação para essas classes Objective-C.
Dessa forma, o vinculador nativo não removerá essas classes Objective-C, pensando que elas não são usadas.
No entanto, isso pode causar um problema se uma classe gerenciada fizer referência a uma classe Objective-C que não existe. A correção adequada para isso é remover essas classes gerenciadas da compilação, mas isso pode ser complicado, em particular se a classe gerenciada vier de uma referência binária (como NuGet).
Nesses casos, é possível definir a propriedade RequireLinkWithAttributeForObjectiveCClassSearch como true para que só verifiquemos bibliotecas com o atributo [LinkWith] para Objective-C classes:
<PropertyGroup>
<RequireLinkWithAttributeForObjectiveCClassSearch>true</RequireLinkWithAttributeForObjectiveCClassSearch>
</PropertyGroup>
ResolveResourceItemsRelativeToProject
Esta propriedade determina se os itens de Conteúdo e BundleResource têm os seus nomes lógicos calculados em relação ao ficheiro do projeto ou em relação ao ficheiro que os declarou.
Quando definido para true, os caminhos dos itens são sempre calculados em relação ao ficheiro do projeto. Isto resolve problemas em que SDKs (como o Razor SDK) adicionam itens de conteúdo de um diretório distante do projeto, produzindo caminhos incorretos que são rejeitados durante a compilação.
Quando definido para false (o padrão para versões anteriores ao .NET 12), o comportamento legado é preservado: os caminhos são calculados relativamente ao ficheiro que declarou o item.
A partir do .NET 13, esta propriedade fica ativada permanentemente e defini-la como false resultará num erro de compilação.
| Versão .NET | Default |
|---|---|
| <.NET 12 |
false (opt-in) |
| .NET 12 |
true (desativação) |
| .NET 13+ |
true (permanentemente ativado) |
<PropertyGroup>
<ResolveResourceItemsRelativeToProject>true</ResolveResourceItemsRelativeToProject>
</PropertyGroup>
RunWithOpen
Esta propriedade determina se as aplicações são iniciadas utilizando o open comando no macOS ou se o executável da aplicação é executado diretamente.
Isto aplica-se apenas às aplicações macOS e Mac Catalyst.
O valor predefinido é true. Neste modo, o aplicativo será iniciado pelo macOS como qualquer outro aplicativo de interface do usuário, qualquer saída stdout/stderr será engolida pelo macOS e o dotnet run comando será concluído assim que o aplicativo for iniciado.
Se definido como false, qualquer saída stdout/stderr será impressa no terminal atual e o dotnet run comando não será concluído até que o aplicativo seja encerrado.
As seguintes propriedades podem ser usadas para configurar o comportamento quando definido como true (ou seja, usando o open comando):
AbrirNovaInstância
Se uma nova instância for aberta se o aplicativo já estiver em execução (o padrão é false).
Isso passará -n para open se definido como true.
Exemplo:
$ dotnet run -p:OpenNewInstance=false
OpenWaitForExit
Se 'dotnet run' deve esperar que a aplicação termine (o padrão é false).
Isso passará -W para open se definido como true.
Nota: a propriedade WaitForExit tem precedência sobre esta propriedade.
Exemplo:
$ dotnet run -p:OpenWaitForExit=true
Abrir Argumentos
Essa propriedade pode ser usada para passar argumentos adicionais para o open comando.
Exemplo (para definir variáveis de ambiente):
$ dotnet run -p:OpenArguments="--env VARIABLE1=VALUE1 --env VARIABLE2=value2"
Exemplo (para redirecionar stdout e stderr para um arquivo):
$ dotnet run -p:OpenArguments="--stdout /tmp/stdout.txt --stderr /tmp/stderr.txt"
Execute man open para ver uma lista de todas as opções open aceitas.
CaminhoDeSaídaPadrão
Essa propriedade pode ser usada para redirecionar a saída stdout do aplicativo para um arquivo.
Isto aplica-se a todas as plataformas (macOS, Mac Catalyst, iOS e tvOS).
Exemplo de gravação em um ficheiro:
$ dotnet run -p:StandardOutputPath=stdout.txt
Exemplo de escrever no terminal atual:
$ dotnet run -p:StandardOutputPath=$(tty)
[... Console.WriteLine output from app ...]
Nota: para aplicações para macOS e Mac Catalyst que usam o comando open, tal também pode ser conseguido passando --stdout ... através da propriedade OpenArguments.
StandardErrorPath
Essa propriedade pode ser usada para redirecionar a saída stderr do aplicativo para um arquivo.
Isto aplica-se a todas as plataformas (macOS, Mac Catalyst, iOS e tvOS).
Exemplo de gravação em um ficheiro:
$ dotnet run -p:StandardErrorPath=stderr.txt
Exemplo de escrever no terminal atual:
$ dotnet run -p:StandardErrorPath=$(tty)
[... Console.Error.WriteLine output from app ...]
Nota: para aplicações macOS e Mac Catalyst usando o open comando, isto também pode ser feito passando --stderr ... usando a propriedade OpenArguments .
StandardInputPath
Essa propriedade pode ser usada para redirecionar a entrada stdin para o aplicativo a partir de um arquivo.
Exemplo:
$ dotnet run -p:StandardInputPath=stdin.txt
Nota: isso também pode ser feito passando --stdin ... usando a propriedade OpenArguments .
WaitForExit
Se o comando 'dotnet run' deve esperar que a aplicação termine antes de regressar (a predefinição é true para aplicações iOS e tvOS, e false para aplicações macOS e Mac Catalyst).
Isto aplica-se a todas as plataformas (macOS, Mac Catalyst, iOS e tvOS).
Para aplicações macOS e Mac Catalyst, esta propriedade tem prioridade sobre a propriedade OpenWaitForExit.
Exemplo:
$ dotnet run -p:WaitForExit=true
SdkIsDesktop
Esta propriedade é apenas de leitura (defini-la não terá efeito) e especifica se estamos a construir para uma plataforma de ambiente de trabalho (macOS ou Mac Catalyst).
Esta propriedade ocorre true quando a plataforma alvo é macOS ou Mac Catalyst, e não está definida para versões iOS ou tvOS.
Tal como SdkIsSimulator, esta propriedade só é definida depois de as importações e propriedades terem sido avaliadas.
SdkIsDevice
Esta propriedade é apenas de leitura (se for definida, não terá qualquer efeito) e especifica se estamos a compilar para um dispositivo ou não.
Esta propriedade só fica true ao compilar para um dispositivo iOS ou tvOS (ou seja, quando SdkIsSimulator não é true e a plataforma é iOS ou tvOS). Não está configurado para versões de macOS ou Mac Catalyst.
Tal como SdkIsSimulator, esta propriedade só é definida depois de as importações e propriedades terem sido avaliadas.
SdkIsMobile
Esta propriedade é de apenas leitura (defini-la não terá efeito) e especifica se estamos a construir para uma plataforma móvel (iOS ou tvOS).
Esta propriedade ocorre true quando a plataforma alvo é iOS ou tvOS, e não está definida para versões macOS ou Mac Catalyst.
Tal como SdkIsSimulator, esta propriedade só é definida depois de as importações e propriedades terem sido avaliadas.
SdkIsSimulator
Esta propriedade é somente de leitura (configurá-la não surte efeito) e especifica se estamos a criar para um simulador ou não.
Só é definido depois de as importações e as propriedades terem sido avaliadas. Isso significa que a propriedade não está definida durante a avaliação das propriedades no arquivo de projeto, portanto, isso não funcionará:
<PropertyGroup>
<EnableCodeSigning Condition="'$(SdkIsSimulator)' == 'true'">false</EnableCodeSigning>
</PropertyGroup>
No entanto, uma das seguintes obras:
<ItemGroup>
<!-- item groups (and their conditions) are evaluated after properties have been evaluated -->
<CustomEntitlements Condition="'$(SdkIsSimulator)' == 'true'" Include="com.apple.simulator-entitlement" Type="Boolean" Value="true" />
<CodesignConfigureDependsOn>$(CodesignConfigureDependsOn);ConfigureSimulatorSigning</CodesignConfigureDependsOn>
</ItemGroup>
<!-- targets are executed after properties have been evaluated -->
<Target Name="ConfigureSimulatorSigning">
<PropertyGroup>
<EnableCodeSigning Condition="'$(SdkIsSimulator) == 'true'">false</EnableCodeSigning>
</PropertyGroup>
</Target>
Nota: esta propriedade será sempre false no macOS e no Mac Catalyst.
StripFrameworkHeaders
Uma propriedade booleana que especifica se os diretórios Headers, PrivateHeaders e Modules são removidos das frameworks incorporadas antes da assinatura do código.
O valor predefinido é true. Defina-o para false preservar estes diretórios.
StripPath
O caminho completo para a ferramenta de linha de comandos strip.
O comportamento padrão é usar xcrun strip.
VersãoDaPlataformaDoOSSuportado
Especifica a versão mínima do sistema operacional em que o aplicativo pode ser executado.
Também é possível usar uma propriedade específica da plataforma:
TextureAtlasPath
O caminho completo para a ferramenta TextureAtlas.
O comportamento padrão é usar xcrun TextureAtlas.
TrimMode
Especifica a granularidade de corte.
As opções válidas são:
-
full: Corte todas as montagens. -
partial: Aparar conjuntos que optaram por cortar. -
copy: Não corte em montagens.
Consulte TrimMode para obter mais informações sobre a propriedade TrimMode.
Observação
Por razões técnicas, a ferramenta de otimização deve ser executada para todos os projetos iOS, tvOS, macOS e Mac Catalyst, mesmo que nenhum assembly deva ser otimizado. Por esse motivo, não é válido desativar o corte definindo PublishTrimmed como false - para desativar o corte, defina TrimMode=copy em vez disso (um erro de compilação será gerado se PublishTrimmed estiver definido como false).
A propriedade TrimMode é equivalente às propriedades existentes MtouchLink (para iOS, tvOS e Mac Catalyst) e LinkMode (para macOS), mas os valores de propriedades válidos são diferentes (mesmo que a semântica seja a mesma):
| MtouchLink/LinkMode | TrimMode |
|---|---|
| Completo | cheio |
| SdkOnly | linha de código parcialmente executada |
| Nenhum | cópia |
No futuro, as propriedades MtouchLink e LinkMode serão preteridas, use TrimMode em vez disso.
O modo de corte padrão depende de vários fatores e também pode mudar no futuro.
Os valores padrão atuais (a partir do .NET 9) são:
- iOS e tvOS:
partialao construir para o dispositivo,copyao construir para o simulador. - macOS: sempre
copy. - Mac Catalyst:
partialquando construir para a configuração"Release",copycaso contrário.
Exceções:
- O valor padrão é sempre
fullao criar com NativeAOT. - MAUI altera o valor padrão para
copyao construir para a configuraçãoDebug, e o interpretador é ativado usando oUseInterpreter (que o MAUI também ativa por padrão ao usar a configuração"Debug").
Observação
O modo de corte padrão pode mudar no futuro.
Versão Mínima do tvOS
Especifica a versão mínima do tvOS em que o aplicativo pode ser executado.
Aplicável ao tvOS; definir esse valor definirá SupportedOSPlatformVersion para projetos tvOS (apenas).
UseFloatingTargetPlatformVersion
Uma propriedade booleana que controla se os projetos de biblioteca devem usar uma versão de plataforma de destino flutuante ou a versão de plataforma mais antiga disponível.
Por padrão (a partir do .NET 10), os projetos de biblioteca sem um explícito TargetPlatformVersion usarão os assemblies de referência mais antigos disponíveis para a versão atual do .NET. Isso garante a máxima compatibilidade e permite que o código da biblioteca seja compilado em relação à superfície mínima da API disponível para a estrutura de destino.
No entanto, esse comportamento padrão significa que os projetos de biblioteca são criados de forma diferente dos projetos executáveis (que usam a versão mais recente da plataforma). O código que funciona em um projeto executável pode não compilar quando movido para um projeto de biblioteca se ele usa APIs disponíveis apenas em versões de plataforma mais recentes.
Definir essa propriedade para true desativar a seleção automática da versão de plataforma mais antiga, permitindo que o projeto de biblioteca use a versão de plataforma padrão (mais recente) como os projetos executáveis.
Exemplo:
<PropertyGroup>
<!-- Use the latest platform version instead of the oldest -->
<UseFloatingTargetPlatformVersion>true</UseFloatingTargetPlatformVersion>
</PropertyGroup>
Padrão: false (use a versão de plataforma mais antiga para projetos de biblioteca no .NET 10+).
Essa propriedade só se aplica a projetos de biblioteca (OutputType=Library) que não são extensões de aplicativo e não especificaram uma versão explícita da plataforma de destino (a versão da plataforma de destino é o número da versão opcional no final da propriedade, por exemplo, para o TargetFramework TargetFramework a versão da net10.0-ios26.0 plataforma de destino é explicitamente 26.0).
Esta propriedade foi introduzida no .NET 10.
Usar Execução Reforçada
Uma propriedade booleana que especifica se um tempo de execução protegido está habilitado.
Aplicável a projetos macOS e Mac Catalyst.
UseInterpreter
Habilita o intérprete (para todas as assemblagens).
Isso equivale a definir MtouchInterpreter=all.
Aplicável a aplicativos iOS, tvOS e Mac Catalyst (quando não estiver usando NativeAOT).
O comportamento padrão é não habilitar o interpretador.
Observação
MAUI altera o padrão definindo UseInterpreter=true para a configuração "Debug".
Consulte MtouchInterpreter para obter mais informações.
Esta propriedade só tem efeito ao usar o runtime Mono, e um aviso será mostrado se estiver definido quando não estiver a usar o runtime Mono (por exemplo, ao usar CoreCLR).
UseNativeHttpHandler
Se o manipulador http nativo deve ser o manipulador http padrão ou não.
Padrão: true para todas as plataformas, exceto macOS.
Validar Direitos
Escolha se os direitos solicitados pelo aplicativo devem ser validados.
Valores válidos para esta propriedade:
-
disable: A validação está desativada. -
warn: Quaisquer falhas de validação são mostradas como avisos. -
error: Quaisquer falhas de validação são mostradas como erros. Este é o padrão.
O processo de validação pode não validar todos os direitos, nem é garantido que não seja excessivamente zeloso.
Se a validação falhar para direitos que realmente funcionam, registre um novo problema.
ValidateXcodeVersion
Escolha se a versão atual do Xcode deve ser validada.
O valor padrão é validar; defina como false para desativar.
Observação
Usar uma versão diferente da recomendada provavelmente produzirá problemas mais tarde no processo de compilação.
XamMacResourcePrefix
O diretório onde os recursos são armazenados (esse prefixo será removido ao copiar recursos para o pacote de aplicativos).
Aplicável a projetos macOS.
Em vez disso, considere usar a propriedade unificada AppBundleResourcePrefix .
Consulte também as referências IPhoneResourcePrefix e MonoMacResourcePrefix.
XcodeLocation
Especifica a localização do Xcode.
Quando a compilação procura o Xcode, a pesquisa é feita por esta ordem:
- Se a
XcodeLocationpropriedade estiver definida, use isso. Tenha em atenção que, como todas as variáveis de ambiente são também automaticamente propriedades do MSBuild, também é possível definir a variável de ambienteXcodeLocationcom o mesmo efeito. - Se a
MD_APPLE_SDK_ROOTvariável de ambiente estiver definida, usa-a. - Se algum dos ficheiros
~/Library/Preferences/maui/Settings.plistou~/Library/Preferences/Xamarin/Settings.plistexistir e tiver o valorAppleSdkRootna lista de propriedades, use isso. - Use a versão do sistema do Xcode (conforme determinado pela execução
xcode-select --print-path).
Warning
O suporte para a MD_APPLE_SDK_ROOT variável de ambiente e para os ~/Library/Preferences/maui/Settings.plist ficheiros e ~/Library/Preferences/Xamarin/Settings.plist está obsoleto e será removido no futuro.
Daqui para a frente, escolha qual Xcode usar tornando-o a versão do sistema do Xcode (seja na xcode-select --switch ... linha de comandos, ou nas definições do Xcode), ou definindo a XcodeLocation propriedade / variável de ambiente do MSBuild.
ZipPath
O caminho completo para a ferramenta de linha de comandos zip.
O comportamento padrão é usar xcrun zip.