PowerShell Syntax Error

拥有回忆 提交于 2019-12-23 04:32:20

问题


I am working on a powershell script that will create TFS build definitions. I have used below example as my starting point.

http://geekswithblogs.net/jakob/archive/2010/04/26/creating-a-build-definition-using-the-tfs-2010-api.aspx

I have the script done in powershell and it creates me a build definition file in TFS. One thing I am stuck in is creating Process information such as "Item to build" and "Projects to build". The C# code for this is given below

//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);

Below is the powershell code I have written to achive above.

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)

But the above segment of code does not create me the Build settings in my build definition file. Myquestion is am I doing this the correct way in powershell? I feel I am not writing the powershell code incorrectly as I am newbie to powershell. Any guidance and help would be appreciated


回答1:


Calling a constructor with parameters should be done like this in PowerShell:

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

Also note the use of single quotes around the TF server path. $ is s special character in PowerShell - tells it what follows is either a variable name or sub-expression even in a string. Unless that string is single quoted. In which case, PowerShell doesn't interpret any special characters within the string.



来源:https://stackoverflow.com/questions/18447879/powershell-syntax-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!