【发布时间】:2017-04-01 23:07:48
【问题描述】:
我正在尝试解决以下输出之间的 2 个差异:
- Windows 8 / Visual Studio 2015 / MSBuild 和
- Debian 8.2 / Mono 版本 4.6.2.0 / XBuild 引擎版本 14.0
这两个问题都在此示例回购中详细说明:https://github.com/DavidACL/SatelliteAssemblyCustomAttributesIssue/tree/master 该项目是一个简单的 C# / .net 4.5 应用程序,用于演示问题(包括 XBuild 输出)。
第一个问题,标题为 Mono Missing Satellite Assembly Custom Attributes and Version,我相信,已由待处理的 PR https://github.com/mono/mono/pull/3463 解决,并在此编译器错误 https://bugzilla.xamarin.com/show_bug.cgi?id=12671 中指出
但是,我找不到关于第二期的任何信息:
通过右键单击 .exe 或 .dll 并查看详细信息选项卡来查看语言属性时,MSBuild 和 XBuild 输出之间似乎存在差异。如果您有附属程序集,则会有进一步的区别。
MSBuild:正如预期的那样,主程序集具有详细选项卡语言(如果在 Visual Studio 中打开 DLL/EXE 并检查了值,则从技术上讲是块标题)= 语言中性。
同样,MSBuild de-DE 附属程序集 .dll 具有 detail-tab language = Language Neutral
组装:
卫星组装:
Mono / XBuild:主程序集有detail-tab language = Invariant Language(不变国家),de-DE 附属程序集有detail-tab language = German(德国)
组装:
卫星组装:
虽然我知道 Mono 可能使用 Invariant Langauge 代替 Neutral 作为默认值,但有没有办法扭转这种情况以实现 MSBuild 和 XBuild 之间的匹配(可能通过配置步骤)? MSBuild 不将附属程序集的语言环境传播到详细信息选项卡的语言字段,而 XBuild 这样做,是否有原因?同样,是否可以通过任何配置步骤消除这种差异?
【问题讨论】:
标签: mono assemblies culture xbuild invariantculture