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.
Os estilos visuais permitem que a aparência de controles comuns seja alterada com base no tema escolhido pelo usuário. Por padrão, os estilos visuais não estão habilitados para aplicativos WPF (Windows Presentation Foundation), portanto, você deve habilitá-los manualmente. No entanto, habilitar estilos visuais para um aplicativo WPF e publicar a solução causa um erro. Este tópico descreve como resolver esse erro e o processo de publicação de um aplicativo WPF com estilos visuais habilitados. Para obter mais informações sobre estilos visuais, consulte a visão geral dos estilos visuais. Para obter mais informações sobre a mensagem de erro, consulte Solucionar problemas de erros específicos em implantações do ClickOnce.
Para resolver o erro e publicar a solução, você deve executar as seguintes tarefas:
Insira o arquivo de manifesto no arquivo executável da solução publicada.
Assine os manifests de aplicação e de implantação.
Em seguida, você pode mover os arquivos publicados para o local do qual deseja que os usuários finais instalem o aplicativo.
Publicar a solução sem estilos visuais habilitados
Verifique se o projeto não tem estilos visuais habilitados. Primeiro, verifique o arquivo de manifesto do projeto para obter o XML a seguir. Em seguida, se o XML estiver presente, envolva o XML com uma tag de comentário.
Por padrão, os estilos visuais não estão habilitados.
<dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency>
Os procedimentos a seguir mostram como abrir o arquivo de manifesto associado ao seu projeto.
Para abrir o arquivo de manifesto em um projeto do Visual Basic
Na barra de menus, escolha Project, ProjectNameProperties, em que ProjectName é o nome do seu projeto do WPF.
As páginas de propriedades do projeto do WPF são exibidas.
Na guia Aplicativo , escolha Exibir Configurações do Windows.
O arquivo app.manifest é aberto no Editor de Código.
Para abrir o arquivo de manifesto em um projeto em C#
Na barra de menus, escolha Project, ProjectNameProperties, em que ProjectName é o nome do seu projeto do WPF.
As páginas de propriedades do projeto do WPF são exibidas.
Na guia Aplicativo , anote o nome que aparece no campo de manifesto. Esse é o nome do manifesto associado ao seu projeto.
Observação
Se Incorporar manifesto com configurações padrão ou Criar aplicativo sem manifesto aparecerem no campo de manifesto, os estilos visuais não estarão habilitados. Se o nome de um arquivo de manifesto aparecer no campo de manifesto, prossiga para a próxima etapa neste procedimento.
No Gerenciador de Soluções, escolha Mostrar Todos os Arquivos.
Este botão mostra todos os itens do projeto, incluindo aqueles que foram excluídos e aqueles que normalmente estão ocultos. O arquivo de manifesto aparece como um item de projeto.
Crie e publique sua solução. Para obter mais informações sobre como publicar a solução, consulte Como publicar um aplicativo ClickOnce usando o Assistente de Publicação.
Criar um arquivo de manifesto
Cole o XML a seguir em um arquivo do Bloco de Notas.
Este XML descreve o assembly que contém controles que dão suporte a estilos visuais.
<?xml version="1.0" encoding="utf-8"?> <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </asmv1:assembly>
No Bloco de Notas, clique em Arquivo e clique em Salvar como.
Na caixa de diálogo Salvar como , na lista suspensa Salvar como tipo , selecione Todos os Arquivos.
Na caixa Nome do arquivo, nomeie o arquivo e acrescente .manifest ao final do nome do arquivo. Por exemplo: themes.manifest.
Escolha o botão Procurar Pastas , selecione qualquer pasta e clique em Salvar.
Observação
Os procedimentos restantes pressupõem que o nome desse arquivo seja themes.manifest e que o arquivo seja salvo no diretório C:\temp em seu computador.
Inserir o arquivo de manifesto no arquivo executável da solução publicada
Abra Prompt de Comando do Desenvolvedor para Visual Studio.
Para obter mais informações sobre como abrir o Prompt de Comando do Desenvolvedor para Visual Studio, consulte o Prompt de Comando do Desenvolvedor e o PowerShell do Desenvolvedor.
Observação
As etapas restantes fazem as seguintes suposições sobre sua solução:
O nome da solução é MyWPFProject.
A solução está localizada no seguinte diretório:
%UserProfile%\Documents\Visual Studio version\Projects\
.A solução é publicada no seguinte diretório:
%UserProfile%\Documents\Visual Studio version\Projects\publish
.A versão mais recente dos arquivos de aplicativo publicados está localizada no seguinte diretório:
%UserProfile%\Documents\Visual Studio version\Projects\publish\Application Files\WPFApp_1_0_0_0
Você não precisa usar o nome ou os locais de diretório descritos acima. O nome e os locais descritos acima são usados apenas para ilustrar as etapas necessárias para publicar sua solução.
No prompt de comando, altere o caminho para o diretório que contém a versão mais recente dos arquivos de aplicativo publicados. O exemplo a seguir demonstra essa etapa.
cd "%UserProfile%\Documents\Visual Studio version\Projects\MyWPFProject\publish\Application Files\WPFApp_1_0_0_0"
No prompt de comando, execute o comando a seguir para inserir o arquivo de manifesto no arquivo executável do aplicativo.
mt -manifest c:\temp\themes.manifest -outputresource:MyWPFApp.exe.deploy
Assinar o aplicativo e os manifestos de implantação
No prompt de comando, execute o comando a seguir para remover a extensão .deploy do arquivo executável no diretório atual.
ren MyWPFApp.exe.deploy MyWPFApp.exe
Observação
Este exemplo pressupõe que apenas um arquivo tenha a extensão de arquivo .deploy . Verifique se você renomeou todos os arquivos neste diretório que têm a extensão de arquivo .deploy .
No prompt de comando, execute o comando a seguir para assinar o manifesto do aplicativo.
mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx
Observação
Este exemplo pressupõe que você assine o manifesto usando o arquivo .pfx do projeto. Se você não estiver assinando o manifesto, poderá omitir o
-cf
parâmetro usado neste exemplo. Se você estiver assinando o manifesto com um certificado que exija uma senha, especifique a opção-password
(For example: mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx - password Password
).No prompt de comando, execute o comando a seguir para adicionar a extensão .deploy ao nome do arquivo que você renomeou em uma etapa anterior deste procedimento.
ren MyWPFApp.exe MyWPFApp.exe.deploy
Observação
Este exemplo pressupõe que apenas um arquivo tinha uma extensão de arquivo .deploy . Verifique se você renomeou todos os arquivos neste diretório que anteriormente tinham a extensão de nome de arquivo .deploy .
No prompt de comando, execute o comando a seguir para assinar o manifesto de implantação.
mage -u ..\..\MyWPFApp.application -appm MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx
Observação
Este exemplo pressupõe que você assine o manifesto usando o arquivo .pfx do projeto. Se você não estiver assinando o manifesto, poderá omitir o
-cf
parâmetro usado neste exemplo. Se você estiver assinando o manifesto com um certificado que exija uma senha, especifique a opção-password
, como neste exemplo:For example: mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx - password Password
.Depois de executar essas etapas, você pode mover os arquivos publicados para o local do qual deseja que os usuários finais instalem o aplicativo. Se você pretende atualizar a solução com frequência, pode mover esses comandos para um script e executar o script sempre que publicar uma nova versão.