如何在C#exe内使用或访问新创建的管道变量,以便我可以在Azure dev-ops构建管道中的程序内部分配值?

时间:2019-08-28 13:14:42

标签: c# azure azure-devops azure-pipelines

如何在通过C#创建的可执行文件中使用或访问新创建的自定义管道变量,以便我可以在Azure DevOps构建管道中的程序内部分配值?

让我详细解释一下我的查询:

我在Azure DevOps中为我的项目创建了一个构建管道。如果我在此管道上选择 EDIT 选项,则会在顶部看到一个标签或标题为“变量”的部分,此处选择“管道变量”,然后单击“添加”以创建自己的自定义变量,例如说VersionNumber和检查了可设置的队列时间选项。

从侧面看,我还有一个基于C#的控制台应用程序,该应用程序接受命令行参数并进行一些处理。

我在命令行的构建管道中创建了一个附加任务,在该管道中,我给出了可执行文件路径,以便它可以选择并执行它。

现在,这是我的查询或问题:

  1. 如何将上面创建的自定义变量作为命令行参数传递给exe,以便我可以在程序内部分配要在管道中的其他任务中使用的值?

如果这不可能,那么:

  1. 如何从exe返回值,以便在作为管道的一部分执行时将这些值用于构建管道的下一个任务?

请注意,exe中的逻辑是使用C#和main方法本身编写的,因为只有几行代码可以执行并获取值。

如何实现或解决上述问题/查询?

您能帮我吗?并请尝试以详细的逐步指南方式进行解释,因为我对编码,C#和Azure DevOps还是陌生的?

试图将命令行参数作为$VersionNumber传递,但除此之外没有任何用处。

1 个答案:

答案 0 :(得分:1)

在命令行任务中,您可以通过这种方式(在Arguments字段下)传递变量:

$(VersionNumber)

在C#中,您是以这种方式(在Main(string[] args)方法下)读取变量的:

var versionNumber = args[0]

要设置一个新变量,该变量将在后续步骤中使用,您可以按以下方式进行操作:

Console.WriteLine("##vso[task.setvariable variable=newVar;]myValue")