Mono / XBuild Invariant Language (Invariant Culture) vs. VS2015 MSBuild 的中性语言

Mono / XBuild Invariant Language (Invariant Culture) vs. VS2015 MSBuild's Neutral Language

我正在尝试解决以下输出之间的 2 个差异:

这两个问题都在此处的示例存储库中进行了详细说明: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, and is pointed out in this Compiler bug https://bugzilla.xamarin.com/show_bug.cgi?id=12671

解决

但是,我找不到关于我的第二期的任何信息:

当 right-clicking .exe 或 .dll 查看语言 属性 并查看详细信息选项卡时,MSBuild 和 XBuild 输出之间似乎存在差异。如果你有一个卫星组件,还有一个进一步的区别。

MSBuild:正如预期的那样,主要程序集具有 detail-tab 语言(如果 DLL / EXE 在 Visual Studio 中打开,技术上会阻止 Header和检查的值)=语言中性。

同样,MSBuild de-DE 附属程序集 .dll 具有 detail-tab 语言 = 语言中性

程序集:

卫星大会:


Mono / XBuild: 主程序集有 detail-tab language = Invariant Language (Invariant Country), de-DE 卫星程序集有 detail-tab语言 = 德语(德国)

程序集:

卫星大会:

虽然我知道 Mono 可能会使用不变语言代替中性语言作为默认语言,但有什么方法可以扭转这种情况以实现 MSBuild 和 XBuild 之间的匹配(可能通过配置步骤)?为什么 MSBuild 不将附属程序集的区域设置传播到详细信息选项卡的语言字段,而 XBuild 传播它,这是有原因的吗?同样,是否可以通过任何配置步骤消除这种差异?

不要指望很快会修复复杂的 xbuild 错误,因为 MSBuild from Microsoft has already been opensourced, and the Xamarin team has already done some work 会使其跨平台(例如,它已经在 Mac 的 Mono 安装程序中提供)。

debian 开发人员(或像您这样的贡献者?)将其打包(并且 xbuild 已被弃用)只是时间问题。在此期间,您可以自己构建并尝试一下。