【发布时间】:2011-11-21 06:45:05
【问题描述】:
我想让我的程序多语言。我已经通过 Form 的 Localizable 和 Language 属性成功地使程序多语言。它制作了一些 .resx 文件。然后我从 .resx 文件中删除了不需要的文件,例如图像(它们在所有语言中都是相同的)等。
问题是,例如,它还生成了一个名为“en”的文件夹,而在该文件夹中,另一个生成的文件名为“ProjectName.resources.dll”。
有没有办法将此资源文件嵌入到 .exe 中?将其添加到资源并将构建操作设置为“嵌入式资源”也不起作用。
谢谢。
【问题讨论】:
-
在发布之前我已经尝试过 ILMerge。尝试了汇编链接器,但无法使其工作。 csc.exe 由于引用而给出了一些错误,并且似乎程序集链接器导致可执行文件不使用资源 dll。
-
我不明白为什么 MS 强制重新发明轮子...
-
卫星程序集必须存储在具有区域性名称的子目录中。每个 DLL 都包含为该区域性本地化的资源。这是设计使然,试图改变它会破坏本地化。
-
奇怪的是,您可以嵌入并合并诸如 3rd 方依赖项/引用之类的所有内容,但您不能嵌入附属程序集 :( 看来,我需要构建自己的语言更改方法。 ..
标签: c# .net dll localization embedding