您的位置:首页 > 其它

getting the xml for running tfsreg.exe

2007-08-03 17:00 288 查看
The TfsReg.exe utility lets you change the URL's that are registered with TFS (tells TFS how to access version control, work item tracking, reporting services, sharepoint, any third-party tools that have registered, etc.). The biggest problem is usually in getting that "clean" xml that represents the current state of your server, so you can edit it and then feed it back in. (Yes, we're considering an "export" option for a future version to make this easier :)

Route 1: use IE logged into app tier

login to TFS application tier
load IE and hit http://localhost:8080/services/v1.0/registration.asmx?op=GetRegistrationEntries
leave toolId empty and click Invoke
In the new IE window that opens (with a bunch of XML output), click File -> Save As
save to reg.xml (or whatever else you want to call it)
load in notepad (or whatever editor you want)
change root element from ArrayOfRegistrationEntry to RegistrationEntries
Make whatever other changes you want (sharepoint url's, reporting url's, whatever) and save
run tfsreg.exe

If you've changed <remove name="HttpGet" /> to <add name="HttpGet" /> in your AT's [TfsInstallDir]\Web Services\web.config to allow remote get calls (you could still do this with a soap call, i'm just being lazy here :) then a little shorter powershell version that takes care of the string replacement and save to a file for you:

Route 2: PowerShell, from wherever

a few lines of script (replace localhost with server name if not logged into the AT)

$url = 'http://localhost:8080/services/v1.0/registration.asmx/GetRegistrationEntries?toolId='
$webClient = new-object 'system.net.webclient'
$webClient.UseDefaultCredentials = $true
$regString = $webClient.DownloadString($url)
$regstring -replace 'ArrayOfRegistrationEntry[^>]*','RegistrationEntries' | out-file 'reg.xml'

load reg.xml in notepad (or whatever editor you want)
Make whatever changes you want (sharepoint url's, reporting url's, whatever) and save
run tfsreg.exe

Note that Route 1 could really be "from wherever" as well if you happened to also change <remove name="HttpPost" /> to <add name="HttpPost" /> (which you generally would, if you bothered to change HttpGet), but I left that out in the above since I wanted "Route 1" to be something that worked for everyone, regardless. :)

Published Thursday, October 12, 2006 10:57 PM by jmanning
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐