Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico discute suas opções sobre:
- Qual opção de empacotamento usar para seu aplicativo (empacotado, empacotado com local externo ou desempacotado).
- Como você implantará/distribuirá seu aplicativo e como ele será instalado.
- O processo de tempo de execução do aplicativo, incluindo o quão isolado ele será e quais APIs estarão disponíveis para ele.
Você pode tomar essas decisões para aplicativos novos e existentes. No entanto, se você ainda estiver no estágio de planejamento de um novo aplicativo, antes de começar a pensar nas considerações acima, primeiro decida qual estrutura de interface do usuário e plataforma de desenvolvimento você usará para seu aplicativo. E para essa decisão, confira Uma visão geral das opções de desenvolvimento do Windows.
Opções de empacotamento: empacotado, empacotado com localização externa ou desempacotado
A decisão sobre qual opção de empacotamento usar para seu aplicativo é determinada pela primeira vez por um conceito conhecido como identidade do pacote. Muitos recursos de extensibilidade do Windows (tarefas em segundo plano, cenários de notificação por push que usam entrega em segundo plano ou ativação por COM, extensões personalizadas de menu de contexto e alvos de compartilhamento) somente podem ser usados por um aplicativo se ele tiver identidade de pacote em tempo de execução, pois o sistema operacional (SO) precisa ser capaz de identificar o chamador da API correspondente. Somente aplicativos empacotados (incluindo aplicativos empacotados com localização externa) têm a identidade do pacote.
Para uma explicação completa dos modelos empacotado, empacotado com localização externa e não empacotado, e como escolher entre eles, consulte a Visão geral de empacotamento. Para os recursos que dependem da identidade do pacote, consulte Recursos que exigem a identidade do pacote.
Para obter informações sobre como configurar seu aplicativo como empacotado ou desempacotado:
-
Aplicativos WinUI 3 (SDK do Aplicativo Windows). Consulte a propriedade do projeto no Visual Studio em
AppxPackage. Veja também Criar o seu primeiro projeto WinUI (SDK do Aplicativo Windows). - Aplicativos de desktop. Consulte Configurar seu aplicativo de desktop para o empacotamento MSIX.
- aplicativos Plataforma Universal do Windows (UWP). Os aplicativos UWP já estão configurados como empacotados; e essa configuração não pode ser alterada.
Consulte também a seção Windows Gerenciador de Pacotes e o cliente WinGet neste tópico.
Implantação/distribuição/instalação
Um aplicativo empacotado é empacotado e instalado usando o MSIX. Se você optar por empacotar com localização externa, esse é um modelo "traga seu próprio instalador", portanto, você ainda realiza o trabalho de instalação por conta própria (consulte Conceder identidade de pacote empacotando com localização externa). Um aplicativo não empacotado não envolve o MSIX de forma alguma.
O empacotamento é importante porque o MSIX oferece a seus usuários uma experiência limpa de instalação, desinstalação e atualização, dá suporte a atualizações incrementais e automáticas, é otimizado pela Microsoft Store, funciona com MSIX app attach para Área de Trabalho Virtual do Azure e, quando assinado, se beneficia de uma proteção robusta contra adulteração.
Para orientações sobre implantação e distribuição, consulte a Visão geral de empacotamento e implantação e Escolha um caminho de distribuição. Consulte também a seção Windows Gerenciador de Pacotes e o cliente WinGet neste tópico.
AppContainer ou IL Médio
A opção de executar seu aplicativo em um AppContainer, ou não, é uma questão de segurança. O processo de um aplicativo AppContainer e seus processos filho são executados dentro de um contêiner de aplicativo leve, onde podem acessar apenas os recursos que são especificamente concedidos a eles. E eles são isolados por meio da virtualização do sistema de arquivos e do Registro. Como resultado, os aplicativos implementados em um AppContainer não podem ser hackeados para permitir ações mal-intencionadas fora dos recursos atribuídos limitados.
Aplicativos empacotados ou não empacotados podem ser configurados para execução em um AppContainer. Mas o processo é mais simples para aplicativos empacotados. Se um aplicativo não for um aplicativo AppContainer, ele será um aplicativo IL médio .
Para obter mais informações, consulte AppContainer para aplicativos herdados e aplicativos MSIX AppContainer.
Para obter informações sobre como configurar seu aplicativo para executar em um AppContainer ou Medium IL:
- aplicativos WinUI (SDK do Aplicativo Windows). Consulte o atributo de manifesto do pacote do aplicativo
uap10:TrustLevelem Configurar um projeto WinUI para AppContainer. -
Aplicativos de desktop. Consulte a Propriedade
TrustLeveldo projeto Visual Studio em aplicativos AppContainer MSIX (na seção apropriada para seu aplicativo). - aplicativos Plataforma Universal do Windows (UWP). Os aplicativos UWP já estão configurados para serem executados em um AppContainer; e essa configuração não pode ser alterada.
Lembre-se de que os aplicativos não empacotados não têm um manifesto de pacote de aplicativo. Portanto, para aplicativos não empacotados, você deve declarar sua decisão AppContainer-or-Medium-IL no seu arquivo do projeto, em vez de em um manifesto de pacote do aplicativo.
Isolamento de aplicações Win32
O isolamento do aplicativo Win32 é um recurso de segurança (disponível em Windows 11, versão 24H2 e posterior) que ajuda a conter danos se um aplicativo estiver comprometido e protege as opções de privacidade do usuário. Ele se baseia em AppContainers e componentes que virtualizam recursos e fornecem acesso agenciado. Para obter mais informações, consulte Visão geral do isolamento de aplicativo Win32 e o repositório do GitHub sobre isolamento de aplicativo Win32.
Funcionalidades do aplicativo
Os recursos de aplicativo (por exemplo, InternetClient, localização, microfone e bluetooth) são relevantes principalmente para aplicativos empacotados que são executados em um AppContainer. Isso inclui todos os aplicativos da Plataforma Universal do Windows (UWP) e alguns aplicativos de desktop.
Mas há alguns cenários em que até mesmo um aplicativo IL médio (ou seja, não um aplicativo AppContainer) deve declarar uma funcionalidade. Um exemplo é a funcionalidade restrita runFullTrust .
Para obter mais detalhes sobre os recursos do aplicativo, a quais tipos de aplicativos eles se aplicam e como configurá-los, consulte as declarações de funcionalidade do aplicativo. Você configura os recursos no manifesto do pacote do aplicativo; e é por isso que eles se aplicam apenas a aplicativos empacotados.
Tipos de aplicativos
Aplicativos de área de trabalho e aplicativos Plataforma Universal do Windows (UWP) são os dois principais tipos de aplicativos, embora haja vários tipos de aplicativos na família de aplicativos da área de trabalho. Escolher uma estrutura de interface do usuário (WinForms, WPF, Win32, Direct 2D/3D ou WinUI 3) é até certo ponto independente das configurações descritas neste tópico.
Mas vamos dar uma olhada em como esses tipos de aplicativo podem diferir uns dos outros em termos de empacotamento, implantação e processo.
Primeiro, todos os aplicativos UWP são empacotados e executados em um AppContainer. Mas para aplicativos de desktop, as coisas são mais flexíveis. Você pode optar por empacotar seu aplicativo para desktop ou não. E, independentemente dessa decisão, você pode optar por configurar seu aplicativo de desktop como um AppContainer ou um aplicativo de Nível de Integridade Médio.
| Embalados | Desempacotado | |
|---|---|---|
| AppContainer | Aplicativos de desktop Aplicativos UWP |
Aplicativos de desktop |
| IL médio | Aplicativos de desktop | Aplicativos de desktop |
Para aplicativos empacotados, para configurar o tipo de aplicativo desejado, use o atributo uap10:RuntimeBehavior no manifesto do pacote do aplicativo (consulte Application (Windows 10)).
-
Aplicativos de desktop são do Windows
.exe, normalmente com uma função de ponto de entrada principal ou WinMain. Para configurar seu aplicativo como um aplicativo da área de trabalho, definauap10:RuntimeBehaviorcomo "packagedClassicApp" ou "win32App".- O valor "packagedClassicApp" indica um aplicativo WinUI (SDK do Aplicativo Windows) ou um aplicativo do Desktop Bridge (Centennial). A diferença é que um aplicativo Centennial é executado em um AppContainer.
- E "win32App" indica qualquer outro tipo de aplicativo Win32 (incluindo um aplicativo empacotado com localização externa).
- Por fim, a configuração
uap10:RuntimeBehaviorpara "windowsApp" resulta em um aplicativo UWP.
Para obter todas as opções para os tipos de aplicativos que você pode desenvolver, consulte Windows app desenvolvimento: opções e recursos.
SDK de Aplicativos do Windows: dependente de framework ou autocontido
Se o seu aplicativo usa o SDK de Aplicativos do Windows, você também escolhe como implantar o runtime do SDK do qual seu aplicativo depende: dependente de framework (o padrão, em que o runtime do SDK de Aplicativos do Windows e/ou o pacote do Framework devem estar presentes na máquina de destino) ou autocontido (seu aplicativo carrega suas dependências do SDK de Aplicativos do Windows consigo). Para obter mais informações, consulte a visão geral da implantação do SDK do Aplicativo Windows.
Windows Gerenciador de Pacotes e o cliente WinGet
Um package manager pode ajudar os usuários a instalar/atualizar/configurar seu software automatizando o fluxo de trabalho. Os gerenciadores de pacotes podem ajudar a instalar qualquer software, mas tendem a ser usados principalmente para instalar developer tools. Portanto, se você estiver criando uma ferramenta de desenvolvedor, talvez esteja particularmente interessado nessa opção. Mas é assim que funciona:
- Você, como desenvolvedor de software, define para o package manager (na forma de instruções declarativas) todas as peças necessárias para uma instalação bem-sucedida do seu produto.
- E, quando um usuário instala seu software, o package manager segue as instruções declarativas para automatizar o fluxo de trabalho de instalação e configuração.
O resultado é uma redução no tempo gasto para preparar o ambiente de um usuário e uma melhor compatibilidade entre os componentes instalados. E você pode usar o Windows Gerenciador de Pacotes para distribuir seus aplicativos empacotados ou não empacotados em formatos como .msix, .msi e .exe.
Para obter mais informações, consulte Windows Gerenciador de Pacotes.
Windows developer