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
PowerShell语法错误_Powershell_Tfs_Tfsbuild - Fatal编程技术网

PowerShell语法错误

PowerShell语法错误,powershell,tfs,tfsbuild,Powershell,Tfs,Tfsbuild,我正在编写一个powershell脚本,该脚本将创建TFS构建定义。我用下面的例子作为我的出发点 我在powershell中完成了脚本,它在TFS中为我创建了一个构建定义文件。我陷入的一件事是创建流程信息,如“要构建的项目”和“要构建的项目”。这方面的C#代码如下所示 //Set process parameters varprocess = WorkflowHelpers.DeserializeProcessParameters(buildDefinition.ProcessParamet

我正在编写一个powershell脚本,该脚本将创建TFS构建定义。我用下面的例子作为我的出发点

我在powershell中完成了脚本,它在TFS中为我创建了一个构建定义文件。我陷入的一件事是创建流程信息,如“要构建的项目”和“要构建的项目”。这方面的C#代码如下所示

//Set process parameters 
varprocess = WorkflowHelpers.DeserializeProcessParameters(buildDefinition.ProcessParameters); 

//Set BuildSettings properties 
BuildSettings settings = newBuildSettings(); 
settings.ProjectsToBuild = newStringList("$/pathToProject/project.sln"); 
settings.PlatformConfigurations = newPlatformConfigurationList(); 
settings.PlatformConfigurations.Add(newPlatformConfiguration("Any CPU", "Debug")); 
process.Add("BuildSettings", settings); 

buildDefinition.ProcessParameters = WorkflowHelpers.SerializeProcessParameters(process);
下面是我在上面为achive编写的powershell代码

Write-Host"Set process parameters "$now
$process=[Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]::DeserializeProcessParameters($def.ProcessParameters)
Write-Host"Set build settings properties "$now
$settings=new-object-`enter code here`TypeNameMicrosoft.TeamFoundation.Build.Workflow.Activities.BuildSettings
$sList=New-Object-TypeNameMicrosoft.TeamFoundation.Build.Workflow.Activities.StringList
$sList="$/pathToProject/project.sln"
$settings.ProjectsToBuild =$sList
$process.Add("BuildSettings", $sList)
但是上面的代码段并没有在生成定义文件中创建生成设置。我的问题是我在powershell中这样做是否正确?我觉得我没有错误地编写powershell代码,因为我是powershell的新手。任何指导和
希望您能提供帮助

在PowerShell中调用带参数的构造函数时,请执行以下操作:

$ns = 'Microsoft.TeamFoundation.Build.Workflow.Activities'
$settings.ProjectsToBuild = new-object "$ns.StringList" '$/pathToProject/project.sln'

还要注意TF服务器路径周围使用了单引号
$
是PowerShell中的特殊字符-告诉它后面是变量名或子表达式,甚至是字符串。除非该字符串是单引号。在这种情况下,PowerShell不会解释字符串中的任何特殊字符。

您是否收到任何错误和/或输出?我只是向代码指出问题所在。当我运行完整脚本时,它会为我创建构建定义文件。但是诸如“要构建的项目”和“要构建的项目”之类的流程信息是空的,在执行时,它不会为我抛出任何错误。我想,我可能写错了powershell语法。谢谢你的帮助。作为一名新手,我不知道如何在powershell中调用构造函数。现在我知道怎么做了,我能解决我的问题了。