Visual Studio 2010 ne génère pas de code de concepteur Resource (Resx) si le fichier est localisé
Je viens de trouver le plus étrange comportement dans Visual Studio 2010, tout en travaillant avec Resx fichiers de ressources et j'ai juste ne peut pas envelopper la tête autour de lui.
Le problème est comme suit: Visual Studio ne générera pas de la designer.cs
de fichier pour un fichier de ressources avec un nom localisé (comme resource.fr.resx
), mais il fonctionne très bien pour d'autres fichiers avec des noms simples (comme resource.resx
).
Voici un aperçu de mon projet visual studio setup:
Comme vous pouvez le voir j'ai juste fait un test simple avec 3 fichiers de ressources:
- test.resx
- test2.resx
- test.fr.resx
La designer.cs
fichiers pour test.resx
et test2.resx
sont générés à l'amende juste. Cependant test.fr.designer.cs
est créé, mais toujours vide, peu importe ce que je fais.
J'ai le double et le triple vérifié: la propriété outil personnalisé est correctement défini pour le fichier localisé. Toutes les propriétés sont exactement les mêmes dans tous les fichiers (je suis en utilisant PublicResxFileCodeGenerator
mais j'obtiens le même comportement si j'ai mis modificateur d'accès à l'interne et à l'utilisation ResxFileCodeGenerator
).
Remarque: j'ai remarqué que lors de la création d'un fichier de ressources, Visual Studio, normalement, par défaut le modificateur d'accès à "Interne". Cependant, lors de la création d'un fichier de ressources localisé (resource.fr.resx
) la valeur par défaut est "Pas de génération de code". Juste trouvé cela intéressant de noter car il s'avère que visual Studio est le traitement le fichier localisé de manière différente pour une raison quelconque.
--> il y a une chose qui me manque ici? Je vous serais reconnaissant si quelqu'un a des conseils sur le sujet, c'est me rend fou.
source d'informationauteur Aerendel
Vous devez vous connecter pour publier un commentaire.
Alors que je n'ai pas examiné cette question en particulier, j'ai eu de nombreux autres problèmes ".resx" des fichiers. Visual Studio est parfois buggy (manipulation ".resx" fichiers parmi d'autres choses), et je suis officiellement rapporté certains de ces MSFT (puisqu'il influe sur mon propre commerciales programme de localisation). Dans tous les cas, vous ne devriez pas normalement être en nommant les choses de cette façon. Il a effectivement enfreint MSFT de règles de localisation. Par défaut les fichiers de langue ne devrait normalement pas avoir intégré le code de langue, et il pourrait s'étouffer sur elle pour cette raison. J'aurais besoin d'enquêter, mais ce que vous devez faire, c'est créer ".resx", qui est "un Concepteur.cs de fichier", puis "Test.fr.resx", ce qui ne l'est pas. Tous langue par défaut des chaînes sont alors placés dans des "Test.resx" et le correspondant français de chaînes de Test.fr.resx". Dans le code, vous devrez vous rendre dans la fortement typé nom "Test.Le concepteur.cs", et la chaîne que vous obtenez en retour est la langue par défaut de la chaîne, sauf si vous définissez "du Système.Le filetage.Fil de discussion.CurrentThread.CurrentUICulture" à "fr". Vous pourrez alors récupérer la version française de la chaîne "Test.fr.resx", à moins qu'il ne s'y trouve pas (il n'y a pas de traduction), dans ce cas, vous obtiendrez la chaîne de secours de "Test.resx" (c'est à dire, la langue par défaut de la chaîne). De cette façon, le hub-and-spoke modèle fonctionne en gros.