C# 使用msi文件进行本地化

C# 使用msi文件进行本地化,c#,windows-installer,C#,Windows Installer,在我的应用程序中,我想支持两种语言(英语和阿拉伯语)。现在,我将帮助文件的英文版本放在某个路径中。如果我想让用户选择安装应用程序所使用的语言,并根据选择,我将在该路径中抛出相关的chm文件,该怎么办 也是Q的另一部分,我可以做一些类似的事情吗?当你安装一个应用程序时,它会询问你语言,然后它只抛出相关的exe文件?你没有告诉我你是如何在应用程序中实现本地化的。因为您是在.NET中开发的,所以我假设您有一个包含所有本地化数据的每种语言的.resx文件。那么,为什么不安装这两个帮助文件,并在资源文件中

在我的应用程序中,我想支持两种语言(英语和阿拉伯语)。现在,我将帮助文件的英文版本放在某个路径中。如果我想让用户选择安装应用程序所使用的语言,并根据选择,我将在该路径中抛出相关的chm文件,该怎么办


也是Q的另一部分,我可以做一些类似的事情吗?当你安装一个应用程序时,它会询问你语言,然后它只抛出相关的
exe
文件?

你没有告诉我你是如何在应用程序中实现本地化的。因为您是在.NET中开发的,所以我假设您有一个包含所有本地化数据的每种语言的.resx文件。那么,为什么不安装这两个帮助文件,并在资源文件中将帮助文件的路径设置为本地化字符串呢

顺便说一下,使用本地化的资源文件,您将只有一个可执行文件要安装。在加载表单期间,您可以通过相应地指定
CultureInfo.CurrentUICulture
来选择将使用哪种语言,例如基于配置设置或注册表项

关于问题的第二部分:您可以让用户选择目标语言。这将设置上述配置设置或注册表项。但是,在安装过程中更改语言不会更改MSI安装程序的UI语言(我认为不支持*)

因此,我建议您为每种语言安装一个单独的安装程序,或者使用不同的安装系统(NSIS似乎是一个不错的选择)


*)MSI可以基于为用户定义的区域设置进行设置。但是,官方不支持这种行为,实现这种行为的方法也有点复杂。

您能解释一下生成msi所使用的安装程序吗?这是一个VisualStudio安装项目还是其他什么?是的,我正在使用VisualStudio2005