0
MsBuild変数(例:$(MSBuildToolsPath)、$(MSBuildAssemblyVersion)、$(TargetFrameworkIdentifier)など)の値を取得するにはどうすればよいですか。私はcsharp側で値を取得する必要がありますが、csharpコードから利用できない場合はmsbuild.exeにアクセスできます。MsBuild変数の値の取得方法
MsBuild変数(例:$(MSBuildToolsPath)、$(MSBuildAssemblyVersion)、$(TargetFrameworkIdentifier)など)の値を取得するにはどうすればよいですか。私はcsharp側で値を取得する必要がありますが、csharpコードから利用できない場合はmsbuild.exeにアクセスできます。MsBuild変数の値の取得方法
BuildManagerなどはビルド専用です。 MSは、機能別に異なる名前空間にあるMsBuild APIを分割することに決めました。必要なものを見つけ出すのが難しくないことが分かったら、プロパティを評価するだけでよいので、評価名前空間のProjectクラスが適切な選択肢のように思えます。
var project = new Microsoft.Build.Evaluation.Project(@"my.vcxproj");
foreach(var property in p.Properties)
{
System.Console.WriteLine("{0} = {1}",
property.Name, property.EvaluatedValue);
}
msbuildプロジェクトをプログラム的にロード/ビルドしようとしていますか?これまでに何を試しましたか? C#を使用してプログラムでビルドし、プロジェクトのプロパティを取得/設定する方法については、十分な例があります。 – stijn
@stijnはい、私はBuildManagerによってC#側からmsbuildターゲットを実行します。このためには、プロジェクトファイルからすべてのターゲットを取得する必要があります。しかし、msbuildは、msbuild変数を使用できるプロジェクトのインポートをサポートしています。だから私は変数の価値を得る能力を持っている必要があります... – Serg046