用vs2005建了一个winform的工程, 在工程里添加了资源文件(包括好几个国家)存储字符串资源. 在显示的时候,发现de的资源取不出来. 用vs2003建了一个同样的工程,却没有问题. 请问是怎么回事呢?目录结构:
Form1.cs
welcome.resx
welcome.ar.resx
welcome.en.resx
welcome.fr.resx
welcome.de.resx工程默认命名空间(即资源文件命名空间)是LanguageResoure, 下面是主要代码
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private ResourceManager resource;        private void Form1_Load(object sender, EventArgs e)
        {
            resource = new ResourceManager("LanguageResoure.welcome", Assembly.GetExecutingAssembly());
            comboBox1.Items.Clear();
            comboBox1.Items.Add("en");
            comboBox1.Items.Add("fr");
            comboBox1.Items.Add("ar");
            comboBox1.Items.Add("de");
        }        private void button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(comboBox1.Text))
            {
                MessageBox.Show("please choose a country");
                return;
            }
            CultureInfo ci = new CultureInfo(comboBox1.Text);
            label1.Text = resource.GetString("GoodMorning", ci);
            label2.Text = resource.GetString("GoodAfternoon", ci);
        }
    }
每个资源文件都存储了GoodMorning和GoodAfternoon两个字符串资源, 当然值不相同. 选择的时候, 显示的是welcome.resx里存的值, 这是因为取不到welcome.de.resx里的资源, 所以回退到默认资源文件.
在vs2003下没有这个问题, 有知道为什么的兄弟吗?

解决方案 »

  1.   

    没做过 帮你 UP UP UP UP
      

  2.   

    没有错误提示, 如果删掉welcome.resx就有了, 找不到资源之类的.
      

  3.   

    每个资源文件的类里面都自己定义了一个ResourceManager,你看一下它自己定义在内部的这个ResourceManager是如何作的,我感觉它只给你记载了一个Resource文件进来,可能你需要在
    CultureInfo ci = new CultureInfo(comboBox1.Text);
    之前从新给ResourceManager指定一下它的Type参数
      

  4.   

    多谢楼上的, 这里ResourceManager的用法似无误, 采取同样的手法, 其他国家的都没问题.
      

  5.   

    welcome.de.resx...重新建立一下试试?.... 好怪异..
      

  6.   

    没做过 帮你 UP UP UP UPUP UP UP UPUP UP UP UPUP UP UP UPUP UP UP UPUP UP UP UPUP UP UP UP
      

  7.   

    这个welcome.de.resx已经删除重新建立过多次了. 还是不行.
      

  8.   

    可以的话你把你的程序发过来,我帮你调下[email protected]
      

  9.   

    可以的话你把你的程序发过来,我也看看[email protected]
      

  10.   

    又发了一遍, hotmail的邮箱可能是慢一点.
      

  11.   

    UP,
    那应该是VS2003与2005版本对某些组件的兼容性问题.
      

  12.   

    如楼上所言, 那也不应该只针对某个国家的. 感觉不会是bug(希望如此).
      

  13.   

    还没收到,发我[email protected]吧,hotmail的邮箱真是慢啊...
      

  14.   

    German - Germany
     de-de
     
     
    German - Austria
     de-at
     
     
    German - Liechtenstein
     de-li
      
     
    German - Luxembourg
     de-lu
       
    German - Switzerland
     de-ch
     http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/882ca1eb-81b6-4a73-839d-154c6440bf70.asp
      

  15.   

    按msdn说法, de是German的'two letter iso name',
    de LCID: 7
    de-DE LCID:1031
      

  16.   

    lostowner和wuyazhe,  两位, 有结果没?
      

  17.   

    UP 一下 等待结果 
    MARK JF ~
      

  18.   

    不是吧. 我用msn给你传好了
      

  19.   

    问题还没找到, 但对de的在本机有办法解决, 感谢lostowner() 的帮助.