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.
Pode criar aplicações de consola que utilizam funcionalidades do SDK de Aplicações Windows, como gestão do ciclo de vida da aplicação, ativação rica, notificações push e muito mais. Ao contrário das aplicações de consola UWP (que exigiam modelos especiais e C++/WinRT), as aplicações de consola de ambiente de trabalho usam tipos de projeto padrão em .NET ou C++.
Crie uma aplicação de consola com o SDK de Aplicações Windows
Passo 1: Criar um projeto de consola .NET
Use o modelo padrão da aplicação de consola .NET:
dotnet new console -n MyConsoleApp
cd MyConsoleApp
Passo 2: Adicionar o pacote NuGet do SDK de Aplicações Windows
dotnet add package Microsoft.WindowsAppSDK
Passo 3: Usar APIs do SDK de Aplicações Windows
using Microsoft.Windows.AppLifecycle;
class Program
{
static async Task Main(string[] args)
{
Console.WriteLine("Console app with Windows App SDK");
// Check activation kind
var activatedArgs = AppInstance.GetCurrent().GetActivatedEventArgs();
Console.WriteLine($"Activation kind: {activatedArgs.Kind}");
// Use single-instance pattern
var instance = AppInstance.FindOrRegisterForKey("my-console-app");
if (!instance.IsCurrent)
{
Console.WriteLine("Another instance is running. Redirecting...");
await instance.RedirectActivationToAsync(activatedArgs);
return;
}
// Your app logic here
Console.WriteLine("Press Enter to exit.");
Console.ReadLine();
}
}
Identidade de pacote para aplicações de consola
Algumas funcionalidades do SDK de Aplicações Windows requerem identidade de pacote MSIX. Pode atribuir identidade ao pacote da sua app de consola de duas formas:
- Empacote como MSIX — Crie um projeto de empacotamento de aplicações do Windows e adicione a sua aplicação de consola como referência.
- Utilizar identidade externa — Registe um pacote esparso para fins de identidade sem empacotamento MSIX completo.
Note
Funcionalidades como notificações push, tarefas em segundo plano e serviços de aplicação exigem identidade de pacote. APIs básicas do ciclo de vida e de ativação funcionam sem empacotamento.
Diferenças em relação às aplicações de consola UWP
| Feature | Aplicações de consola UWP | Aplicações de consola para ambiente de trabalho |
|---|---|---|
| Suporte de idiomas | Apenas C++/WinRT e C++/CX | C#, C++ e qualquer linguagem .NET |
| Modelo de projeto | Modelo especial de consola UWP (VS 2017/2019) | Consola .NET padrão ou Win32 |
| Requisito de manifesto | desktop4:Subsystem="console" |
Não é obrigatório |
| Activation |
AppExecutionAlias no ficheiro de manifesto |
Linha de comandos padrão ou ativação rica |
| Integração SDK | Limitado a APIs WinRT | Acesso total ao SDK de Aplicações Windows |
Importante
As aplicações de consola UWP exigiam modelos especiais do Visual Studio que já não são mantidos ativamente. Para novas aplicações de consola, use um projeto padrão de consola .NET com o pacote NuGet do SDK de Aplicações Windows.
Cenários comuns
Ferramentas de linha de comandos com integração no Windows
Construa ferramentas de CLI que se integrem com funcionalidades do Windows:
using Microsoft.Windows.AppNotifications;
// Send a notification from a console app (requires package identity)
var builder = new AppNotificationBuilder()
.AddText("Build complete")
.AddText("Your project built successfully.");
AppNotificationManager.Default.Show(builder.BuildNotification());
Processamento em segundo plano
As aplicações de consola funcionam bem para tarefas de processamento em segundo plano:
- Utilitários de importação/exportação de dados
- Observadores e processadores de ficheiros
- Executáveis de tarefas agendadas
- Ferramentas de programador e scripts de automação
Conteúdo relacionado
Windows developer