2011-10-03 73 views
2

背景:TFS 2010的命令行 - TFSConfig設置/安裝

這是可與團隊基礎服務器的命令行工具,一個鮮爲人知的命令。從本質上講,它可以讓你通過傳遞一個配置文件來在一臺機器上安裝團隊構建服務(以及控制器和代理)。語法是

tfsconfig setup /install /unattendfile:{filepath} 

文件看起來像

<Configuration> 
    <TeamBuild> 
    <CollectionUri> 
     <Uri>Url of your TFS project collection</Uri> 
    </CollectionUri> 
    <Credentials> 
     <FullName></FullName> 
     <Password></Password> 
    </Credentials> 
    <Controller> 
     <ControllerName>Default Controller</ControllerName> 
     <CustomAssemblyPath /> 
     <MaxConcurrentBuilds>0</MaxConcurrentBuilds> 
    </Controller> 
    <Agent> 
     <AgentName>Agent 1 Name</AgentName> 
     <ControllerName>Default Controller</ControllerName> 
     <BuildDirectory>$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)</BuildDirectory> 
    </Agent> 
     <!--AgentName>Agent 2 Name</AgentName> 
     <ControllerName>Controller Name</ControllerName> 
     <BuildDirectory>$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)</BuildDirectory> 
    </Agent>--> 
    <Port>9191</Port> 
    <UseSSL>False</UseSSL> 
    </TeamBuild> 
</Configuration> 

在其目前的形式,將配置TFS生成服務的機器上的端口9191與二級代理商。

問題:

方式的配置是安裝,它會在機器上配置構建服務的URL看起來像

http://machinename:9191/v .....

我的問題是出於某種原因,我希望能夠控制「機器名稱」或本質上構建服務的URL。我懷疑可以通過在配置文件中指定另一個參數來實現,但對於我的生活我無法弄清楚這一點!一些幫助將是非常受歡迎的。

+0

你能不能給你想要什麼樣的URL看起來像一個例子嗎? –

+1

實際上,整個配置文件是由一個進程生成的運行時間,然後這個進程會將它發送到在運行時配置代理的構建機器上的WCF服務。 URL將爲http:// {nameofmachine} - {ip}:9191/v {randomvalue} – Nikhil

回答

4

不幸的是,使用tfsconfig的無人值守安裝沒有記錄,因爲它在2010年還沒有完成。我們計劃在下一個版本中完成。

+0

Thanks Buck。我實際上與來自英國雷丁的MS PSFD密切合作,他們通過爲我們的項目需求接近TFS產品組找到了此實用工具。你提到2010年還沒有完成,這是否意味着這種方法實際上是「不受支持的」? – Nikhil

+0

是的,這是正確的。 –

+0

謝謝。有沒有辦法實現我想要的? – Nikhil

2

還有一些其他的(不支持)的方法來安裝每個命令行代理 你可以在這裏找到他們:other methods

+0

那裏的答案只是回到我自己的線索!但我非常喜歡另一個線程指向的C#實現。將經過正確的 – Nikhil