2010-09-23 7 views
8

extraño problema, se inició con la migración a Visual Studio 2010.VS diseñador reemplaza cadenas "vacíos" con identificador de recurso que apunta a cadenas vacías

Algunas formas, al abrirse, tendrá propiedades de algunos objetos establecen en una cadena que es vacío en el archivo de recursos. La mayoría de las veces estas son propiedades de control como ImageKey, ToolTipText y para UltraGrid algunas columnas obtienen columnX.Header.Caption en esa cadena. Obviamente, esto eliminará imágenes establecidas y dará textos de encabezado de columna incorrectos en otras configuraciones regionales. Además, la información sobre herramientas aparecerá en lugares extraños (como el cuerpo del panel de pestañas).

Este string (strSaveInterestDetails8 a continuación) está vacío en Strings.resx (<value />), pero no está vacío en Strings.fi.resx. Cuando cambié esta cadena para tener un espacio, el diseñador comenzó a usar otra cadena "vacía" de Strings.resx ..

Todos estos formularios derivan de una base común, pero no tiene nada especial/sospechoso. La depuración de estas instancias devenv adicionales falló, ya que el depurador nunca se rompió en los puntos de interrupción establecidos (se detectaron excepciones lanzadas en el código VS interno).

ejemplo:

ultraGridColumn23.Header.Caption = global::Company.Module.Properties.Strings.strSaveInterestDetails8; 
... 
this._timespanCheck.ImageKey = global::Company.Module.Properties.Strings.strSaveInterestDetails8; 
... 
this.tabPage1.ImageKey = global::Company.Module.Properties.Strings.strSaveInterestDetails8; 
this.tabPage1.ToolTipText = global::Company.Module.Properties.Strings.strSaveInterestDetails8; 

Así que alguien ha topado con algo similar o tiene mejor google-fu?

+0

¿Cómo se ve el código original? ¿Estás usando '" "' o 'string.Empty'? – Oded

+0

Anteriormente no estaban configurados (al menos ImageKey/ToolTipText). –

+0

Me pasó a mí también, en mi caso, eliminé las cadenas vacías (y obligué a VS a identificar el cambio). ¿Podría eliminar las cadenas vacías o hacer que no estén vacías? –

Respuesta

0

Creo que this will work para usted. Verifique la solución aceptada.

O tal vez this.

+1

Esto no es relevante en este caso. La aplicación tiene varios cientos de formularios. La migración a gran escala a otro tipo de localización es altamente improbable. –

2

Estoy teniendo el mismo problema, pero con VS2008. Sin embargo, una versión VS2010 Web Developer Express también está instalada en mi sistema (desde hace un par de meses). Primero, estaba desarrollando un proyecto que usa recursos de múltiples idiomas y luego abrí otra solución VS para cambiar algo en un formulario. El Diseñador de Windows Forms reemplazó todas las cadenas vacías en el archivo Designer.vb con un identificador de recurso de cadena del primer proyecto.
Pude resolver el problema cerrando Visual Studio y volviendo a abrir la solución.

2

En nuestra experiencia, esto suele ser un error causado por la presencia de la cadena de texto < valor/> en el xml de un resx. Cuando edita y guarda el diseñador de formularios, todas las cadenas vacías "" en el archivo del diseñador se asignan a la clave asociada con este nodo autolimitador.

Tesis espurias < valor/> veces aparecen entradas si comienza a construir un proyecto mientras el editor de recursos todavía tiene el cursor parpadeante en la línea 'nueva fila', y no hay texto asociado con la tecla.

Busque en el proyecto < valor/> y elimínelos de los archivos resx. A continuación, limpie y vuelva a generar el proyecto, (que fallará), luego corrija los errores de compilación reemplazándolos por ""

Espero que esto ayude.

+0

Esto es interesante. Lo intentaré (más tarde), gracias! –

Cuestiones relacionadas