2

我创建了一个小型助手框架,我希望它是多语言的。所以我使用这些.resx文件进行翻译。

但是,当我的框架用于拥有自己的应用程序时,我担心卫星 dll 会变得一团糟.resx

所以我想知道避免资源地狱的最佳实践

4

1 回答 1

1

最佳做法是遵循 Microsoft 指南。因此 *.resx 文件,或者更准确地说是 Satellite Assemblies 正是您应该使用的。

然而,这种方法的问题在于您如何处理依赖关系。据我了解,您不想用其他库污染磁盘。因此,您希望您的客户只安装所需的文件而不安装其他文件。

好消息是,您可以做到这一点,并且您仍然可以使用卫星组件。您所要做的就是将程序集打包到您的 DLL 中并覆盖程序集解析事件,以便它将使用内部文件而不是在磁盘上搜索它。然而,所有的优点也是缺点。当您这样做时,您的客户将不得不安装一个文件(相当大的一个),但他们将被迫从您提供的语言中进行选择。他们将来无法删减任何内容,也无法添加其他语言。

我希望你现在明白为什么 Satellite Assembly 方法是最好的解决方案——它可以让你控制本地化过程。没有更好的处理方法,抱歉。
顺便提一句。DLL 地狱与不同客户端所需的同一库的多个版本有关。在你的情况下不会发生。当然,额外的文件意味着额外的安装程序条目,但人们创造合并模块的概念是有原因的。我不会为此担心太多,我只会提供框架作为合并模块,并让人们自己定制它,如果他们真的必须这样做的话。

于 2012-06-17T15:58:25.590 回答