Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将C#逻辑转换为TFS的powershell_Powershell_Tfs_Tfsbuild - Fatal编程技术网

将C#逻辑转换为TFS的powershell

将C#逻辑转换为TFS的powershell,powershell,tfs,tfsbuild,Powershell,Tfs,Tfsbuild,我有一个C#程序,它为我构建了一个TFS构建定义。我想在powershell脚本中执行相同的代码。到目前为止,我已经能够编写脚本,它将在TFS中为我创建一个新的构建定义。但是,我在设置构建定义的流程部分时遇到了问题。我需要将下面C#中的代码转换为powershell,我所做的所有尝试都不起作用 //Set process parameters var process = WorkflowHelpers.DeserializeProcessParameters(buildDefinition.P

我有一个C#程序,它为我构建了一个TFS构建定义。我想在powershell脚本中执行相同的代码。到目前为止,我已经能够编写脚本,它将在TFS中为我创建一个新的构建定义。但是,我在设置构建定义的流程部分时遇到了问题。我需要将下面C#中的代码转换为powershell,我所做的所有尝试都不起作用

//Set process parameters 
var process = WorkflowHelpers.DeserializeProcessParameters(buildDefinition.ProcessParameters);
//Set BuildSettings properties 
BuildSettings settings = new BuildSettings();
settings.ProjectsToBuild = new StringList("$/Templates/Main/Service/application1"); 
settings.PlatformConfigurations = new PlatformConfigurationList(); 
settings.PlatformConfigurations.Add(new PlatformConfiguration("Any CPU", "Debug"));
process.Add("BuildSettings", settings);

buildDefinition.ProcessParameters = WorkflowHelpers.SerializeProcessParameters(process); 
首先,我加载了使用TFS所需的程序集。当我想复制与之相同的C#代码时

我在PowerShell中没有跟踪

$process = New-Object Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers. 
上面给出的错误是“找不到构造函数。找不到Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers类型的合适构造函数”


我检查过了,但没有构造器。我的问题是,在编写PowerShell脚本以实现与c#代码相同的功能时,我做错了什么。我确信这是我正在做的语法错误,但我不知道在PowerShell中执行此操作的正确方法。

从您的代码片段(并通过)可以看出,
反序列化过程参数
WorkflowHelpers
类上的静态方法。您需要在PowerShell中使用以下语法调用它:

$process = [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]::DeserializeProcessParameters($buildDefinition.ProcessParameters)

看起来buildDefinition变量是在前面声明的,所以我在它上面加了一个$字符,使它成为一个合法的PowerShell变量。流程变量也是如此。我希望这有帮助

请不要只是要求我们为您解决问题。向我们展示你是如何试图自己解决问题的,然后向我们展示结果是什么,并告诉我们为什么你觉得它不起作用。请参阅“”,以获得一篇您确实需要阅读的优秀文章。是的,我应该用我所做的以及我所犯的错误来提问。我已经编辑了这个问题,非常感谢。我不知道PowerShell中调用它的语法。我在前面声明了buildDefinition变量。通过使用您的语法,我可以运行该进程。
$process = [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]::DeserializeProcessParameters($buildDefinition.ProcessParameters)