Bonjour à tous,

J'ai créé un service windows qui effectue de la copie de fichiers et qui presente un log des différents evenements (demarrage service, arret, copie ect...).

Je copie dans le log file avec ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
public static void WriteErrorLog(string Message)
        {
            StreamWriter sw = null;
            try
            {
                sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\\Logfile.txt", true);
                sw.Write(DateTime.Now.ToString() + "  >  " + Message + "\r\n");
                sw.Flush();
                sw.Close();
            }
            catch
            {
            }
 
        }
Ca fonctionne nickel.

J'ai donc cherché à localiser ce log en fonction de la culture du PC sur lequel le service est installé. j'utilise cette fonction pour determiner la culture:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
private void VerifLanguage()
        {
            culture = CultureInfo.CurrentCulture;
            Library.WriteErrorLog(culture.ToString());
 
            Assembly a = Assembly.Load("MoveFiles");
            rm = new ResourceManager("MoveFiles.Resources.Resource", a);
 
 
            if (culture.Name != "fr-FR")
             {
                System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("fr-FR");
                ci = System.Threading.Thread.CurrentThread.CurrentUICulture;       
            }
            else
            {
                System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("en-US");
                ci = System.Threading.Thread.CurrentThread.CurrentUICulture;
 
            }
 
        }
et pour ecrire mon log, un truc du genre:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 Library.WriteErrorLog(rm.GetString("StartServiceInfo", ci));
J'ai bien sur deux fichiers de ressources:
Resource.resx
Resource.en-US.resx

Le problème est que quelque soit la culture du PC, c'est toujours le fichier Resource.resx (Français) qui est utilisé....

Qu'est-ce que je fais de mal?

merci