同一项目的两个设置(visual studio 2008,c#)

同一项目的两个设置(visual studio 2008,c#),c#,visual-studio-2008,setup-deployment,C#,Visual Studio 2008,Setup Deployment,我有一个用C#编写的Visual Studio项目 我想有两个不同的设置不同的语言。例如,步骤的setup en为英语,步骤的setup es为西班牙语安装程序 我希望该项目将根据设置而建立。也就是说,如果我构建setup en,我希望它在我的项目中进行检查,并为用户界面使用英语和西班牙语构建项目 有什么办法来处理这个问题吗?希望我说得够清楚。我想您可以通过存储标签名称、按钮文本等来做到这一点,。。。在xml文件中,针对每种语言。当您选择语言时,将加载所选语言的值。我认为这不可能仅在设置中完成

我有一个用C#编写的Visual Studio项目

我想有两个不同的设置不同的语言。例如,步骤的
setup en
为英语,步骤的
setup es
为西班牙语安装程序

我希望该项目将根据设置而建立。也就是说,如果我构建
setup en
,我希望它在我的项目中进行检查,并为用户界面使用英语和西班牙语构建项目


有什么办法来处理这个问题吗?希望我说得够清楚。

我想您可以通过存储标签名称、按钮文本等来做到这一点,。。。在xml文件中,针对每种语言。当您选择语言时,将加载所选语言的值。

我认为这不可能仅在设置中完成

您可以将所有文本放入一个单独的文件中,并将英语版本添加到英语程序中,将西班牙语添加到西班牙语程序中

但是,这不会影响按钮等(除非您让每个按钮都查看此文件)


我想最好的方法是将(可视)代码和表单分为两个版本,并在显示之前检查所选语言。但这是在实际程序中完成的,而不是在设置中完成的。

在项目启动时执行操作,如下所示:

public void GetSettings()
    {
        string fileName = "./Names.xml";

        if (File.Exists(fileName))
        {
            XmlTextReader xml = new XmlTextReader(fileName);

            while (xml.Read())
            {
                if (xml.Name.Equals("pgsql"))
                {
                    try
                    {
                        button2.Text = xml.GetAttribute("button2");
                        button3.Text = xml.GetAttribute("button3");
                        button4.Text = xml.GetAttribute("button4");
                        button5.Text = xml.GetAttribute("button5");
                    }
                    catch (Exception)
                    {
                        throw new Exception("Settings: Failed to get all settings");
                    }
                }
            }
        }
        else
        {
            throw new Exception("Settings: pgsql.xml not found!");
        }
    }
此示例基于项目中包含的文件Names.xml。制作一些语言文件夹,并将Names.xml文件包含在这些文件夹中

要进行设置,请使用HM nis编辑器,位于。 运行此程序时,请插入文件名设置,然后选择所有DLL和.EXE文件。还包括English-Names.xml文件夹/map
我希望这对您有用

Visual Studio安装项目不支持这一点。只能使用支持为每种语言生成单独包的设置编写工具来完成

您可以在此处找到安装工具列表:

提供本地化的主要是商业化的。本地化安装程序不是一个简单的功能,这就是为什么它没有包含在VisualStudio中