Microsoft.Build.Utilities,Microsoft.Build.Utilities.v3.5,Microsoft.Build.Utilities.v4.0的单独项目

时间:2013-01-02 09:04:15

标签: c# .net msbuild msbuild-task

我创建了一个引用Microsoft.Build.Utilities.dll

的自定义构建任务DLL

由于每个版本的文件名不同,

我是否需要创建单独的项目文件来定位不同的MSBuild版本? 2.0,3.5,4.0 / 4.5

1 个答案:

答案 0 :(得分:0)

我不会这样做。如果您从代码构建项目,则应该能够为.csproj文件中的每个属性设置GlobalProperty。将自动选择正确的MSBuild版本。

     ProjectCollection pc = new ProjectCollection();
     Dictionary<string, string> GlobalProperty = new Dictionary<string, string>();

     //GlobalProperty.Add("Configuration", "Debug");
     //GlobalProperty.Add("Platform", "x86");
     //GlobalProperty.Add("OutputPath", "c:\\src");
     //GlobalProperty.Add("TargetFrameworkVersion", "4.0");

     BuildRequestData buidlRequest = new BuildRequestData("projectfile.csproj", GlobalProperty, null, new string[] { "Build" }, null);
     BuildResult buildResult = BuildManager.DefaultBuildManager.Build(new BuildParameters(pc), buidlRequest);

     //if (buildResult["Build"].ResultCode == TargetResultCode.Success)
     //{
     //   Console.WriteLine("Build Success");
     //}
     //else
     //{
     //   Console.WriteLine("Build Fail");
     //}