J'ai une forme assez simple que je veux localiser (j'ai en fait pas mal de choses dans ce projet, ils ont tous le même problème). Lorsque je définis la propriété de formulaire Localizable
à true Visual Studio génère un fichier .resx
avec le nom de formulaire (comme vous vous y attendez). Le problème est cependant qu'il ajoute toutes sortes de choses au fichier .resx que rien d'autre ne peut ouvrir (par exemple WinRes, ResEx, Simple Resx Editor, Éditeur RESX etc).Visual Studio crée des fichiers Resx non valides
L'erreur que je reçois est:
fichier ResX type System.Drawing.Point, System.Drawing, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a les données à la ligne 125, position 4 ne peut pas être localisé. La ligne 127, position 5. ne peut pas être analysée.
Ligne 124 à 127 est:
<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>
Maintenant, je suis en supposant que Visual Studio ajoute ce que je puisse déplacer les boutons etc en fonction autour de la langue (je ne ai pas besoin ou si vous voulez cette capacité). Cependant, il renvoie l'erreur ci-dessus dans tous les éditeurs autres que que Visual Studio.
Les seules extensions que j'ai installé (selon l'Extension Manager) sont:
- Mettez en surbrillance toutes les occurrences de mot sélectionné
- Microsoft Ruban pour WPF (que je ne suis pas en utilisant dans ce projet)
Le gestionnaire de compléments n'affiche aucun complément.
Edit:
Après avoir creusé autour et éditer manuellement le fichier .resx
, le problème est en fait avec la ligne 124 <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
spécifiquement Version=4.0.0.0
.
Si je le mets à Version=2.0.0.0
alors tout fonctionne, à la fois dans Visual Studio, et dans tous les programmes externes. Le problème avec ceci est que si j'édite quelque chose dans Visual Studio, il le réinitialisera à Version=4.0.0.0
.
Pour l'instant, je vais définir le cadre cible à .NET Framework 3.5 Client Profile afin que Visual Studio ne remplace pas la version. Ceci est une solution de contournement et signifie que je ne peux pas utiliser les fonctionnalités .NET 4.0. Ai-je raison de deviner qu'il y a un bogue dans le .NET Framework, ou chaque éditeur .resx (y compris celui de Microsoft).
Edit 2: Il est avéré que lorsque je tentais d'utiliser l'outil de Microsoft WinRes.exe je lançais en fait le .NET Framework version 3.5, depuis le .NET Framework version 4.0 ne soit pas installé.
J'ai dû installer le SDK .NET Framework 4.0 de http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/winsdk_web.exe et j'ai ensuite pu éditer les fichiers .resx avec WinRes.exe 4.0
Avez-vous fait 'PublicKeyToken = REMOVED' OU est-ce le message d'erreur exact? Aussi le dessin est épelé mal là. – leppie
C'est moi qui tape ça. Je vais le modifier et l'ajouter. Aucun mal dans une clé publique étant là je suppose. –
@Blair McMillan: Pas le vôtre de toute façon :) – leppie