2011-12-21 1095 views
17

Obtenga el siguiente error al vincular mi proyecto en Delphi XE2. La recreación del archivo .dproj no ayuda.DCC Sugerencia: H2161 Advertencia: recurso duplicado: tipo 24 (definido por el usuario), ID 1; Recurso de archivo ... guardado; archivo ... recurso de WindowsXP.res descartado

[DCC Hint] H2161 Warning: Duplicate resource: Type 24 (user-defined), ID 1; File resource <filename>.res kept; file c:\program files\embarcadero\rad studio\9.0\lib\Win32\release\WindowsXP.res resource discarded.

Cómo solucionarlo? ¡Gracias por la ayuda!

+0

Solo una nota: he notado que desde al menos D2010 (posiblemente D2009 arriba), la memoria caché IDE a veces se interpone en el camino y puede obtener advertencias duplicadas de recursos en las compilaciones. Haz una construcción y se han ido. Así que hoy en día cada vez que veo una advertencia de recurso duplicado, primero hago una compilación y solo comienzo a buscar si eso no lo despeja. –

Respuesta

19

Tiene más de un manifiesto de aplicación vinculado a la aplicación. Solo puede haber uno y algunos deben descartarse. Las versiones modernas de Delphi vinculan un manifiesto por defecto en función de la opción de proyecto "Temas de tiempo de ejecución". Posiblemente tengas vinculado otro manifiesto, quizás fechando desde que desarrollaste el proyecto en una versión anterior de Delphi. ¿Está utilizando el componente TXPManifest por casualidad?

Puede eliminar el manifiesto que está vinculando explícitamente. O puede desactivar la configuración de temas de tiempo de ejecución y conservar el manifiesto explícito. De esta manera, tienes el control del manifiesto. Personalmente, así es como lo hago porque necesito tener control sobre lo que se incluye exactamente en el manifiesto.

+0

Gracias. Pero no se selecciona ningún tema de tiempo de ejecución. He intentado eliminar el XPManifest en el formulario principal, todavía existe el error :( – Dmitry

+0

¡Tiene que haber otro manifiesto en alguna parte! Se trata de buscarlo. –

+0

Buscar por cadena 'TXPManifest' no muestra resultados en todos los componentes y archivos del proyecto. – Dmitry

-2

Quitar {$R *.res} de la fuente del proyecto ayuda. {$R *.res} está restringido en Delphi XE2?

+0

Eso no suena como la respuesta. Sería mejor utilizar la opción de temas de tiempo de ejecución en las opciones del proyecto si desea influir en el recurso principal de la aplicación. Busque la unidad xpman como rob sugirió. –

+0

Eliminando {$ R *.res} puede tener el efecto "como resuelto" si ha incluido un manifiesto en su archivo RC/RES personalizado. Es mejor eliminar el manifiesto del archivo RES personalizado en lugar de eliminar toda la referencia RES. –

6

Tuve el mismo problema y llegué a esta página a través de Google.

Eliminando XPMan de la cláusula uses lo corrigió.

Encontrado el culpable a través de "buscar en los archivos" con el término de búsqueda "xpman". Gracias por Rob Kennedy por sugerir esto en el comentario a la respuesta de David.

+0

Lo mismo aquí con las muestras que vinieron con Delphi Tokyo. Tienen XPMan en la lista de usos; si desmarca 'Habilitar temas de tiempo de ejecución', se volverá a verificar para usted ;-) –

Cuestiones relacionadas