SGen は、親アセンブリのファイル バージョンではなく、代わりに AssemblyVersion を使用しているようです。これは、厳密な名前を一定に保ち、MSI API と互換性のあるパッチを介してリリースする場合に問題になります。
たとえば、新しいデータ型が追加された場合、生成された XmlSerializers アセンブリにターゲット マシンでパッチを適用する必要があります。ただし、MSI はファイル バージョン (等しい) のみを確認し、何もしません。
ソース アセンブリからのファイル バージョンを使用するように SGen に指示する方法はありますか?
例:
ソース アセンブリ:
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("35.0.0.0")]
生成されたシリアライザー アセンブリは、ファイルおよび製品バージョンの PE ヘッダーで 2.0.0.0 を取得します。これは間違っています。
最後の手段として、生成されたアセンブリのファイル バージョンにパッチを適用することを検討しますが、少なくとも以前の .NET バージョンでは、 PE ヘッダーを含む完全なファイル。