C# 如何从许多要生成的.resx文件中选择一个(取决于解决方案配置)?
我有一个C#WPF解决方案,它有两个.resx文件,一个用于韩语(Resource.resx),另一个用于英语(Resource.en us.resx)。如果我构建解决方案,我会得到主可执行文件加上一个额外的dll文件,其中包含en us区域性的资源。如果我运行可执行文件,它会根据它运行的文化自动选择语言C# 如何从许多要生成的.resx文件中选择一个(取决于解决方案配置)?,c#,wpf,localization,C#,Wpf,Localization,我有一个C#WPF解决方案,它有两个.resx文件,一个用于韩语(Resource.resx),另一个用于英语(Resource.en us.resx)。如果我构建解决方案,我会得到主可执行文件加上一个额外的dll文件,其中包含en us区域性的资源。如果我运行可执行文件,它会根据它运行的文化自动选择语言 但是,我希望根据我选择的解决方案配置,为每种语言构建单独的可执行文件(仅包含一种语言数据,因此无论运行的是哪种文化,都只显示一种固定语言)。我怎样才能做到这一点呢?我想你什么时候要开发这个应用
但是,我希望根据我选择的解决方案配置,为每种语言构建单独的可执行文件(仅包含一种语言数据,因此无论运行的是哪种文化,都只显示一种固定语言)。我怎样才能做到这一点呢?我想你什么时候要开发这个应用程序。 选择要从属性集“生成操作”中排除的资源文件 没有价值。
希望这能解决你的问题^_^ 我不认为分开前男友是个好主意。您可以在
app.config
中添加一个设置,您可以在其中设置区域性。如果您真的想要两个EXE,只需在您的解决方案中创建另一个类型为WPF Application
的项目。在每个项目中,可以将启动时的当前区域性设置为所需的区域性
要设置区域性,可以使用以下代码:
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en");
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(
CultureInfo.CurrentCulture.IetfLanguageTag)));
使用app.config看起来很合适。我可以为不同的解决方案配置使用不同的app.config文件吗?您所说的“解决方案配置”到底是什么意思?调试和发布?自定义解决方案配置,如“发布菜单”。您可以阅读本文: