私の最終的な目標は、MSBuildプリビルドイベントでブランチ名($ SolutionDirectoryの一部)を抽出し、それを私のapp.config appSettingsに注入することです。MSBuildプレビルドステップでブランチ名を抽出する
私は多くの掘り下げをしてきましたが、この問題のアプローチは実際には見つかりませんでした。
私は事前にビルド中にこのような何かをできるようにしたいと思います:
<XmlPoke XmlInputPath="App.config"
Query="/configuration/appSettings/add[@key='BuildBranch']/@value"
Value="$(Branch)" />
は、誰もが前にこのような何かをやっていますか?
ええと、これを調べる必要があります。これが私のために働くなら、これは私にその道の50%を得るでしょう。私は分岐を切り替えるときに、ブランチ名を動的に引き出す方法がまだ必要です。 – Anthony
私は実際に自分自身では試してみることはできませんが、プレビルドイベントでバッチファイルを実行し、そのファイルの出力をmsbuildプロパティとして渡してタスクで使用することができます。そのバットファイルの中にgitコマンドを実行することができます:git rev-parse --abbrev-ref HEAD(このコマンドはあなたに現在のブランチを与えます)を出力としてエコーし、おそらくその出力を処理して後で使用する方法があります。 – luki
バッチファイルが不要なので、Execを使ってgitを実行することができます(カレントディレクトリに頼る代わりに--git-dirと--work-treeを指定するのが最善です)。 – stijn