He estado recibiendo este error durante un tiempo al usar devenv en una compilación automática. Revisé todos los sitios web que pude encontrar, y las respuestas habituales mencionan la actualización de dependencias (que creo que lo corrige para la implementación manual, pero no para la automática) y la eliminación de la codificación de control de fuente de los proyectos, lo que no me ha ayudado.
El error no ocurre cada vez que construyo, pero parece aleatorio en diferentes proyectos de implementación cada vez.
¿Alguien tiene algún consejo sobre por qué ocurre exactamente este error y cómo solucionarlo?
elegant solution
) en esencia, en mi humilde opinión.Respuestas:
Este es un problema conocido en Visual Studio 2010 (una condición de carrera). Vea este artículo de conexión .
También nos hemos encontrado con esto, y tuvimos una llamada de soporte muy insatisfactoria sobre este problema con Microsoft. En pocas palabras: es un problema conocido, no se resolverá y Microsoft aconseja alejarse de los proyectos de instalación de Visual Studio (.vdproj).
Hemos solucionado este problema activando la compilación de MSI por segunda vez cuando falla la primera vez. No es agradable, pero funciona la mayor parte del tiempo (la tasa de error ha bajado de ~ 10% a ~ 1%).
fuente
Actualización para aquellos que tuvieron este problema para VS2013 o VS2015 después de actualizar un proyecto de instalación VS200X usando la extensión Microsoft Visual Studio Installer Projects.
Seguir la receta para la v1.0.0.0 de MS finalmente hizo que me funcionara:
Proyectos del instalador de Microsoft Visual Studio
fuente
Actualización al 14/6/2017
la extensión Proyectos de instalación de Microsoft Visual Studio 2017 ahora incluye una herramienta auxiliar de línea de comandos para hacer que la configuración del registro sea mucho más fácil de aplicar Proyectos de instalación de Microsoft Visual Studio 2017
Rutas de ejemplo de la herramienta (según la versión de Visual Studio instalada)
Del README
Esta sencilla herramienta está destinada a ayudar a los usuarios a establecer la clave de registro necesaria para evitar este error que puede aparecer al crear proyectos de instalación mediante compilaciones de línea de comandos:
ERROR: Se produjo un error durante la validación. HRESULT = '8000000A'
La herramienta está diseñada para Visual Studio 2017+ y establece esta clave de registro para una instancia de Visual Studio instalada en particular para el usuario actual. Entonces, si está configurando esto en un agente de compilación, asegúrese de usar la cuenta de usuario que usará la compilación.
Ejecute la "Ayuda de DisableOutOfProcBuild.exe" para obtener detalles de uso.
fuente
Leí en algún lugar en línea sobre esto, y lo arreglé así (fue sugerido por alguien) :
elimine estas líneas al principio del archivo .vdproj:
Ese error no me impidió implementar, compilar, depurar (o cualquier cosa) mi proyecto, simplemente me molestó. Y se activó incluso si configuré todos los proyectos para que se compilen en una configuración actual y el proyecto de instalación no.
fuente
Solución permanente (+ para máquinas de construcción)
Visual Studio 2017
Para VS 2017, llame a los siguientes scripts de CMD en su cuenta de Windows de destino:
Comunidad Edición
Profesional edición
de Enterprise edición
TL; DR. Notas para los pobres
DisableOutOfProcBuild.exe
, la solución ofrecida por Microsoft que uso para VS 2017.DisableOutOfProcBuild.exe
no asume que lo llamará fuera de su carpeta de instalación . Por lo tanto, no puede copiar este archivo .exe. (Por cierto, si desea compilar .vdproj, debe instalar VS.)DisableOutOfProcBuild.exe
solo funcionará si el directorio CMD actual está configurado en la ubicación de instalación de DisableOutOfProcBuild.exe.Como ejemplo, para la edición VS Professional debemos llamar
Visual Studio 2015 y versiones anteriores
por CMD para el usuario actual de Windows
Para muchas personas, la creación / corrección de abajo
HKEY_CURRENT_USER\..
no siempre funciona o funciona de forma permanente.Tratando de resolver esto, encontré que, de hecho, tengo que crear / cambiar alguna clave extraña en HKEY_USERS
HKEY_USERS\S-1-5-xx-xxxxxxxxxx-xxxxxxxxx-xxxxxxxxxxx-xxxxx\...\MSBuild
Pero también descubrí que si voy a usar una consola CMD
HKCU
con la solución propuesta,REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
esto escribirá el valor exactamente en esa clave extraña HKEY_USERS \ S-1-5-xx-xxxxxxxxxx-xx ... , no en HKEY_CURRENT_USER .
Entonces, esto funciona desde un primer disparo y para siempre. Simplemente use la consola CMD.
Solver para servidores de compilación
Por otro lado, este código siempre funciona para una cuenta de usuario actual que lo inicia (debido a HKEY_CURRENT_USER). Pero los servidores de compilación a menudo usan cuentas dedicadas o sistema local, etc.
Lo arreglé en mis máquinas de compilación agregando el siguiente archivo por lotes simple a mis tareas de compilación (Jenkins, TeamCity, CruiseControl)
VS-2015 , VS-2013 , VS-2017-Community , VS-2017-Professional , VS-2017-Enterprise
fuente
Como se señala en los comentarios aquí , para VS2017 deberá crear el DWORD HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 15.0_ [IDKey] _Config \ MSBuild \ EnableOutOfProcBuild Reemplace [IDKey] con el sufijo de ID de la subclave 15.0 existente de VisualStudio .
Por ejemplo, si en VisualStudio ve la clave "15.0_abcd1234", sería "15.0_abcd1234_Config".
fuente
La revisión ahora está cargada aquí:
http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=33186
Usted puede leer sobre ello aquí:
http://connect.microsoft.com/VisualStudio/feedback/details/595632/inconsistent-hanging-with-devenv-2010
fuente
Me he enfrentado a este problema después de trasladar mi proyecto a otra PC (VS 2010, varios proyectos en una solución).
Ya se creó mi proyecto en la computadora de origen, pero después de copiar en el destino, no pude construir mi proyecto de instalación y tuve este error.
Abrí la
/Debug
carpeta en la ruta raíz de mi proyecto de instalación, había archivosMyProject.msi
ysetup.exe
, los eliminé y construí mi proyecto nuevamente, funcionó. Espero que también funcione para algunos muchachos.fuente
Verificar las dependencias del proyecto puede ayudar.
En VS 2010, haga clic con el botón derecho en el explorador de soluciones y luego haga clic en Dependencias detectadas y Actualizar dependencias, en algún momento se resuelve el problema.
fuente
Estoy usando VS 2017 pero ninguna de las soluciones anteriores funciona. Entonces, actualice la última versión de VS 2017 y aplique la solución @AussieAsh y funciona bien ...
Espero que esta solución funcione.
fuente
conmigo fue causado por un archivo .suo incorrecto. (causado por skydrive) eliminar este archivo resolvió el problema.
fuente
Visual Studio 2017 almacena la información previamente almacenada en el registro público dentro de un nuevo registro privado: C: \ Users \\ AppData \ Local \ Microsoft \ VisualStudio \ 15.0_6de65198 \ privateregistry.bin
Aquí es donde debe agregar EnableOutOfProcBuild según las instrucciones para VS2013 / VS2015.
Para actualizar el registro privado puede utilizar Regedit.
Haga clic para seleccionar el nodo HKEY_USERS.
Seleccione Archivo> Cargar Hive y navegue hasta el archivo privateregistry.bin. Cuando lo seleccione, Regedit le pedirá un nombre; no importa cómo lo llame, ya que pronto terminaremos.
Ahora aparecerá la estructura del registro y podrá navegar hasta Microsoft \ VisualStudio \ 15.0_Config \ MSBuild
Cree un nuevo EnableOutOfProcBuild DWORD con un valor de 0.
Una vez hecho esto, seleccione la raíz de la colmena (como sea que la haya llamado antes) y use Archivo> Descargar Hive para separarse de ella.
Ahora debería funcionar: o)
fuente
Mi Visual Studio 2013 de alguna manera se convirtió en Experimental, por lo que comenzó a usar otra clave de registro para EnableOutOfProcBuild
Para estar seguro, acabo de agregar otra línea en mi archivo por lotes para configurar el valor del registro y comenzó a funcionar:
fuente
Solo ejecuta este exe
(Edición de la comunidad de Visual Studio 2017)
C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ CommonExtensions \ Microsoft \ VSI \ DisableOutOfProcBuild \ DisableOutOfProcBuild.exe
(Edición empresarial de Visual Studio 2017)
C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ CommonExtensions \ Microsoft \ VSI \ DisableOutOfProcBuild \ DisableOutOfProcBuild.exe
fuente
Bien, miré este problema hasta que me sentí azul en la cara, roja en la cara, perdiendo mi cabello y perdiendo la cabeza, e intenté cada paso que pude encontrar. :-RE
Mi solución para Visual Studio 2017 / TeamCity fue una combinación de las dos soluciones de @ it3xl y algo de ayuda de @ Night94 .
El problema parecía ser que faltaba la clave de registro del usuario de TeamCity .
DisableOutOfProcBuild.exe
como lo menciona @AussieAsh, por lo tanto, no funcionó, ya que agregó la clave de registro solo para mi usuario.Por lo tanto, la solución fue agregar lo siguiente como un paso de compilación de la línea de comandos desde TeamCity antes de MSBuild:
Una vez que se ejecutó este paso, podría eliminarse si es necesario.
Resumen de la solución
Ya sea:
DisableOutOfProcBuild.exe
como usuario de TeamCity , oHKCU\SOFTWARE\Microsoft\VisualStudio
y verifique la versión enumerada, luego modifique lo anteriorREG ADD
para que coincida con las versiones (recuerde agregar_Config
) como un paso en la compilación de TeamCity.Nuevamente, lo anterior solo debería hacerse una vez. Puede deshabilitar el paso en TeamCity y dejarlo como referencia en caso de que vuelva a tener el problema.
fuente
Paso 1 He "creado una clave DWORD con el nombre" EnableOutOfProcBuild "y establecí su valor en" 0 "en la ruta de abajo
Nota: asegúrese de haber iniciado sesión con el mismo usuario que está intentando construir el proyecto.
Está funcionando bien para mí.
fuente
Tuve este problema hoy, intente reiniciar Visual Studio, si eso no funciona, cree un nuevo proyecto, guárdelo y luego copie los archivos del proyecto problemático. ambos métodos funcionaron para mí.
fuente
Primero limpie la solución, compile la solución y luego intente compilar el instalador. Eliminará el error.
fuente