Tenho recebido esse erro há algum tempo ao usar o devenv em uma construção automática. Visitei todos os sites que consegui encontrar e as respostas usuais mencionam dependências atualizadas (que acredito que corrigem para implantação manual, mas não para automática) e removendo a codificação de controle de origem dos projetos, o que não me ajudou.
O erro não ocorre sempre que eu construo, mas parece aleatório em diferentes projetos de implantação a cada vez.
Alguém tem algum conselho sobre por que exatamente esse erro ocorre e como proceder para corrigi-lo?
elegant solution
) na essência, IMHO.Respostas:
Este é um problema conhecido no Visual Studio 2010 (uma condição de corrida). Veja este item de conexão .
Nós também encontramos isso e recebemos uma chamada de suporte muito insatisfatória sobre esse problema com a Microsoft. Resumindo: é um problema conhecido, não será resolvido e a Microsoft recomenda deixar de usar os projetos de instalação do Visual Studio (.vdproj).
Contornamos esse problema disparando a construção do MSI uma segunda vez, quando ele falha pela primeira vez. Não é legal, mas funciona na maioria das vezes (a taxa de erro caiu de ~ 10% para ~ 1%).
fonte
Atualização para quem teve esse problema para o VS2013 ou VS2015 após atualizar um projeto de instalação do VS200X usando a extensão Projetos do instalador do Microsoft Visual Studio.
Seguir a receita para v1.0.0.0 do MS finalmente fez com que funcionasse para mim:
Projetos do instalador do Microsoft Visual Studio
fonte
Atualização em 14/06/2017
a extensão Projetos do instalador do Microsoft Visual Studio 2017 agora inclui uma ferramenta auxiliar de linha de comando para tornar a configuração do registro muito mais fácil de aplicar Projetos do instalador do Microsoft Visual Studio 2017
Caminhos de exemplo da ferramenta (com base na versão do Visual Studio instalada)
Do README
Esta ferramenta simples tem como objetivo ajudar os usuários a definir a chave de registro necessária para contornar este erro que pode aparecer ao construir projetos de instalação usando compilações de linha de comando:
ERROR: Ocorreu um erro durante a validação. HRESULT = '8000000A'
A ferramenta destina-se ao Visual Studio 2017+ e define esta chave de registro para uma determinada instância instalada do Visual Studio para o usuário atual. Portanto, se estiver configurando isso em um agente de construção, certifique-se de usar a conta de usuário que a construção usará.
Execute "DisableOutOfProcBuild.exe help" para obter detalhes de uso.
fonte
Eu li em algum lugar online sobre isso, e corrigi assim (foi sugerido por alguém) :
exclua essas linhas no início do arquivo .vdproj:
Esse erro não me impediu de implantar, construir, depurar (ou qualquer outro) meu projeto, apenas me irritou. E funcionou mesmo se eu definir todos os projetos para serem compilados com a configuração atual e o projeto de configuração não.
fonte
Solução permanente (+ para máquinas de construção)
Visual Studio 2017
Para o VS 2017, chame os seguintes scripts CMD em sua conta de destino do Windows:
Community edition
Professional edition
Enterprise edition
TL; DR. Notas para pobres
DisableOutOfProcBuild.exe
, a solução oferecida pela Microsoft que uso para o VS 2017.DisableOutOfProcBuild.exe
não assume que você irá retirá- lo de sua pasta de instalação . Portanto, você não pode copiar este arquivo .exe. (A propósito, se você deseja construir .vdproj, você deve instalar o VS.)DisableOutOfProcBuild.exe
só funcionará se o diretório CMD atual estiver definido como o local de instalação de DisableOutOfProcBuild.exe.Por exemplo, para a edição VS Professional, devemos chamar
Visual Studio 2015 e anteriores
por CMD para o usuário atual do Windows
Para muitas pessoas, a criação / correção
HKEY_CURRENT_USER\..
nem sempre funciona ou funciona permanentemente.Tentando resolver isso, descobri que, na verdade, tenho que criar / alterar alguma chave estranha em HKEY_USERS
HKEY_USERS\S-1-5-xx-xxxxxxxxxx-xxxxxxxxx-xxxxxxxxxxx-xxxxx\...\MSBuild
Mas também descobri que, se for usar um console CMD
HKCU
com a correção proposta,REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
isso gravará o valor exatamente naquela chave estranha HKEY_USERS \ S-1-5-xx-xxxxxxxxxx-xx ... , não no HKEY_CURRENT_USER .
Então, isso funciona desde o primeiro tiro e para sempre. Basta usar o console CMD.
Solver para construir servidores
Por outro lado, este código sempre funciona para uma conta de usuário atual que o inicia (por causa de HKEY_CURRENT_USER). Mas os servidores de construção costumam usar contas dedicadas ou Sistema Local, etc.
Corrigi-o em minhas máquinas de construção adicionando o seguinte arquivo em lote simples às minhas tarefas de construção (Jenkins, TeamCity, CruiseControl)
VS-2015 , VS-2013 , VS-2017-Community , VS-2017-Professional , VS-2017-Enterprise
fonte
Conforme apontado nos comentários aqui , para VS2017 você precisará criar o DWORD HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 15.0_ [IDKey] _Config \ MSBuild \ EnableOutOfProcBuild Substituir [IDKey] com o sufixo de ID da subchave 15.0 existente do VisualStudio .
Por exemplo, se em VisualStudio você vir a chave "15.0_abcd1234", seria "15.0_abcd1234_Config".
fonte
O hotfix foi carregado aqui:
http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=33186
você pode ler sobre isso aqui:
http://connect.microsoft.com/VisualStudio/feedback/details/595632/inconsistent-hanging-with-devenv-2010
fonte
Eu enfrentei esse problema depois que mudei meu projeto para outro PC (VS 2010, vários projetos em uma solução).
Já estava compilado meu projeto no computador de origem, mas depois que copiei para o destino, não consegui compilar meu projeto de instalação e tive este erro.
Abri a
/Debug
pasta no caminho raiz do meu projeto de instalação, havia arquivosMyProject.msi
esetup.exe
, apaguei-os e construí meu projeto novamente, funcionou. Espero que funcione para alguns caras também.fonte
Verificar as dependências do projeto pode ajudar.
No VS 2010, clique com o botão direito do mouse no gerenciador de soluções e clique em Dependências detectadas e em Atualizar dependências; às vezes, isso resolverá o problema.
fonte
Estou usando o VS 2017, mas nenhuma das soluções acima funciona. Então, atualizei a versão mais recente do VS 2017 e aplique a solução @AussieAsh e seu bom funcionamento ...
Espero que essa solução possa funcionar.
fonte
comigo foi causado por um arquivo .suo errado. (causado pelo skydrive) excluir este arquivo resolveu o problema.
fonte
O Visual Studio 2017 armazena as informações armazenadas anteriormente no registro público em um novo registro privado: C: \ Usuários \\ AppData \ Local \ Microsoft \ VisualStudio \ 15.0_6de65198 \ privateregistry.bin
É aqui que você precisa adicionar o EnableOutOfProcBuild de acordo com as instruções para VS2013 / VS2015.
Para atualizar o registro privado, você pode usar o Regedit.
Clique para selecionar o nó HKEY_USERS.
Selecione Arquivo> Carregar seção e navegue até o arquivo privateregistry.bin. Quando você selecioná-lo, o Regedit pedirá um nome - não importa como você o chame, pois isso será feito em breve.
Agora a estrutura do registro aparecerá e você pode navegar até Microsoft \ VisualStudio \ 15.0_Config \ MSBuild
Crie um novo EnableOutOfProcBuild DWORD com valor 0.
Uma vez feito isso, selecione a raiz da colmeia (qualquer que seja o nome que você tenha dado) e use File> Unload Hive para separar dela.
Agora deve funcionar: o)
fonte
Meu Visual Studio 2013 de alguma forma se tornou Experimental, então começou a usar outra chave de registro para EnableOutOfProcBuild
Para ter certeza, acabei de adicionar outra linha em meu arquivo em lote para definir o valor do registro e ele começou a funcionar:
fonte
Apenas execute este exe
(Visual Studio 2017 Community edition)
C: \ Arquivos de programas (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ CommonExtensions \ Microsoft \ VSI \ DisableOutOfProcBuild \ DisableOutOfProcBuild.exe
(Visual Studio 2017 Enterprise edition)
C: \ Arquivos de programas (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ CommonExtensions \ Microsoft \ VSI \ DisableOutOfProcBuild \ DisableOutOfProcBuild.exe
fonte
Ok, examinei esse problema até ficar com o rosto azul, o rosto vermelho, perdendo o cabelo e perdendo a cabeça, e tentei todas as etapas que pude. :-D
Minha solução para Visual Studio 2017 / TeamCity foi uma combinação das duas soluções de @ it3xl e alguma assistência de @ Night94 .
O problema parecia ser a falta da chave de registro do usuário TeamCity .
DisableOutOfProcBuild.exe
conforme mencionado por @AussieAsh portanto, não funcionou, pois adicionou a chave de registro apenas para o meu usuário.A solução foi, portanto, adicionar o seguinte como uma etapa de compilação de linha de comando do TeamCity antes do MSBuild:
Depois que essa etapa for executada, ela poderá ser removida, se necessário.
Resumo da solução
Ou:
DisableOutOfProcBuild.exe
como o usuário TeamCity , ouHKCU\SOFTWARE\Microsoft\VisualStudio
e verifique a versão listada, em seguida, corrija o acimaREG ADD
para corresponder às versões (lembre-se de adicionar_Config
) como uma etapa na construção do TeamCity.Novamente, o acima deve ser feito apenas uma vez. Você pode desabilitar para entrar no TeamCity, deixando-o para referência, caso encontre o problema novamente.
fonte
Etapa 1 Eu "criei uma chave DWORD com o nome“ EnableOutOfProcBuild ”e defini seu valor como“ 0 ”no caminho abaixo
Nota: Certifique-se de ter logado com o mesmo usuário que você está tentando construir o projeto
Está funcionando bem pra mim.
fonte
Teve esse problema hoje, tente reiniciar o Visual Studio, se isso não adiantar crie um novo projeto, salve-o e copie os arquivos do projeto problemático. ambos os métodos funcionaram para mim.
fonte
Limpe a solução primeiro, construa a solução e depois tente construir o instalador. Isso removerá o erro.
fonte