2010-04-09 12 views
0

J'essaie d'ajouter le support de la globalisation à mon application C#. Selon MSDN, il doit y avoir un fichier de ressources incorporé pour la culture neutre et les DLL satellites avec des fichiers de ressources pour d'autres cultures.VS 2008 ne comprend pas les fichiers .resource

J'ai créé 2 DLL satellites sans aucun problème et j'ai demandé à mon application de charger automatiquement celle-ci en utilisant ResourceManager. Mais je ne peux pas incorporer le fichier de ressources de culture neutre par défaut dans mon exécutable. Lorsque je supprime toutes les DLL satellites ou que je place la culture dans une culture pour laquelle je n'ai pas de DLL par satellite, je reçois l'exception "Impossible de trouver des ressources appropriées pour la culture spécifiée ou la culture neutre". lorsque l'application tente de créer ResourceManager.

Il semble que VS 2008 n'inclue pas mon fichier .resource dans l'assembly principal. J'ai essayé différentes manières d'incorporer le fichier de ressources: le compiler par resgen.exe à partir d'un fichier texte et l'ajouter au projet; changer son nom pour ajouter une deuxième extension .resources; créer un fichier .resx avec le même nom; etc. Et je ne vois toujours pas la façon d'obtenir le fichier de ressources intégré et utilisé par ResourceManager - Je suis la même exception. Quelle est la bonne façon d'ajouter un fichier de ressources de culture neutre par défaut à l'application dans VS 2008?

Répondre

1

Ok, je l'ai résolu ce problème par un petit «hack».

J'ai compilé le fichier de ressources en utilisant resgen.exe, comme décrit dans MSDN, puis l'ai ajouté au projet, l'ai renommé en "ressources" et modifié l'action de construction de "None" à "Embedded resource".

On dirait que VS 2008 ajoute "." comme préfixe au nom du fichier de ressources. Donc, si vous nommez votre fichier de ressources ".resources", cela ne fonctionnera pas car VS le nommera "..resources".

0

dans .Net les fichiers de ressources utilisent l'extension .resx. Pour avoir « intégré » dans votre projet, assurez-vous que l'outil « sur mesure » dans la page de propriétés du fichier .resx utilise le « ResXCodeGenerator »

Hope this helps,

+0

Il y a un fichier .resx dans mon projet, mais ResourceManager ne veut pas l'utiliser :( – mephisto123