我想知道如何获得XAML Build Definition正在使用的解决方案的名称。
例如,在我的构建定义的配置中,我有这条路径来选择我想应用这个构建定义的解决方案:$ / test / SolutionName / SolutionName.sln
我如何获得" SolutionName"对于我的活动代码,使用C#代码。
代码:
public InArgument<string> BuildSettings { get; set; }
....
string nameSolutionAuto = System.IO.Path.GetFileNameWithoutExtension(this.BuildSettings.ProjectsToBuild[0]);
答案 0 :(得分:2)
您的活动需要BuildSettings类型的属性,您可以使用BuildSettings
变量的值设置该属性。
在活动代码中,检查ProjectsToBuild属性的内容并提取解决方案文件的名称,例如System.IO.Path.GetFileNameWithoutExtension(this.BuildSettings.ProjectsToBuild[0])
。
修改强>
BuildSettings
变量是全局定义的,无需重新定义。
BuildSettings
属性应为
public InArgument<Microsoft.TeamFoundation.Build.Workflow.Activities.BuildSettings> BuildSettings { get; set; }
,您必须在XAML属性窗口中将BuildSettings
变量分配给此属性。
要使用它,代码应该更像
var buildSettings = GetValue<Microsoft.TeamFoundation.Build.Workflow.Activities.BuildSettings>(this.BuildSettings);
string nameSolutionAuto = System.IO.Path.Get
FileNameWithoutExtension(buildSettings.ProjectsToBuild[0]);
答案 1 :(得分:1)
项目/解决方案信息存储在ProjectsToBuild变量中,因此您只需将此变量值传递给Activity(InArgument)并通过此代码获取解决方案或项目名称(InArgument变量:solutionPaths):
foreach(string solution in solutionPaths)
{
Console.WriteLine(solution.Split(new char[] { '/' }).Last());
}
在构建定义中显示所选解决方案/项目以构建日志的示例: