Pregunta

Durante una larga compilación con Visual Studio 2005 (versión 8.0.50727.762), a veces aparece el siguiente error en varios archivos de algún proyecto:

fatal error C1033: cannot open program database 'v:\temp\apprtctest\win32\release\vc80.pdb'

(El archivo mencionado es vc80.pdb o vc80.idb en el directorio temporal del proyecto).

La siguiente compilación del mismo proyecto tiene éxito.No hay ningún otro Visual Studio abierto que pueda acceder a los mismos archivos.

Este es un problema grave porque imposibilita la compilación nocturna.

¿Fue útil?

Solución

Es posible que un antivirus o un programa similar esté tocando el archivo pdb al escribir; un antivirus es el sospechoso más probable en este escenario.Me temo que sólo puedo darte algunos consejos generales, basados ​​en mi experiencia pasada instalando construcciones nocturnas en nuestra tienda.Algunos de estos pueden parecer triviales, pero los incluyo para completarlos.

  • Primero y ante todo:asegúrese de comenzar con borrón y cuenta nueva.Es decir, fuerce la eliminación del directorio de salida de la compilación antes de comenzar su sesión nocturna.
  • Si tiene un antivirus, antispyware u otros programas similares en su máquina nocturna, considere eliminarlos.Si esa no es una opción, agregue su carpeta obj a la lista de exclusión del programa.
  • (opcional) Considere la posibilidad de utilizar herramientas como VCBuild o MSBuild como parte de su actividad nocturna.Creo que es mejor usar MSBuild si estás en una máquina multinúcleo.Usamos IncrediBuild para las noches y MSBuild para los lanzamientos, y nunca encontramos el problema que usted describe.

Si nada más funciona, puede programar un script de vigilancia unas horas después de que comience la compilación y verificar su estado;Si la compilación falla, el perro guardián debería reiniciarla.Este es un truco feo, pero es mejor que nada.

Otros consejos

También hemos visto esto mucho en mi sitio. esta explicación, de Peter Kaufmann, parece ser el más plausible según nuestra configuración:

Al crear una solución en Visual Studio 2005, aparecen errores como el error fatal C1033:No se puede abrir la base de datos del programa 'xxx\debug\vc80.pdb'.Sin embargo, cuando se ejecuta la compilación por segunda vez, normalmente tiene éxito.

Razón:Es posible que dos proyectos de la solución estén escribiendo sus resultados en el mismo directorio (p. ej.'xxx\depuración').Si la configuración del número máximo de compilaciones de proyectos paralelos en Herramientas - Opciones, Proyectos y Soluciones - Bild and Run se establece en un valor mayor que 1, esto significa que dos subprocesos del compilador podrían estar intentando acceder a los mismos archivos simultáneamente, lo que resultaría en un archivo compartir conflicto.Solución:Verifique la configuración de su proyecto y asegúrese de que no haya dos proyectos que utilicen el mismo directorio para archivos de salida, destino o cualquier tipo de archivo intermedio.O establezca el número máximo de compilaciones de proyectos paralelos en 1 para una solución rápida.Experimenté este mismo problema mientras usaba los archivos de proyecto VS que venían con la biblioteca CLAPACK.ACTUALIZAR:Existe la posibilidad de que Tortoise SVN acceda a 'vc80.pdb', incluso si el archivo no está bajo control de versiones, lo que también podría provocar el error descrito anteriormente (gracias a Liana por informar esto).Sin embargo, no puedo confirmar esto, ya que no pude reproducir el problema después de asegurarme de que se utilizan directorios de salida diferentes para todos los proyectos.

Cambie la información de depuración al formato C7 en lugar de utilizar el PDB.

Project Options -> C/C++ -> General -> Debug Information Format y configúrelo en C7.

Esto generalmente sucede cuando sus intentos anteriores de depuración no han eliminado el depurador por completo.En el Administrador de tareas busque un proceso llamado vcjit, elimínelo y vuelva a intentarlo.La peor opción es reiniciar Visual Studio, esto debería resolver tu problema.

Tuve este problema hoy y resultaron ser caracteres no ansi en la ruta al pdb lo que lo causó.

Estoy usando Windows a través de vmware y mi proyecto estaba en una ubicación compartida:\vmware-host\Carpetas compartidas\proyecto

Cuando lo moví a \Users\julian\project, resolvió el problema.

Intente hacer clic derecho en el archivo ejecutable de VS....y Propiedades->Compatibilidad-> Marque "Ejecutar este programa en modo de compatibilidad para:" APAGADO.....

Tuve un problema similar mientras trabajaba en un proyecto que había ubicado en mi carpeta de Dropbox.Descubrí que arrojaba este error cuando el pequeño ícono de "sincronización" aparecía en el ícono de Dropbox en la bandeja del sistema, ya que Dropbox estaba accediendo a los archivos para cargarlos en su servidor.Cuando esperé para compilar hasta que Dropbox terminara de sincronizarse, funcionó siempre.

Me acabo de encontrar con este problema.Visual Studio se quejaba de no poder abrir. vc100.pdb.Busqué identificadores de archivos abiertos para este archivo usando procexp y descubrí que el proceso mspdbsrv tenía un identificador de archivo abierto.Al finalizar este proceso se solucionó el problema y pude compilar.

¿Estás utilizando LinqToSql?Quizás sea similar al extraño error que experimentaré ocasionalmente como pregunté en esta pregunta: ¿Qué causa que Visual Studio no cargue un ensamblado incorrectamente?

Cambié mi directorio intermedio de:

%TEMP%\$(ProjectName)\$(Platform)\$(Configuration)\

a

C:\temp\$(ProjectName)\$(Platform)\$(Configuration)\

Ahora funciona.NO tengo idea de por qué.

yo tengo el mismo problema C1033: cannot open program database,

Guión

tengo dos dll padre.dll y niño.dllAcabo de adjuntar el proyecto child.dll con el depurador de Visual Studio al mismo tiempo que intento crear el proyecto parent.dll, se produce un error. C1033: cannot open program database

Solución

Detenga la depuración y finalice el proceso adjunto con el depurador. Reconstruya el proyecto

Esto me sucede constantemente si Control+Romper para cancelar una compilación (vs2015).Hay algún proceso que no se cierra correctamente.Hice un alboroto con los procesos relacionados con "Finalizar tarea" ms/vs (busque duplicados) y mi compilación funcionó nuevamente.Un reinicio probablemente también funcionaría.Al igual que pasar a gnu binutils.

Es molesto que las herramientas de desbloqueo no informen de ningún proceso que bloquee el archivo, Windows no me permite eliminarlo. .pdb pero puedo cambiarle el nombre.Supongo que dos procesos intervienen al mismo tiempo durante una compilación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top