Problème d'intégration de fichier resources

Discussion générale Problème d'intégration de fichier resources

  • samedi 7 janvier 2012 18:39
     
      A du code

    Bonjour à tous j'ai un problème avec les resources de mon application.



    J'ai récemment changé mon projet de nom, via les options puis ensuite changé toutes les références de tous mes fichiers, c'est surement une erreur je vous l'accorde mais il est dur de revenir en arrière, je ne sais pas si c'est ça qui pose le problème ou pas.

    Mon projet s'appelait avant B2011, et maintenant B2012.
    Sauf que visiblement j'ai un problème au niveau du fichier ressources, quand je passe en version release sur certains PC j'ai un problème il n'arrive pas à charger les fichiers de langue. et je me retrouve donc avec que des cases vides, il doit manquer des fichiers donc.

    Pour charger les fichiers de langue (Form1.fr-FR.rsx et Form1.en-US.rsx) j'utilise ce code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    try
                {
     
                    var config_lang = B2012.Properties.Settings.Default.paramCurrentUICulture;
                    //this.accueil_text.Text = System.Convert.ToString(config_lang);
                    if (config_lang == null)
                    {
                        B2012.Properties.Settings.Default.paramCurrentUICulture = new CultureInfo("fr-FR");
                        B2012.Properties.Settings.Default.Save();
                    }
                    System.Threading.Thread.CurrentThread.CurrentUICulture = B2012.Properties.Settings.Default.paramCurrentUICulture;
                    RM = new System.Resources.ResourceManager("B2012.B2012", typeof(frmSaisiesBoutons).Assembly);
                }
                catch(Exception Pb)
                {
                    CultureInfo inf = new CultureInfo("fr-FR", false);
                    System.Threading.Thread.CurrentThread.CurrentUICulture = inf;
                    RM = new System.Resources.ResourceManager("B2012.B2012", typeof(frmSaisiesBoutons).Assembly);
                    DialogResult erreur = MessageBox.Show("Probleme pour charger la langue" + Pb.Message);
                }

    (je ne sais pas si le problème vient de là, en tout cas il ne m'affiche pas d'erreur).


    Avant j'utilisais B2012.frmSaisiesBoutons mais ça ne fonctionnait pas en mode release au contraire de B2012.B2012.

     

    Après dans mon code j'utilise RM.Getstring("CODE"); pour récupérer le texte.

     

    Tout fonctionne à la perfection sur mon ordinateur mais j'ai un problème (sur certains ordinateurs) lorsque je la déploie :
    "MyHandler caught : Impossible de trouver des ressources appropriées pour la culture spécifiée ou la culture neutre. Assurez-vous que "B2012.B2012.resources" a été incorporé ou lié dans l'assembly B2012 au moment de la compilation ou que tous les assembly satellites requis sont chargeables et complétement signés"

    StackTrace :



    J'espère avoir énoncé suffisamment mon problème, vous me sauveriez la vie.

    De plus je n'ai rien changé et le message n'apparait pas tout le temps, mais les champs sont vides alors que la culture est bonne.


    C'est vrai qu'après avoir regardé le dossier release les dll ressources des langues semblent bien petits (200 ko) par rapport au nombre de mots... Comment faire pour les regénérer? C'est peut etre normal.

    Sur un des deux ordinateurs j'ai l'erreur du message ci-dessus (avec B2012.B2012 au lieu de B2012.resource). Sur l'autre j'ai rien, mais le fichier ne se charge pas.


    Il n'y a pas moyen de spécifier le fichier manuellement via son nom ? plutot que de passer par B2012.B2012 ou autre?

    Merci

Toutes les réponses