1

Windows PE(ポータブル実行可能)ファイルには、ファイルの[詳細]タブの[プロパティ]ダイアログに表示されるメタデータが含まれています。そこには任意のメタデータが表示される可能性があります。

私がやりたいのは、私が構築したC#クラスライブラリにメタデータの一部を追加することです。その値は、プロジェクトが構築されたgitリポジトリHEADからのコミットIDです。CLRを使用してgitcommitidAssemblyVersionAttributeを設定することはできません。これは、CLRではそれが標準a.b.c.dバージョン形式で表示される必要があるためです。さらに、理想的にはユーザーにとって意味のあるバージョン番号をそこに保持したいのですが、実際のP​​Eファイルを指定して、それを再作成できるコミットIDを常に検索する方法があります。

それを行うためのマネージAPIがある場合は、はるかに優れていますが、これを実行するためにP/Invokeを使用します。

4

2 に答える 2

1

[詳細] タブの情報はVERSIONINFOリソースから取得されますが、.NET の世界からどのようにアクセスするのかわかりません...

于 2009-12-28T14:26:31.107 に答える
1

ああ!AssemblyInformationalVersionAttribute上記のダイアログの「詳細」タブに「製品バージョン」の値として表示される任意の文字列を指定できる を発見しました。これはまさに私が必要としているもののようです。

于 2009-12-28T14:40:39.800 に答える