2

次の出力間の2つの不一致を解決しようとしています:

  • Windows 8 / Visual Studio 2015 / MSBuild および
  • Debian 8.2 / Mono バージョン 4.6.2.0 / XBuild エンジン バージョン 14.0

これらの問題は両方とも、こちらのサンプル リポジトリで詳しく説明されています

というタイトルの最初の問題は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

ただし、2 番目の問題に関する情報が見つかりません。

.exe または .dll を右クリックして詳細タブを表示して言語プロパティを表示すると、MSBuild と XBuild の出力に違いがあるように見えます。サテライト アセンブリがある場合は、さらに違いがあります。

MSBuild : 予想どおり、メイン アセンブリには詳細タブ言語 (技術的には、DLL/EXE が Visual Studio で開かれ、値が検査された場合のブロック ヘッダー) = 言語ニュートラルがあります。

同様に、MSBuild de-DE サテライト アセンブリ .dll には、detail-tab language = Language Neutral があります。

組み立て:

ここに画像の説明を入力

サテライト アセンブリ:

ここに画像の説明を入力


Mono / XBuild : メイン アセンブリの詳細タブ言語 = 不変言語 (不変の国)、de-DE サテライト アセンブリの詳細タブ言語 = ドイツ語 (ドイツ)

組み立て:

ここに画像の説明を入力

サテライト アセンブリ:

ここに画像の説明を入力

Mono がデフォルトとして Neutral の代わりに Invariant Langauge を使用する可能性があることは理解していますが、これを逆にして MSBuild と XBuild を一致させる方法はありますか (おそらく構成手順を介して)。MSBuild がサテライト アセンブリのロケールを [詳細] タブの言語フィールドに伝達しないのに、XBuild が伝達しない理由はありますか? 繰り返しますが、この違いは構成ステップで解消できますか?

4

1 に答える 1

1

Microsoft のMSBuildは既にオープンソース化されており、Xamarin チームはクロスプラットフォームにするための作業を既に行っているため (たとえば、Mac 用の Mono インストーラー内で既に出荷されているなど) 、複雑な xbuild バグ修正がすぐに提供されるとは思わないでください。

debian 開発者 (またはあなたのような貢献者?) がそれをパッケージ化する (そして xbuild が非推奨になる) のは時間の問題です。それまでの間、自分でビルドして試すことができます。

于 2016-11-26T05:36:39.950 に答える