Pregunta

Estoy trabajando en una aplicación PocketPC en Visual Studio 2005. La solución estaba funcionando bien, y de repente se rompió. El primer error es este (suponga que el proyecto es FooPDA):

" No se puede encontrar el archivo fuente 'C: \ FooPDA \ obj \ Release \ FooPDA.exe' para el archivo 'FooPDA.exe', ubicado en '% InstallDir%', el archivo puede estar ausente o bloqueado. "

Este error es bastante confuso para mí. Está buscando el archivo que se supone que está generando. ¿Alguien tiene alguna idea de lo que podría estar mal aquí?


Editar : El proyecto se construye bien fuera del control de versión, Simplemente cambio el icono en el proyecto , y comienza a arrojar este misterioso error.

¿Fue útil?

Solución

Ver% InstallDir% en el mensaje de error puede ser una ventaja. ¿Tiene un proyecto de configuración e implementación en su solución? ¿Se construye antes de su proyecto FooPDA? Verlo en obj también es sospechoso.


OP Edit : estabas en el camino correcto, así que te daré la respuesta. Resulta que cuando haces una reconstrucción, el compilador de Visual Studio 2005 es bastante estúpido porque no se detiene cuando llega a un proyecto que no puede compilar. Simplemente sigue compilando y arrojando errores.

Esta solución particular contiene tres proyectos. Los llamaremos FooPDA, PDAComponents y Setup. Cambié el ícono en el proyecto FooPDA y la solución ya no se compilaría. El error en el que me estaba concentrando no tenía nada que ver con el problema real. Debería haberme concentrado en el error que vi cuando hice la compilación inicial, que fue:

CVTRES: error fatal CVT1103: no se puede leer el archivo

Básicamente exploté esto e inmediatamente hice una reconstrucción. Fue entonces cuando el error que publiqué llegó a la parte superior de la lista de errores y me observé. No debí haberlo sido. El error que publiqué originalmente se debió al hecho de que FooPDA no se estaba compilando, por lo que FooPDA.exe no estaba disponible cuando llegó el momento de compilar el proyecto de instalación. La razón por la que FooPDA no pudo compilarse cuando cambié el ícono se debió al hecho de que el archivo .ico que estaba tratando de agregar contenía tamaños de íconos y / o profundidades de color incompatibles . Aparentemente, el marco compacto (o la plataforma de destino, PocketPC 2003?) Solo comprende algunos de estos. El archivo .ico que estaba tratando de agregar tenía todo tipo de tamaños y profundidades de color incrustados (hasta 256x256 @ 32 bits). Miré el archivo .ico que estaba originalmente allí y tenía solo dos íconos de 48x48. Un color de 24 bits y otro de 8 bits. Abrí mi nuevo archivo .ico en un editor de iconos y lo modifiqué para que tuviera el mismo tamaño y profundidad de color que el original y todo volvió a estar bien con el mundo. La solución ahora se compila con el nuevo icono, no hay problema.

Por un lado, me siento un poco tonto por no resolver esto (finalmente le pregunté a un compañero de trabajo que había encontrado esto antes). Por otro lado, qué hace el f ** k "CVTRES: error fatal CVT1103: no se puede leer el archivo" ¿Dime? ¡Nada! ¿Qué hay de malo con " Error: icono incompatible " ;?

Otros consejos

A veces esto me sucede en las bibliotecas de clases, etc. Si la solución no se construye correctamente, nunca llega al punto donde genera el archivo .exe.

¿Puede compilar sin ejecutar el proyecto, u obtiene el mismo error cuando solo intenta compilar también?

Si puedes, intentaría arreglar cualquier error de compilación y reconstruirlo.

Cierre Visual Studio. Limpia tu solución. Cree su solución nuevamente.

¿Aparece el mensaje nuevamente?

En algún momento VS bloquea algún archivo al compilarlo, podría estar bloqueado desde una compilación anterior.

  
    

" No se puede encontrar el archivo fuente 'C: \ FooPDA \ obj \ Release \ FooPDA.exe'

  

Está intentando crear el archivo C: \ FooPDA \ bin \ Release \ FooPDA.exe.

C: \ FooPDA \ obj \ Release \ FooPDA.exe es un archivo (ok, prácticamente el único) que usa para crearlo (principalmente copiándolo).

Parece que, por alguna otra razón, la compilación falló (error de sintaxis, etc.), pero de alguna manera el resto del proceso de compilación no recibió la palabra y continuó.

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