我正在开发一个项目,稍后将本地化字符串插入到实时 ASP.NET (MVC4) 站点/应用程序中。我们计划实现这一点(用于验证消息等)的方式是从客户端获取字符串,将它们放入 .resx 文件中,将此 .resx 文件编译为 .resources 文件,然后编译为 .dll。最后,这个 .dll 被放置在现场网站的相关语言文件夹中。但是,此手动创建的 .dll 不会被应用程序拾取。相反,它回退到默认语言 .dll。另一方面,如果 .resx 文件是通过 Visual Studio (2012) 编译的,那么 .dll 会被应用程序愉快地拾取,并显示其中的本地化文本。
我猜问题在于我手动创建 .dll 的方式,尽管我找不到任何问题。这是我在命令行控制台中运行的内容:
resgen Strings.fr-FR.resx Strings.fr-FR.resources
然后,
al /t:lib /culture:fr-FR /embed:Strings.fr-FR.resources /out:MyApplication.resources.dll