每当我添加i18n.en.xml
或类似(只需以<culture>.xml
结尾)并编译我的项目时,该文件就会被编译为en/<Assembly>.resources.dll
,即使我只想嵌入它仅作为主要组件中的资源。
我已将构建操作设置为Embedded Resource
。
如果我将其重命名为en.i18n.xml
(确保它仍设置为Embedded Resource
),则可以正确嵌入它而无需创建额外的程序集。正确地说,我的意思是assembly.GetManifestResourceNames()
可以看到它。
我如何克服这个问题?它似乎在VS中是硬编码的,如果文件是XML并以与之关联的文化名称结束,那么它将被创建为resources.dll
。
出于测试目的,我刚刚添加了test.xml
并将其设置为嵌入式资源 - 正确嵌入。将其重命名为test.en.xml
并重新编译,它会附加到en/*.resources.dll
答案 0 :(得分:1)
这是VS的默认行为(我猜)无法覆盖。具有名称掩码Embedded Resource
的构建操作*.<culture-code>.*
的任何文件(不仅仅是XML)都将打包在sattelite程序集中。我想你最好的选择是重命名文件。