.NET程序集文化(Culture)

10

如何在C#应用程序中更改汇编语言?在使用时存在问题。

[assembly:AssemblyCulture("en-US")]

出现了一个错误:

发出'System.Reflection.AssemblyCultureAttribute'属性时出错--“可执行文件不能是卫星程序集,Culture应始终为空”


3
我建议将标题改为“.NET程序集文化”,因为汇编语言(比如x86或ARM汇编)与.NET中的任何属性完全不同。 - Adam Mihalcin
2个回答

13
你应该使用
[assembly: AssemblyCulture("")] 

按照编译器的建议。

要定义默认文化,应该使用

[assembly: NeutralResourcesLanguage("en-US")]

1
语言仍为“语言中性”,没有更改。 - abhi294074
1
一个.NET可执行文件应该像这样,显示在属性对话框中的“语言中性”。http://msdn.microsoft.com/en-us/magazine/cc163609.aspx - Lex Li
之前的链接已经被移动到了一个 .chm 文件下载中。2006年5月MSDN杂志 - Brad Knowles
帮我弄清楚为什么要提供它,如果它打算保持空白。 - Hitesh P
1
@Hitsa00 当生成卫星程序集时,该字段用于指定它们的文化。对于主程序集,此字段只需要保持为空即可。 - Lex Li

1

来自文档

此属性用于编译器区分主程序集和卫星程序集。主程序集包含代码和中性区域的资源,而卫星程序集仅包含特定区域设置的资源,例如[assembly:AssemblyCultureAttribute("de")]。将此属性放在程序集上并使用非空字符串("")作为区域名称将使该程序集看起来像是卫星程序集,而不是包含可执行代码的主程序集。将此属性标记传统代码库将会破坏它,因为其他代码将无法在运行时找到库的入口点。

总之:此属性由框架内部用于标记卫星程序集,在向项目添加本地化资源时自动创建。您可能永远不需要手动将此属性设置为除""以外的任何值。

ref: https://dev59.com/C2s05IYBdhLWcg3wLO6Q


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接