/ / La localización de un formulario en el espacio de nombres anidado genera repentinamente excepciones de tiempo de ejecución - .net, visual-c ++

La localización de un formulario en el espacio de nombres anidado genera repentinamente excepciones de tiempo de ejecución: .net, visual-c ++

El formulario funcionó bien hasta que lo localicé, luego generó una excepción de tiempo de ejecución y no se encontraron recursos.

El espacio de nombres está anidado en un nivel extra desde la raíz.

namespace MyApp
{
namespace NextLevel
{

<MyForm class>

}
}

y MyApp también corresponden al nombre de la Asamblea.

Eliminando NextLevel, solo MyApp :: MyForm y funciona como antes.

Eliminando la localización y funciona también, como anidado o no.

Si tiene alguna importancia, esto es C ++ / CLI, y un ensamblaje dll.

Intenté buscar los archivos resx: agregue el .NextLevel entre la plantilla de nombre de recursos, pero el resultado es el mismo.

Mis recursos principales son neutrales (incrustados) y luego uno en inglés (que se convierte en satélite).

¿Algunas ideas?

¿Cómo se nombran los recursos internamente para que el administrador de recursos los encuentre?

Muy agradecido.

Gracias.

Respuestas

0 para la respuesta № 1

Resuelto - aquí está lo que hice.

En un sideproject obtuve exactamente el mismo problema / resultado al agregar un nivel de espacio de nombres anidado. Agregué el nivel adicional como ".NesxtLevel" en los archivos resx para hacer los nombres de los recursos correctamente.

Agregué el archivo de recursos renombrado en la entrada del vinculador como recurso administrado incorporado.

Y eso funcionó, pero sentí, ¿por qué debería ingresar manualmente cada archivo de recursos aquí?

Miré el registro de compilación y vi que / out sigue siendo referencia como / ASSEMBLYRESOURCE: el archivo de recursos es el mismo que basename para resx file más rootnamespace, no el nombre lógico con espacio de nombre adicional.

Eliminé manualmente los archivos de recursos antiguos con el mismo nombre base que el archivo resx.

Y eso lo resolvió. También podría eliminar el recurso incrustado que agregué en las opciones del enlazador.

Siempre pensé en la reconstrucción del proyecto también.Se eliminaron los archivos de recursos antiguos, pero obviamente no. Así que parece que cuando VS está creando la línea de comandos, si existe un archivo de recursos con roonamespace + resx-filename como nombre lógico, elige ese, no el creado por la configuración del compilador de recursos.

Es VS 2005, por lo que no sirve de nada hablar con MS al respecto. Solo me alegro de que se haya resuelto.