0

Application ASP.NET avec cadre CSLA; Visual Studio 2008My.Resources dans la bibliothèque de classes ne se comporte pas comme prévu lors du déploiement

J'ai une bibliothèque de classe d'objets métier. Je stocke les chaînes de règles brisées dans le fichier de ressources associé au projet (Mes projets> Resources.resx). J'ai ajouté un nouveau fichier resx au projet et je l'ai nommé Resources.fr-CA.resx pour stocker les équivalents français des règles.

J'appelle les chaînes avec les My.Resources objet, comme celui-ci:

e.description = My.Resources.BrokenRulesString 

Cela fonctionne comme un charme quand je lance l'application localement (à savoir frapper « jeu » dans Visual Studio). Cependant, lorsque je compile et déploie l'application dans un autre environnement, les valeurs sont toujours dans le fichier de ressources par défaut.

Même si je mets explicitement la culture à « fr-CA » dans le fichier Resources.Designer.vb, comme celui-ci, la propriété renvoie la chaîne à partir du fichier de ressources par défaut:

Public ReadOnly Property BrokenRulesString() As String 
    Get 
     Return ResourceManager.GetString("BrokenRulesString", "fr-CA") 
    End Get 
End Property 

Il semble moi comme l'application ne peut pas voir le fichier de ressources fr-CA donc par défaut le fichier par défaut. Des conseils pour que cela fonctionne?

Merci.

Répondre

1

Vous devez vous assurer que l'assembly satellite contenant vos chaînes localisées est déployé dans la structure de répertoire correcte. Voir l'article MSDN this pour plus de détails.

de l'article:

After you have compiled your satellite assemblies, they all have the same name. The runtime differentiates between them based upon the culture specified at compile time with Al.exe's /culture option and by each assembly's directory location. You must place your satellite assemblies in expected directory locations.

+0

Merci pour le conseil. J'ai utilisé Al.exe pour créer MyApp.Business.Library.resources.dll et l'ai placé dans le dossier C: \ Inetpub \ wwwroot \ MyApp \ bin \ fr-CA de l'application déployée. Cependant, je ne reçois toujours que le fichier de ressources par défaut (anglais). Pouvez-vous penser à un détail que je pourrais manquer? – user254402

+0

Maintenant que j'ai regardé dans cette direction, je vois que MyApp.Business.Library.resources.dll a été créé tout le temps, situé dans le dossier bin/fr-CA de la bibliothèque de classes en question. Donc, mon problème n'est pas de créer la DLL mais de la déployer dans le cadre du package MSI. Pouvez-vous suggérer quelque chose à cet égard? Merci. – user254402

0

En fin de compte, il est descendu au fait que je ne l'avais pas ajouté la sortie du projet Groupe d'(ressources localisées) pour le projet Business.Library au projet d'installation. Je l'ai ajouté au dossier bin et maintenant l'application déployée fonctionne aussi comme un charme. Oded, merci d'avoir fait pointer ma tête dans la bonne direction. À votre santé!

Questions connexes