我创建了一个引用Microsoft.Build.Utilities.dll
的自定义构建任务DLL由于每个版本的文件名不同,
我是否需要创建单独的项目文件来定位不同的MSBuild版本? 2.0,3.5,4.0 / 4.5
答案 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");
//}