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.
A janela de Saída no IDE do Visual Studio é uma Janela de Ferramenta que pode ser usada para fornecer status, diagnóstico/registro em log ou qualquer outro texto informativo para o usuário. Ao contrário dos Prompts de Usuário, que podem exibir uma caixa de mensagem, as mensagens gravadas na janela de Saída só serão exibidas se o usuário tiver a janela de Saída visível no IDE e se o canal estiver selecionado na lista suspensa Mostrar saída de. A janela de Saída fica visível quando o usuário seleciona o menu Exibir > Saída no menu principal.
Começar
Importante
As APIs da janela de saída VisualStudio.Extensibility estão atualmente em versão prévia e estão sujeitas a alterações. Qualquer extensão que aproveite essas APIs pode falhar em funcionar em versões futuras do Visual Studio e precisará ser atualizada quando uma versão mais recente das APIs for lançada.
Para começar, siga a seção criar o projeto na seção Introdução.
Trabalhar com a janela de Saída
Este guia foi projetado para cobrir as coisas mais comuns que você pode fazer com a janela Saída:
Obter um canal da janela de Saída
Para gravar na janela de Saída, você precisa de um canal da janela de Saída, que pode ser criado chamando VisualStudioExtensibility.Views().Output.CreateOutputChannelAsync()
.
OutputWindowExtensibility.CreateOutputChannelAsync()
O método CreateOutputChannelAsync()
tem dois parâmetros:
Parâmetro | Tipo | Necessário | Descrição |
---|---|---|---|
displayName |
string |
sim | O nome de exibição da janela de saída. Isso é o que ficará visível no menu suspenso "Mostrar saída de:" no painel de saída. Esse valor é marcado como 'Localizável' para localizar o nome de exibição. |
cancellationToken |
CancellationToken |
sim | O CancellationToken da operação assíncrona. |
Editar ou adicionar a classe Extension
Se o projeto ainda não contiver uma classe derivada de Extension
, você precisará adicionar uma como a simples abaixo (nesse caso chamada MyExtension.cs
):
using System.Resources;
using Microsoft.VisualStudio.Extensibility;
namespace MyProject
{
public class MyExtension : Extension
{
// Initiailzation code here
}
}
Adicionar o código de inicialização
Esse código pode estar em qualquer classe que você pretende usar para exibir mensagens de saída (como um comando ou), mas o importante é que CreateOutputChannelAsync()
só pode ser chamado uma vez para um determinado nome de exibição do canal da janela de saída - se houver conflitos, então uma exceção será lançada - então considere chamá-lo em um método de inicialização única, como InitializeAsync()
.
public override async Task InitializeAsync(CancellationToken cancellationToken)
{
string displayName = "My Output Window";
// To use this Output window Channel elsewhere in the class, such as the ExecuteCommandAsync() method in a Command, save this result to a field in the class.
OutputChannel? outputChannel = await this.Extensibility.Views().Output.CreateOutputChannelAsync(displayName, cancellationToken);
}
Gravar no canal de Saída
A instância OutputChannel
obtida em Obter um canal de janela de Saída tem uma propriedade System.IO.TextWriter
chamada Writer
, que dá suporte a operações clássicas para gravar texto, como:
Além disso, você pode chamar WriteAsync()
ou WriteLineAsync()
diretamente no OutputChannel
ou acessar um System.IO.Pipelines.PipeWriter
por meio da propriedade PipeWriter
.
Exemplo
Esse trecho de código pode ser usado em que você quiser exibir uma mensagem na janela de saída, como no método ExecuteCommandAsync()
em um Command.
if (this.outputChannel != null)
{
await this.outputChannel.Writer.WriteLineAsync("This is a test of the output channel TextWriter.");
await this.outputChannel.WriteLineAsync("This is a test of the output channel.");
var rom = new ReadOnlyMemory<byte>(Encoding.UTF8.GetBytes("This is a test of the output channel PipeWriter."));
await this.outputChannel.PipeWriter.WriteLineAsync(rom, new());
}
Próximas etapas
Saiba Mais:
- Saiba mais sobre comandos
- Saiba mais sobre como expor a funcionalidade no IDE em uma janela de ferramenta
- Saiba mais sobre como interagir com o usuário usando prompts
Examine o código de exemplo:
- Consulte o exemplo OutputWindowSample para um exemplo completo de criação de uma extensão que usa a janela de saída.