可执行文件改名后WPF应用本地化失效问题及解决
重命名WPF可执行文件后本地化失效的解决方法
问题背景
我有一个名为Install.exe的WPF应用,主命名空间为InstallNameSpace,已配置英文、中文和日文的.resx资源文件。项目构建完成后,bin目录包含Install.exe,以及三个以语言命名的子文件夹,每个文件夹内有对应的资源dll。启动应用后切换语言,UI能正常更新为对应语言的字符串。
将Install.exe复制并重命名为Uninstall.exe后,启动应用无法显示本地化字符串,始终显示默认英文。尝试将子文件夹中的三个资源dll都重命名为Uninstall.resources.dll(与新的应用名称匹配),但本地化功能仍未生效。
解决方案
无需修改资源dll的名称,保持原有的Install.resources.dll即可。
原因是:可执行文件的外部显示名称不影响应用内部的程序集识别逻辑,程序依然会以原程序集名称(对应Install.exe的程序集)去查找名为Install.resources.dll的资源文件,因此直接重命名主exe文件,保留原资源dll的名称和目录结构,就能正常使用本地化功能。
内容的提问来源于stack exchange,提问作者The King
相关产品推荐
相关产品推荐

