Tengo una forma bastante simple que quiero localizar (de hecho tengo bastantes en este proyecto, todos tienen el mismo problema). Cuando establezco la propiedad de formulario Localizable
en verdadero, Visual Studio genera un archivo .resx
con el nombre del formulario (como era de esperar). El problema es que agrega todo tipo de cosas al archivo .resx que nada más puede abrir (por ejemplo, WinRes, ResEx, Simple Resx Editor, RESX Editor, etc.).Visual Studio crea archivos inválidos de Resx
El error que consigo es:
ResX Tipo de archivo System.Drawing.Point, System.Drawing, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a los datos en la línea 125, la posición 4 no puede ser localizado La línea 127, posición 5. no se puede analizar.
la línea 124 a 127 es:
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="lblUsername.Location" type="System.Drawing.Point, System.Drawing">
<value>26, 24</value>
</data>
Ahora estoy asumiendo que Visual Studio es la adición de este modo que pueda mover los botones, etc alrededor dependiendo de la lengua (no necesitan o desean esta habilidad). Sin embargo, arroja el error anterior en cada editor otro que Visual Studio.
Las únicas extensiones que he instalado (de acuerdo con el administrador de extensiones) son:
- Resalte todas las apariciones de la palabra seleccionada
- Microsoft cinta para WPF (que no estoy usando en este proyecto)
Administrador de complementos no muestra complementos.
Editar:
Después de cavar alrededor y editar manualmente el archivo .resx
, el problema es en realidad con la línea 124 <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
específicamente con Version=4.0.0.0
.
Si configuro esto en Version=2.0.0.0
todo funciona, tanto en Visual Studio como en todos los programas externos. El problema con esto es que si edito algo dentro de Visual Studio, lo restableceré nuevamente al Version=4.0.0.0
.
Por el momento, voy a establecer el Marco de destino para .NET Framework 3.5 Client Profile para que Visual Studio no anule la versión. Esta es una solución y significa que no puedo usar las características de .NET 4.0.
Estoy en lo cierto al adivinar que hay un error en el .NET Framework, o en cada uno de los editores .resx (incluidos los de Microsoft).
Edición 2: Resultó que cuando yo estaba tratando de utilizar la herramienta de Microsoft WinRes.exe realidad estaba lanzando la versión de .NET Framework 3.5, ya que la versión de .NET Framework 4.0 no se instala.
Tuve que instalar .NET Framework 4.0 SDK desde http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/winsdk_web.exe y luego pude editar los archivos .resx con WinRes.exe 4.0
¿Hizo usted 'PublicKeyToken = REMOVED' O es que es el mensaje de error exacto? También el dibujo se escribe mal allí. – leppie
Ese soy yo escribiéndolo. Lo editaré y lo volveré a agregar. No supongo que dañará una clave pública. –
@Blair McMillan: No es el tuyo de todos modos :) – leppie