ここでの主な問題は、FileVersion
属性がCSV-listの一部であり、プロパティーではありませんが、プロパティー自体ではありません。
だから、私に見られている解決策は次のとおりです。
- は、key = valueのペアにの
- 変更値を
VersInfo_Keys
プロパティ(CSV-リスト)
- スプリットそれを取るファイルバージョン= ...ペア
- リストに戻ると、CSV-listに戻ります。
私はMSBuild Inline Task(NB:.NET Frameworkの4.0以降を使用する必要があります):でimplementedこれをしました
- 私の中
lib\MSBuildTasks\Delphi.VersionInfo.targets
ファイル(gitのサブモジュールに(上記気づい)要旨を入れてケース)
Delphiのプロジェクトファイル(たとえばdelphi-project.dproj
)に追加:
<Import Project="lib\MSBuildTasks\Delphi.VersionInfo.targets" Condition="$(FileVersion)!='' and Exists('lib\MSBuildTasks\Delphi.VersionInfo.targets')"/>
条件「FILEVER Delphiで失敗するのを避けるためです。後者はインラインタスクをサポートしていない.NET 3.5を使用するためです(FileVersionはMSBuildで実行する場合のみ設定されます)。
実行
msbuild delphi-project.dproj /t:build /p:FileVersion=A.B.C.D
私は(デルファイXE7/10シアトルで)Androidアプリのために使用するのと同じ。 FileVersion
ではなく、VersionName
とVersionCode
が使用されます(N.B. Import
の条件が適切に変更されています)。
msbuild delphi-project.dproj /t:build /p:VersionName=A.B.C.D
私は、ビルド前のイベントとして実行され、目的のバージョンとバージョンリソースを作成するPerlスクリプトを持っています。 –
"/ property"はMSBUILDのversioninfoプロパティを設定しているとは思わない。それらはDebugやReleaseを設定するのに使われます。/pと/ propertyは同じコマンドの2つの形式に過ぎないことに注意してください。 –
ありがとう、私は本当にverpatchを使って終わった – TheDude