Albacore msbuild タスクと関連する構成オブジェクトは、ブードゥーを使用して、既定の MSBuild exe バージョンを自動的に検出してセットアップします。これは汎用コマンド ライン タスクに基づいているため、command
パラメーターがあります。
self.command = File.join(get_net_version(netversion), "MSBuild.exe")
コマンドオプションを手動で設定し、多くのタスクを定義できます
task :build_all_versions => [ :build_net20, :build_net35, :build_net40 ]
msbuild :build_net20 do |msb|
msb.command = 'C:/Windows/Microsoft.NET/Framework/v2.0.50727/msbuild.exe'
end
msbuild :build_net35 do |msb|
msb.command = 'C:/Windows/Microsoft.NET/Framework/v3.5/msbuild.exe'
end
msbuild :build_net40 do |msb|
msb.command = 'C:/Windows/Microsoft.NET/Framework/v4.0.30319/msbuild.exe'
end
または、内部の Albacore モジュール/メソッドを使用してパスを取得できmsbuild.exe
ます。これはプライベート モジュール メソッドを定義しているため、それを実行する必要がありますinclude
。
include Configuration::NetVersion
msbuild :build_net20 do |msb|
msb.command = File.join(get_net_version :net20, 'msbuild.exe')
...
end
そして、この時点で、.NET バージョン シンボルの配列に基づいてタスクを動的に定義します。
net_versions = [ :net20, :net35, :net40 ]
build_tasks = net_versions.map { |ver| "build_#{ver}" }
task :build_all => build_tasks
net_versions.zip(build_tasks) do |ver, task|
msbuild task do |msb|
msb.command = File.join(get_net_version ver, 'msbuild.exe')
# all the other stuff
end
end
.NET 3.0 ツールはなく、 .NET 2.0 ツールを使用していたようです。