<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Aaron Block's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/ablock/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/ablock/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:14:22 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Team Project Collection Deliver</title>
      <link>https://docs.microsoft.com/archive/blogs/ablock/team-project-collection-deliver</link>
      <pubDate>Fri, 19 Mar 2010 08:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Block - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ablock/2010/03/19/team-project-collection-deliver/</guid>
      <description><![CDATA[One of the great new functionalities in&nbsp;Team Foundation Server 2010&nbsp;is the ability to take...]]></description>
      <content:encoded><![CDATA[<P>One of the great new functionalities in&nbsp;Team Foundation Server 2010&nbsp;is the ability to take a team project collection and connect it to an entirely different TFS system. </P>
<P>So, for example, if you were a consultant with your own TFS system and you built a starter project for the company Contoso, you can build the project on your own TFS instance and then deliver it in its entirety to Contoso when you are done.&nbsp; Here are the steps for this process </P>
<P><STRONG><EM>&nbsp;The attached Word document includes pictures to help you through this process.</EM></STRONG></P>
<P><SPAN style="FONT-SIZE: 14pt"><STRONG>Pre-Deliver Steps </STRONG></SPAN></P>
<P><STRONG>Step 1: Make a new Team Project Collection </STRONG></P>
<P>It can be difficult to deliver a single project if it is in a Team Project Collection (TPC) that is populated with non-delivered projects. So, for best results, if you know you are going to deliver a project, then create a new TPC for it. </P>
<P><STRONG>Step 2: Make a new Team Project </STRONG></P>
<P>You need a project if you are going to deliver it <SPAN style="FONT-FAMILY: Wingdings"></SPAN> </P>
<P><STRONG>Step 3: Work on and finish your project </STRONG></P>
<P><SPAN style="FONT-SIZE: 14pt"><STRONG>Deliver Steps On Original Server: </STRONG></SPAN></P>
<P><STRONG>Step 4: Stop Working on the project </STRONG></P>
<P>Once you are ready to deliver a project, you should stop working on it to avoid problems </P>
<P><STRONG>Step 5: Detach the team project collection </STRONG></P>
<P>You will need to detach the team project collection from the TFS server. This will store crucial information in the team project collection that allow it be hooked up to another TFS instance. </P>
<P><STRONG>Step 6: Backup the project collection </STRONG></P>
<P>You'll need to backup the team project collection database in SQL using the process described here: <A href="https://msdn.microsoft.com/en-us/library/ms187510.aspx" mce_href="https://msdn.microsoft.com/en-us/library/ms187510.aspx">https://msdn.microsoft.com/en-us/library/ms187510.aspx</A> </P>
<P><STRONG>Set 7: Backup the SharePoint Site collection (only if SharePoint site collection will be delivered) </STRONG></P>
<P>You'll need to backup the SharePoint site collection using the <SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">backup </SPAN>command under <SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">stsadm</SPAN>. This command must be run as an admin </P>
<P style="MARGIN-LEFT: 36pt"><SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">stsadm -o backup -url &lt;site_name&gt; -filename &lt;file_where_backup&gt; </SPAN></P>
<P>for example </P>
<P style="MARGIN-LEFT: 36pt"><SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">stsadm -o backup -url <A href="https://contoso/sites/DefaultCollection" mce_href="https://contoso/sites/DefaultCollection">https://contoso/sites/DefaultCollection</A> -filename c:\default_collection.bak </SPAN></P>
<P>More information on this command can be found here: <A href="https://technet.microsoft.com/en-us/library/cc263441.aspx" mce_href="https://technet.microsoft.com/en-us/library/cc263441.aspx">https://technet.microsoft.com/en-us/library/cc263441.aspx</A><STRONG> Note: </STRONG><SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">stsadm </SPAN>is usually stored in c:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Bin (although not allways) Must be run as admin<STRONG> </STRONG></P>
<P><STRONG>Set 8: Backup the Reporting Services Reports (only if reports will be delivered) </STRONG></P>
<P>Modify the script GetReportsFromServer.rss (located <A href="https://blogs.msdn.com/ablock/archive/2010/03/19/get-reports-from-server-rs-script.aspx" mce_href="https://blogs.msdn.com/ablock/archive/2010/03/19/get-reports-from-server-rs-script.aspx"><STRONG>here</STRONG></A>) so that <SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">gMovingCollection</SPAN> is the name of the project collection that you are delivering. Executing this script will create a local copy of all RDL files stored in this collection. </P>
<P>This script is executed by running the command: </P>
<P style="MARGIN-LEFT: 36pt"><SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">rs -i GetReportsFromServer.rss -s <A href="https://%3ctfsserver%3e/reportserver" mce_href="https://%3ctfsServer%3e/reportserver">https://&lt;tfsServer&gt;/reportserver</A> </SPAN></P>
<P>for example </P>
<P style="MARGIN-LEFT: 36pt"><SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">rs -i GetReportsFromServer.rss -s <A href="https://contoso/reportserver" mce_href="https://contoso/reportserver">https://contoso/reportserver</A> </SPAN></P>
<P><SPAN style="FONT-SIZE: 14pt"><STRONG>Deliver Steps on New Server </STRONG></SPAN></P>
<P><STRONG>Step 9: Restore the project collection </STRONG></P>
<P>You'll need to restore the team Project collection database in SQL: <A href="https://msdn.microsoft.com/en-us/library/ms177429.aspx" mce_href="https://msdn.microsoft.com/en-us/library/ms177429.aspx">https://msdn.microsoft.com/en-us/library/ms177429.aspx</A> </P>
<P><STRONG>Step 10: Restore the SharePoint site collection (only if SharePoint site collection will be delivered) </STRONG></P>
<P>You'll need to restore the SharePoint site Collection&nbsp;via the following command the <SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">restore </SPAN>command in <SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">stsadm</SPAN>. This command must be run as an admin </P>
<P style="MARGIN-LEFT: 36pt"><SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">stsadm -o restore -url &lt;site_name&gt; -filename &lt;file_where_backup&gt; </SPAN></P>
<P>for example </P>
<P style="MARGIN-LEFT: 36pt"><SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">stsadm -o restore -url <A href="https://contoso/sites/DefaultCollection" mce_href="https://contoso/sites/DefaultCollection">https://contoso/sites/DefaultCollection</A> -filename c:\default_collection.bak </SPAN></P>
<P>More information on this command can be found here: <A href="https://technet.microsoft.com/en-us/library/cc262087.aspx" mce_href="https://technet.microsoft.com/en-us/library/cc262087.aspx">https://technet.microsoft.com/en-us/library/cc262087.aspx</A>. <STRONG>Note: </STRONG><SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">stsadm </SPAN>is usually stored in c:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Bin (although not allways) Must be run as admin<STRONG> </STRONG></P>
<P><STRONG>Step 11: Restore the Reporting Services Reports (only if you are delivering reports) </STRONG></P>
<P>Modify the script PushReportsToServer.rss (located <A href="https://blogs.msdn.com/ablock/archive/2010/03/19/push-reports-to-server.aspx" mce_href="https://blogs.msdn.com/ablock/archive/2010/03/19/push-reports-to-server.aspx"><STRONG>here</STRONG></A>) so that <SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">gMovingCollection</SPAN> is the name of the project collection that you are delivering. Executing this script will push all RDL files to the server. </P>
<P>This script is executed by running the command (in the parent folder of the output of Step 8 to the Reporting Server on the new system). </P>
<P style="MARGIN-LEFT: 36pt"><SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">rs -i PushReportsToServer.rss -s <A href="https://%3ctfsserver%3e/reportserver" mce_href="https://%3ctfsServer%3e/reportserver">https://&lt;tfsServer&gt;/reportserver</A> </SPAN></P>
<P>for example if Step 8 was in the folder <SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">C:\TFS_DefaultColleciton</SPAN>, then while in the <SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">C:\</SPAN> directory execute: </P>
<P style="MARGIN-LEFT: 36pt"><SPAN style="FONT-FAMILY: Lucida Console; FONT-SIZE: 10pt">rs -i PushReportsToServer.rss -s <A href="https://contoso/reportserver" mce_href="https://contoso/reportserver">https://contoso/reportserver</A> </SPAN></P>
<P><STRONG>Step 12: Attach the project collection </STRONG></P>
<P>In the admin console, attach the the newly restored database </P>
<P><STRONG>Step 13: Edit the Default Site location for the SharePoint site (only if SharePoint site collection will be delivered) </STRONG></P>
<P mce_keep="true">In the admin console, change the default site location for SharePoint. </P>
<P><STRONG>Step 14: Change the SharePoint Web application and repair connection (only if SharePoint site collection will be delivered) </STRONG></P>
<P>When you attach the project collection, the old SharePoint web application will be added to the system. You need to change this URL to match the location of the new SharePoint connection, and then Repair this connection so that each of the projects in your delivered project collection will connect to the correct site. </P>
<P><STRONG>Note:</STRONG> This step will give you two SharePoint Web Applications that have the same URL. If you want to consolidate these two SharePoint Web Applications, then you will need to manually change the SharePoint Web Application for each project. Directions for this are given in "<STRONG>Alternative Steps 14 and 15</STRONG>" below. The only problem with having two SharePoint web applications with the same URL is that if you ever want to change your SharePoint web application URL, then you will have additional Web Applications to adjust. </P>
<P><SPAN style="COLOR: #1f497d"></SPAN></P>
<P><SPAN style="COLOR: #1f497d"></SPAN></P>
<P><STRONG>Step 16. You're done! </STRONG></P>
<P>One note, if you've migrated Reporting Services reports, then this may take 2-3 hrs to populate. </P>
<P><STRONG>Alterative Step 14: For each project in the new collection, Change the portal settings to point to the new SharePoint server (only if SharePoint site collection will be delivered) </STRONG></P>
<BLOCKQUOTE>
<P>Step 14 a. <STRONG>Right-Click</STRONG> on each project </P></BLOCKQUOTE>
<BLOCKQUOTE>
<P>Step 14 b. Choose <STRONG>Team Project Settings-&gt;Portal Settings </STRONG></P></BLOCKQUOTE>
<BLOCKQUOTE>
<P>Step 14 c. Under the <STRONG>Process Portal</STRONG> tab check <STRONG>Configure URL</STRONG> and choose the new web application from the drop down </P></BLOCKQUOTE>
<P><STRONG></STRONG></P>
<BLOCKQUOTE>
<P>Step 14 d. Under the <STRONG>Process Portal</STRONG> tab check <STRONG>Configure URL</STRONG> and choose the new web application from the drop down. Click <STRONG>Refresh</STRONG> and choose <STRONG>Process Guidance</STRONG></P></BLOCKQUOTE>
<P><STRONG>Alternative Step 15 </STRONG>Clean up the SharePoint web applications on the new server.<STRONG> </STRONG></P>
<BLOCKQUOTE>
<P>Step 15 a. In the <STRONG>Administration Console</STRONG> under the <STRONG>SharePoint Web Application</STRONG> tab, click on the old SharePoint application (if it exists) and click <STRONG>Change</STRONG>. In the pop-up dialog, go to <STRONG>Dependents</STRONG> and check to make sure that there are no entries present. If projects exist,&nbsp; follow step 13 for those projects </P></BLOCKQUOTE>
<BLOCKQUOTE>
<P>Step 15 b. In the <STRONG>Administration Console</STRONG> under the <STRONG>SharePoint Web Application</STRONG> tab, delete the old server (if it exists). If you get the popup elow and you finished <STRONG>step 15 a.</STRONG> then click <STRONG>Yes</STRONG> </P></BLOCKQUOTE>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/98/19/13/Team%20Project%20Collection%20Deliver.docx" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-09-98-19-13/Team-Project-Collection-Deliver.docx">Team Project Collection Deliver.docx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Push Reports to Server</title>
      <link>https://docs.microsoft.com/archive/blogs/ablock/push-reports-to-server</link>
      <pubDate>Fri, 19 Mar 2010 08:21:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Block - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ablock/2010/03/19/push-reports-to-server/</guid>
      <description><![CDATA[The VB script below is designed to push SQL Reporting Services reports from local directory and put...]]></description>
      <content:encoded><![CDATA[<P>The VB script below is designed to push SQL Reporting Services reports from local directory and put them all into a&nbsp;RS folder&nbsp;This script works in conjunction with GetReportsFromServer, which can be found <A href="https://blogs.msdn.com/ablock/archive/2010/03/19/get-reports-from-server-rs-script.aspx" mce_href="https://blogs.msdn.com/ablock/archive/2010/03/19/get-reports-from-server-rs-script.aspx">here</A>. This script was designed to work for getting Team Foundation Server Reports from the server and pushing to another server, but can be adapated for any set of reporting services reports. </P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>This script is executed by modifying it so that <SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt">gMovingCollection</SPAN> variable is the name of the project collection that you are delivering, then&nbsp;running the command while in the parent direcotry of the folder created from GetReportsFromServer</FONT></FONT></P><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt">
<P style="MARGIN: 0in 0in 10pt 0.5in" class=MsoNormal><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt">rs -i PushReportsToServer.rss -s </SPAN><A href="https://%3ctfsserver%3e/reportserver"><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt"><FONT color=#0000ff>https://&lt;tfsServer&gt;/reportserver</FONT></SPAN></A><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>for example if&nbsp;the path used in GetReportsFromServer&nbsp;was in the folder </FONT><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt">C:\TFS_DefaultColleciton</SPAN><FONT size=3 face=Calibri>, then while in the </FONT><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt">C:\</SPAN><FONT size=3><FONT face=Calibri> directory execute:<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt 0.5in" class=MsoNormal><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt">rs -i PushReportsToServer.rss -s </SPAN><A href="https://contoso/reportserver"><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt"><FONT color=#0000ff>https://contoso/reportserver</FONT></SPAN></A><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt"><o:p></o:p></SPAN></P></SPAN>
<P>The code in this script is given here and can be found in the attached file. </P>
<P mce_keep="true">&nbsp;</P>
<P>'=============================================================================<BR>'&nbsp; File:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetReportsFromServer.rss<BR>'<BR>'&nbsp; Summary:&nbsp; Dowloads all reports from a TFS Reports Server to a specified directory<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>'<BR>'---------------------------------------------------------------------<BR>'<BR>'&nbsp; Copyright (C) Microsoft Corporation.&nbsp; All rights reserved.<BR>'<BR>' This source code is intended only as a supplement to Microsoft<BR>' Development Tools and/or on-line documentation.&nbsp; See these other<BR>' materials for detailed information regarding Microsoft code samples.<BR>'<BR>' THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY<BR>' KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE<BR>' IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A<BR>' PARTICULAR PURPOSE.<BR>'=============================================================================<BR>'<BR>' 1.0 Documentation<BR>'<BR>' Read the following in order to familiarize yourself with the sample script.<BR>' <BR>' 1.1 Overview<BR>'<BR>' This sample script uses a script file (.rss) and the script environment to run <BR>' Web service operations on a specified report server. This script copies all of<BR>' the RDL files from a local folder to the server and is designed to be used<BR>' with GetReportsFromServer.rss<BR>'<BR>' To correcly run this script you will need to modify the global variable: <BR>' "gMovingCollection"<BR>' <BR>'<BR>' 1.2 Sample Command Lines<BR>'<BR>' <BR>' 1.2.1 Use the script to publish the sample reports to an AdventureWorks Sample Reports folder.<BR>' <BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs -i PushReportsToServer.rss -s <A href="https://myserver/reportserver">https://myserver/reportserver</A><BR>'</P>
<P>''''' Modify gMovingCollection to be the collection name you want to move.</P>
<P>Dim gMovingCollection As String = "DefaultCollection"</P>
<P>''''' Only change the variable gHDLocation, if your Reports are stored in a different directory then <BR>''''' .\TFS_gMovingCollection</P>
<P>Dim gHDLocation As String = ".\TFS_"+gMovingCollection</P>
<P>''''' Only change the variable gReportsLocation, if some reason your reports are stored in a direcotry other thean<BR>''''' "/TFSReports" (i.e., never change this).</P>
<P>Dim gReportsLocation As String = "/TFSReports"</P>
<P><BR>'This function recursively navigates through the local hard drive uploading files and creating folders <BR>'in the process<BR>public Sub OnNodeArrival(myParentServerPath As String, myServerFolder As String, myHDFolder As String)<BR>&nbsp;<BR>&nbsp;'Create the parent folder on Reporting Server<BR>&nbsp;Try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;rs.CreateFolder(myServerFolder, myParentServerPath, Nothing)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Folder {0} created successfully", myServerFolder)<BR>&nbsp;&nbsp;&nbsp; &nbsp;Catch e As Exception<BR>&nbsp;&nbsp;Console.WriteLine("Failed to Create Folder")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Console.WriteLine(e.Message)<BR>&nbsp;&nbsp;&nbsp; &nbsp;End Try</P>
<P mce_keep="true">&nbsp;</P>
<P>&nbsp;'' We need to handle the possible base cases "C:\" and "/" differntly because the end in a slash<BR>&nbsp;Dim parentHDPath As String<BR>&nbsp;Dim parentRepPath As String<BR>&nbsp;If (myHDFolder = "C:\")<BR>&nbsp;&nbsp;parentHDPath = myHDFolder<BR>&nbsp;Else<BR>&nbsp;&nbsp;parentHDPath = myHDFolder+"\"<BR>&nbsp;End If</P>
<P>&nbsp;If (myParentServerPath = "/")<BR>&nbsp;&nbsp;parentRepPath = myParentServerPath <BR>&nbsp;Else<BR>&nbsp;&nbsp;parentRepPath = myParentServerPath +"/"<BR>&nbsp;End If</P>
<P><BR>&nbsp;' Retrieve a list of all items from the local and upload them. <BR>&nbsp;&nbsp; &nbsp;Dim returnValues As String()<BR>&nbsp;Dim fileWithPath As String<BR>&nbsp;Dim file As String</P>
<P>&nbsp;'Publish reports in myHDFolder<BR>&nbsp;returnValues = Directory.GetFiles(myHDFolder)<BR>&nbsp;For Each fileWithPath in returnValues<BR>&nbsp;&nbsp;If (Path.GetExtension(fileWithPath) = ".rdl")<BR>&nbsp;&nbsp;&nbsp;file = Path.GetFileNameWithoutExtension(fileWithPath)<BR>&nbsp;&nbsp;&nbsp;PublishReport(fileWithPath, parentRepPath+myServerFolder, file)<BR>&nbsp;&nbsp;End If<BR>&nbsp;Next</P>
<P><BR>&nbsp;''Recursively navigate through all sub directories<BR>&nbsp;Dim subFolderWithPath As String<BR>&nbsp;Dim subFolder As String</P>
<P>&nbsp;returnValues = Directory.GetDirectories(myHDFolder)<BR>&nbsp;For Each subFolderWithPath in returnValues<BR>&nbsp;&nbsp;'the below line is nescssary because subFolderWithPath contains "C:\blah-blah\...\reportfolder" <BR>&nbsp;&nbsp;'and we just need "reportfolder"<BR>&nbsp;&nbsp;subFolder = subFolderWithPath.Replace(parentHDPath, "")</P>
<P>&nbsp;&nbsp;OnNodeArrival(parentRepPath+myServerFolder, subFolder, subFolderWithPath)<BR>&nbsp;&nbsp;<BR>&nbsp;Next <BR>End Sub</P>
<P><BR>'This function actually publishes the report<BR>Public Sub PublishReport(filePath As String, reportPath As String,&nbsp; ByVal reportName As String)</P>
<P>&nbsp;Dim definition As [Byte]() = Nothing<BR>&nbsp;Dim warnings As Warning() = Nothing</P>
<P>&nbsp;Dim combinedString As String<BR>&nbsp;If (reportPath="/") Then<BR>&nbsp;&nbsp;combinedString = reportPath+reportName<BR>&nbsp;Else<BR>&nbsp;&nbsp;combinedString = reportPath+"/"+reportName<BR>&nbsp;End If</P>
<P>&nbsp;Try<BR>&nbsp;&nbsp;Dim stream As FileStream = File.OpenRead(filePath)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; definition = New [Byte](stream.Length-1) {}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stream.Read(definition, 0, CInt(stream.Length))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stream.Close()</P>
<P>&nbsp;&nbsp;&nbsp; &nbsp;Catch e As IOException<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Console.WriteLine(e.Message)<BR>&nbsp;End Try</P>
<P>&nbsp;&nbsp;&nbsp; &nbsp;Try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;warnings = rs.CreateReport(reportName, reportPath, False, definition, Nothing)</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Not (warnings Is Nothing) Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp;&nbsp;&nbsp;'We ignore the warnings where the DataSources are not hooked up because<BR>&nbsp;&nbsp;&nbsp;'we fix this up after the report is uploaded</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Dim warning As Warning<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;For Each warning In warnings<BR>&nbsp;&nbsp;&nbsp;&nbsp;If (warning.Code &lt;&gt; "rsDataSourceReferenceNotPublished") Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine("--Warning For :" + combinedString)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine("Warning Code:" + warning.Code)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(warning.Message)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine("")<BR>&nbsp;&nbsp;&nbsp;&nbsp;End If<BR>&nbsp;&nbsp;&nbsp;Next warning<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 'Console.WriteLine("Report: {0} published successfully with no warnings", reportName)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If</P>
<P>&nbsp;&nbsp;&nbsp; &nbsp;Catch e As Exception<BR>&nbsp;&nbsp;Console.WriteLine("--Error For :" + combinedString)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Console.WriteLine(e.Message)<BR>&nbsp;&nbsp;Console.WriteLine("")<BR>&nbsp;End Try<BR>&nbsp;<BR>&nbsp;'''''<BR>&nbsp;'Modify the data source of uploaded reports <BR>&nbsp;'''''<BR>&nbsp;'In the TFS suplied reports, only two datasources are used:<BR>&nbsp;&nbsp;' 1)"TFSOlapReportDS" and 2) "TfsReportDS". These values are located at respectively,<BR>&nbsp;' 1) "/Tfs2010OlapReportDS" and 2) "/Tfs2010ReportDS".<BR>&nbsp;'<BR>&nbsp;'If your custom reports have other datasources that need to be changed, you <BR>&nbsp;'can add these datasources here or you can modifiy them by manual after upload<BR>&nbsp;'by navigating to their report at the Report Manager URL (<A href="https://myserver/reports">https://myserver/reports</A>)<BR>&nbsp;'and viewing thier datasources under the properties tab. </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Dim dataSources() As DataSource<BR>&nbsp;dataSources = rs.GetItemDataSources(combinedString)<BR>&nbsp;Dim oldDS as New DataSource()<BR>&nbsp;<BR>&nbsp;Dim count As Integer<BR>&nbsp;count = 0<BR>&nbsp;For Each oldDS In dataSources<BR>&nbsp;&nbsp;If (oldDS.Name = "TfsOlapReportDS")<BR>&nbsp;&nbsp;&nbsp;Dim referenceDS As New DataSourceReference()&nbsp;<BR>&nbsp;&nbsp;&nbsp;referenceDS.Reference = "/Tfs2010OlapReportDS"<BR>&nbsp;&nbsp;&nbsp;oldDS.Item = referenceDS<BR>&nbsp;&nbsp;Else If (oldDS.Name = "TfsReportDS")<BR>&nbsp;&nbsp;&nbsp;Dim referenceDS As New DataSourceReference()&nbsp;<BR>&nbsp;&nbsp;&nbsp;referenceDS.Reference = "/Tfs2010ReportDS"<BR>&nbsp;&nbsp;&nbsp;oldDS.Item = referenceDS<BR>&nbsp;&nbsp;End If</P>
<P>&nbsp;&nbsp;dataSources(count) = oldDS<BR>&nbsp;&nbsp;count = count + 1<BR>&nbsp;Next oldDS</P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;rs.SetItemDataSources(combinedString, dataSources)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Catch e As SoapException<BR>&nbsp;&nbsp;Console.WriteLine("Failed to Write Reference for :" + combinedString)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Console.WriteLine(e.Detail.InnerXml.ToString())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;End Try</P>
<P>&nbsp;'''''<BR>&nbsp;'Modify the paramaters of uploaded reports <BR>&nbsp;'''''<BR>&nbsp;'In the TFS suplied reports, only one paramater is modified "ExplicitProject"<BR>&nbsp;'For the ExcplicitProject paramater, the default value is set to empty (i.e., "")<BR>&nbsp;'and PromptUser is set to False.<BR>&nbsp;'<BR>&nbsp;'If your custom reports have other paramaters that need to be changed, you <BR>&nbsp;'can add these paramaters here or you can modifiy them by manual after upload<BR>&nbsp;'by navigating to their report at the Report Manager URL (<A href="https://myserver/reports">https://myserver/reports</A>)<BR>&nbsp;'and viewing thier parameters under the properties tab. </P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Dim forRendering As Boolean = False<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Dim historyID As String = Nothing<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Dim values As ParameterValue() = Nothing<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Dim credentials As DataSourceCredentials() = Nothing<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Dim parameters As ReportParameter() = Nothing<BR>&nbsp;</P>
<P>&nbsp;parameters = rs.GetReportParameters(combinedString, historyID, forRendering, values, credentials )<BR>&nbsp;Dim par as New ReportParameter()<BR>&nbsp;<BR>&nbsp;count = 0<BR>&nbsp;For Each par In parameters<BR>&nbsp;&nbsp;If (par.Name = "ExplicitProject")<BR>&nbsp;&nbsp;&nbsp;Dim defVals(0) As String<BR>&nbsp;&nbsp;&nbsp;Dim emptyString As String = ""<BR>&nbsp;&nbsp;&nbsp;defVals(0) = emptyString<BR>&nbsp;&nbsp;&nbsp;par.DefaultValues = defVals<BR>&nbsp;&nbsp;&nbsp;par.PromptUser = False<BR>&nbsp;&nbsp;End If</P>
<P>&nbsp;&nbsp;parameters(count) = par<BR>&nbsp;&nbsp;count = count + 1<BR>&nbsp;Next par </P>
<P>&nbsp;Try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;rs.SetReportParameters(combinedString, parameters)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Catch e As SoapException<BR>&nbsp;&nbsp;Console.WriteLine("Failed to Write Parameters for :" + combinedString)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Console.WriteLine(e.Detail.InnerXml.ToString())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;End Try<BR>End Sub </P>
<P><BR>Public Sub Main()</P>
<P>&nbsp;&nbsp;&nbsp; &nbsp;rs.Credentials = System.Net.CredentialCache.DefaultCredentials<BR>&nbsp;&nbsp; &nbsp;Console.WriteLine("Starting")<BR>&nbsp;&nbsp;&nbsp; &nbsp;OnNodeArrival(gReportsLocation, gMovingCollection, gHDLocation )<BR>&nbsp;Console.WriteLine("Files from " + gHDLocation + " were published in " + gReportsLocation+"/"+gMovingCollection)<BR>End Sub</P>
<P mce_keep="true">&nbsp;</P>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/98/19/09/PushReportsToServer.rss" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-09-98-19-09/PushReportsToServer.rss">PushReportsToServer.rss</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Get Reports From Server RS Script</title>
      <link>https://docs.microsoft.com/archive/blogs/ablock/get-reports-from-server-rs-script</link>
      <pubDate>Fri, 19 Mar 2010 08:13:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Block - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ablock/2010/03/19/get-reports-from-server-rs-script/</guid>
      <description><![CDATA[The VB script below is designed to get SQL Reporting Services reports from the server and put them...]]></description>
      <content:encoded><![CDATA[<P>The VB script below is designed to get SQL Reporting Services reports from the server and put them all in a local folder. This script works in conjunction with PushReportsToServer, which can be found here. This script was designed to work for getting Team Foundation Server Reports from the server, but can be adapated for any set of Reporting services reports. </P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>This script is executed by modifying it so that <SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt">gMovingCollection</SPAN> variable is the name of the project collection that you are moving , then&nbsp;running the command</FONT></FONT><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt"><FONT size=3><FONT face=Calibri>:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt 0.5in" class=MsoNormal><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt">rs -i GetReportsFromServer.rss -s </SPAN><A href="https://%3ctfsserver%3e/reportserver"><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt"><FONT color=#0000ff>https://&lt;tfsServer&gt;/reportserver</FONT></SPAN></A><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt"><o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>for example<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt 0.5in" class=MsoNormal><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt">rs -i GetReportsFromServer.rss -s </SPAN><A href="https://contoso/reportserver"><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt"><FONT color=#0000ff>https://contoso/reportserver</FONT></SPAN></A><SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 10pt"><o:p></o:p></SPAN></P></SPAN>
<P>The code in this script is given here and can be found in the attached file. </P>
<P mce_keep="true">&nbsp;</P>
<P><BR>'=============================================================================<BR>'&nbsp; File:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetReportsFromServer.rss<BR>'<BR>'&nbsp; Summary:&nbsp; Dowloads all reports from a TFS Reports Server to a specified directory<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>'<BR>'---------------------------------------------------------------------<BR>'<BR>'&nbsp; Copyright (C) Microsoft Corporation.&nbsp; All rights reserved.<BR>'<BR>' This source code is intended only as a supplement to Microsoft<BR>' Development Tools and/or on-line documentation.&nbsp; See these other<BR>' materials for detailed information regarding Microsoft code samples.<BR>'<BR>' THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY<BR>' KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE<BR>' IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A<BR>' PARTICULAR PURPOSE.<BR>'=============================================================================<BR>'<BR>' 1.0 Documentation<BR>'<BR>' Read the following in order to familiarize yourself with the sample script.<BR>' <BR>' 1.1 Overview<BR>'<BR>' This sample script uses a script file (.rss) and the script environment to run <BR>' Web service operations on a specified report server. The script creates coppies<BR>' all files from a TFS collection and stores them on the specified directory.<BR>'<BR>' To correcly run this script you will need to modify the global variable: <BR>' "gMovingCollection"<BR>' <BR>'<BR>' 1.2 Sample Command Lines<BR>'<BR>' <BR>' 1.2.1 Use the script to publish the sample reports to an AdventureWorks Sample Reports folder.<BR>' <BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs -i GetReportsFromServer.rss -s <A href="https://myserver/reportserver" mce_href="https://myserver/reportserver">https://myserver/reportserver</A><BR>'</P>
<P>''''' Modify gMovingCollection to be the collection name you want to move.</P>
<P>Dim gMovingCollection As String = "DefaultCollection"</P>
<P>''''' Only change the variable gHDLocation, if you don't want the report files stored in the <BR>''''' directory ".\TFS_gMovingCollection"</P>
<P>Dim gHDLocation As String = ".\TFS_"+gMovingCollection</P>
<P>''''' Only change the variable gReportsLocation, if some reason your reports are stored in a direcotry other thean<BR>''''' "/TFSReports" (i.e., never change this).</P>
<P>Dim gReportsLocation As String = "/TFSReports"</P>
<P mce_keep="true">&nbsp;</P>
<P>public Sub OnNodeArrival(MyServerFolder as String, MyHDFolder as String)<BR>&nbsp;<BR>&nbsp;'Create Folder on HD<BR>&nbsp;If(Not System.IO.Directory.Exists(MyHDFolder)) Then<BR>&nbsp;&nbsp; &nbsp;&nbsp;System.IO.Directory.CreateDirectory(MyHDFolder)<BR>&nbsp;End If</P>
<P><BR>&nbsp;' Retrieve a list of all items from the report server database. <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Dim items As CatalogItem() = Nothing<BR>&nbsp;Try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;items = rs.ListChildren(MyServerFolder, False)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Catch e As SoapException<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Console.WriteLine(e.Detail.InnerXml.ToString())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;End Try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp;Dim catalogItem As CatalogItem<BR>&nbsp;Dim reportDefinition As Byte() = Nothing<BR>&nbsp;Dim doc As New System.Xml.XmlDocument<BR>&nbsp;Dim serverFolderString As String<BR>&nbsp;Dim hdFolderString As String</P>
<P>&nbsp;'' Get list of all children reports and seralize it locally. &nbsp;<BR>&nbsp;For Each catalogItem In items<BR>&nbsp;&nbsp;If (catalogItem.Type=ItemTypeEnum.Report)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Try<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;'' We need to handle the appended string name differently if <BR>&nbsp;&nbsp;&nbsp;'' 1) the base report path is \ <BR>&nbsp;&nbsp;&nbsp;'' 2) or the base hard drive path is C:\ (if you want to store to a differnt drive change this)</P>
<P>&nbsp;&nbsp;&nbsp;If (MyServerFolder = "/")<BR>&nbsp;&nbsp;&nbsp;&nbsp;serverFolderString = "/"+catalogItem.Name<BR>&nbsp;&nbsp;&nbsp;Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;serverFolderString = MyServerFolder + "/"+ catalogItem.Name<BR>&nbsp;&nbsp;&nbsp;End If</P>
<P>&nbsp;&nbsp;&nbsp;If (MyHDFolder = "C:\")<BR>&nbsp;&nbsp;&nbsp;&nbsp;hdFolderString = "C:\"+catalogItem.Name +".rdl"<BR>&nbsp;&nbsp;&nbsp;Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;hdFolderString = MyHDFolder+"\" + catalogItem.Name +".rdl"<BR>&nbsp;&nbsp;&nbsp;End If</P>
<P>&nbsp;&nbsp;&nbsp;'Console.WriteLine(serverFolderString)<BR>&nbsp;&nbsp;&nbsp;'Console.WriteLine(hdFolderString)</P>
<P>&nbsp;&nbsp;&nbsp;' Serialize the contents as an XML document and write the contents to a file.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;reportDefinition = rs.GetReportDefinition(serverFolderString)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim stream As New MemoryStream(reportDefinition)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.Load(stream)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.Save(hdFolderString)<BR>&nbsp;&nbsp;&nbsp;Console.WriteLine("Coppied " + serverFolderString + " to " + hdFolderString)</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catch e As SoapException<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Console.WriteLine(e.Detail.InnerXml.ToString())</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catch e As IOException<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Console.WriteLine(e.Message)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End Try&nbsp;&nbsp;<BR>&nbsp;&nbsp;End If<BR>&nbsp;&nbsp;Next catalogItem&nbsp; </P>
<P>&nbsp;''Go through and get all reports and rescursively navigate them<BR>&nbsp;For Each catalogItem In items<BR>&nbsp;&nbsp;If (catalogItem.Type=ItemTypeEnum.Folder)<BR>&nbsp;&nbsp;&nbsp; If (MyServerFolder = "/")<BR>&nbsp;&nbsp;&nbsp;&nbsp;serverFolderString = "/"+catalogItem.Name<BR>&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;serverFolderString = MyServerFolder + "/"+ catalogItem.Name<BR>&nbsp;&nbsp;&nbsp; End If</P>
<P>&nbsp;&nbsp;&nbsp; If (MyHDFolder = "C:\")<BR>&nbsp;&nbsp;&nbsp;&nbsp;hdFolderString = "C:\"+catalogItem.Name<BR>&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;hdFolderString = MyHDFolder+"\" + catalogItem.Name<BR>&nbsp;&nbsp;&nbsp; End If</P>
<P>&nbsp;&nbsp;&nbsp; OnNodeArrival(serverFolderString, hdFolderString)<BR>&nbsp;&nbsp;End If<BR>&nbsp;&nbsp;Next catalogItem&nbsp; <BR>End sub</P>
<P mce_keep="true">&nbsp;</P>
<P>Public Sub Main()<BR>&nbsp;Dim baseReportFolderName As String<BR>&nbsp;Dim baseHDFolderName As String</P>
<P>&nbsp;baseReportFolderName = gReportsLocation+"/"+gMovingCollection<BR>&nbsp;baseHDFolderName = gHDLocation </P>
<P>&nbsp;rs.Credentials = System.Net.CredentialCache.DefaultCredentials<BR>&nbsp;&nbsp;<BR>&nbsp;Console.WriteLine("Starting")</P>
<P>&nbsp;OnNodeArrival(baseReportFolderName, baseHDFolderName)<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp;Console.WriteLine("")<BR>&nbsp;Console.WriteLine("Reports downloaded into&nbsp; " +baseHDFolderName)<BR>End Sub 'Main</P>
<P><BR>&nbsp;</P>
<P mce_keep="true">&nbsp;</P>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/98/19/06/GetReportsFromServer.rss" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-09-98-19-06/GetReportsFromServer.rss">GetReportsFromServer.rss</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Second TFS 2010 Beta 2 Patch Avilable</title>
      <link>https://docs.microsoft.com/archive/blogs/ablock/second-tfs-2010-beta-2-patch-avilable</link>
      <pubDate>Thu, 10 Dec 2009 14:51:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Block - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ablock/2009/12/10/second-tfs-2010-beta-2-patch-avilable/</guid>
      <description><![CDATA[We have just finished work on our second Beta 2 patch. This patch fixes some post-configuration...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>We have just finished work on our second Beta 2 patch. This patch fixes some post-configuration failures and can be installed at any point after the MSI phase of TFS (even after TFS is configured). <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>This fix can be downloaded from: <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B>MSConnect</B>: <SPAN style="COLOR: #1f497d"><A href="https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=25150" mce_href="https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=25150"><FONT color=#0000ff>https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=25150</FONT></A> <o:p></o:p></SPAN></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B>Code Gallery</B>:<SPAN style="COLOR: #1f497d"> <A href="https://code.msdn.microsoft.com/KB977226" mce_href="https://code.msdn.microsoft.com/KB977226">https://code.msdn.microsoft.com/KB977226</A> <o:p></o:p></SPAN></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Please let me <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>know if you run into any problems since the primary reason why we are releasing a non-critical patch for a beta product is to get feedback about our servicing infrastructure. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B><SPAN style="FONT-SIZE: 18pt; mso-bidi-font-size: 16.0pt"><FONT face=Calibri>Fixes<o:p></o:p></FONT></SPAN></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo4" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><FONT size=3>Fixes an intermittent race condition that prevents WIT data from making it to the Warehouse<o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo4" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><FONT size=3>Fixed an issue where the iteration backlog for each build workbook is based on the root iteration and not on the individual iterations<o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo4" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><FONT size=3>Fixes an issue where in the Regional Options, the Decimal Symbol is defined to something other than “.” (For example ”,”)<o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo4" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri><SPAN style="COLOR: black">Fixed an issue that prevents saving multiple work-items&nbsp;in excel or project&nbsp;when connected to TFS 2010 server from a 2008 client.</SPAN><o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B><SPAN style="FONT-SIZE: 16pt"><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></SPAN></B></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B><SPAN style="FONT-SIZE: 16pt"><FONT face=Calibri>The Final Fix and Some Additional Steps<o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT face=Calibri><FONT size=3>In order to get the final fix included in this patch <o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo3" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri><SPAN style="mso-bidi-font-style: italic">Fixed an error where after buddy builds some files appeared checked out to the build service account</SPAN>.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>You will need apply some additional manual steps as detailed below. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>The reason why there are additional steps is because this fix requires changing the process template files which are user editable. As a result, we cannot automatically replace those files. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B>NOTE: </B>before continuing, it is important to note that the following steps assume that <B>you have not made any changes to the default process templates, or the build template files</B>. If you have, then the process will involve manually porting the changes. Let me know if you are in this boat, and I will help you through it. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B><SPAN style="FONT-SIZE: 14pt"><FONT face=Calibri>Overview of Steps for Changing Process Template Files<o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><I style="mso-bidi-font-style: normal">If you haven’t change the default process templates or the build template files</I>, then you will need to follow these steps<o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l3 level1 lfo1" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-style: italic"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>1)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="mso-bidi-font-style: italic"><FONT size=3><FONT face=Calibri>Replace the file <B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: red">\Program Files\Microsoft Team Foundation Server 2010\Tools\Deploy\ProcessTemplateManagerFiles\MsfAgile\Template.zip</SPAN><SPAN style="COLOR: #00b050"> </SPAN></B>with<SPAN style="COLOR: #00b050"> <SPAN style="mso-spacerun: yes">&nbsp;</SPAN><B style="mso-bidi-font-weight: normal">\Program Files\Microsoft Team Foundation Server 2010\Tools\Deploy\ProcessTemplateManagerFiles\MsfAgile\Template_new.zip</B></SPAN>.<o:p></o:p></FONT></FONT></SPAN></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l3 level1 lfo1" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-style: italic"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>2)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="mso-bidi-font-style: italic"><FONT size=3><FONT face=Calibri>Replace the file<SPAN style="COLOR: #00b050"> </SPAN><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: red">\Program Files\Microsoft Team Foundation Server 2010\Tools\Deploy\ProcessTemplateManagerFiles\MsfFormal\Template.zip</SPAN></B> with <B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: #00b050">\Program Files\Microsoft Team Foundation Server 2010\Tools\Deploy\ProcessTemplateManagerFiles\MsfFormal\Template_new.zip</SPAN></B><o:p></o:p></FONT></FONT></SPAN></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l3 level1 lfo1" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-style: italic"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>3)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri><B>Uncompress these template files stored in the patch</B>. (Don’t delete the zip file)<I><o:p></o:p></I></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l3 level1 lfo1" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-style: italic"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>4)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri><B>For each existing team project collection, </B>upload the new process templates.<I><o:p></o:p></I></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l3 level1 lfo1" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-style: italic"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>5)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri><B>For each existing team project</B>, replace the Build Process Template files DefaultTemplate.xaml and UpgradeTemplate.xaml in version control with their new files.<I><o:p></o:p></I></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Details for steps 4 and 5 are given at the end of the post. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B><SPAN style="FONT-SIZE: 14pt"><FONT face=Calibri>A Bug<o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>One final note, we have already found one bug with this patch. &nbsp;We should, but do not, change the default process templates stored on the server to include the new file. The end result of this bug is that every time you create a new team project collection, you will need upload the new process templates to the new team project collection if you want their associated fix. This will not be a problem with RTM patches.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>If y’all have any questions, please let me know.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>--Aaron<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B><SPAN style="FONT-SIZE: 14pt"><FONT face=Calibri>Detailed Steps for Changing Process Template Files<o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>After you have replaced the files on the application tier and uncompressed the template files, <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>follow these steps (detailed steps for 4 &amp; 5 above)<o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l2 level1 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-style: italic"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>1)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri><B>For each existing team project collection, </B>upload the new process templates.<I><o:p></o:p></I></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-weight: bold"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>a.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>For each Project collection, connect to the project collection, right-click on the Project Collection name, and select Team Project Collection Settings-&gt;Process Template Manager</FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><IMG style="WIDTH: 579px; HEIGHT: 327px" title=Right-Click alt=Right-Click align=middle src="https://blogs.msdn.com/ablock/attachment/9935428.ashx" width=865 height=327 mce_src="https://blogs.msdn.com/ablock/attachment/9935428.ashx"></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>b.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>In the dialog box that pops up, click on upload<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 1in" class=MsoListParagraph><FONT size=3><FONT face=Calibri><SPAN style="mso-no-proof: yes"><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shape style="WIDTH: 440.25pt; HEIGHT: 310.5pt; VISIBILITY: visible; mso-wrap-style: square" id=Picture_x0020_2 type="#_x0000_t75" alt="cid:image002.png@01CA79AC.34D39DE0" o:spid="_x0000_i1028"><v:imagedata o:title="image002.png@01CA79AC" src="file:///C:\Users\ablock\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png" mce_src="file:///C:\Users\ablock\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"></v:imagedata></v:shape></SPAN><o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>c.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Select the <STRONG>folder</STRONG> for MsfFormal <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 1in" class=MsoListParagraph><FONT size=3><FONT face=Calibri><SPAN style="mso-no-proof: yes"><v:shape style="WIDTH: 529.5pt; HEIGHT: 390.75pt; VISIBILITY: visible; mso-wrap-style: square" id=Picture_x0020_4 type="#_x0000_t75" alt="cid:image003.png@01CA79AC.34D39DE0" o:spid="_x0000_i1027"><v:imagedata o:title="image003.png@01CA79AC" src="file:///C:\Users\ablock\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png" mce_src="file:///C:\Users\ablock\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"></v:imagedata></v:shape></SPAN><o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>d.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Overwrite the previous version of the file<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 1in" class=MsoListParagraph><FONT size=3><FONT face=Calibri><SPAN style="mso-no-proof: yes"><v:shape style="WIDTH: 441.75pt; HEIGHT: 313.5pt; VISIBILITY: visible; mso-wrap-style: square" id=Picture_x0020_3 type="#_x0000_t75" alt="cid:image004.png@01CA79AC.34D39DE0" o:spid="_x0000_i1026"><v:imagedata o:title="image004.png@01CA79AC" src="file:///C:\Users\ablock\AppData\Local\Temp\msohtmlclip1\01\clip_image007.png" mce_src="file:///C:\Users\ablock\AppData\Local\Temp\msohtmlclip1\01\clip_image007.png"></v:imagedata></v:shape></SPAN><o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>e.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Repeat steps C and D for MsfAgile<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></B></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l2 level1 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-style: italic"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>2)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri><B>For each existing team project</B>, replace the Build Process Template files DefaultTemplate.xaml and UpgradeTemplate.xaml in version control with their new files.<I><o:p></o:p></I></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-weight: bold"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>a.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>For each existing project, go to the source control for that project.<B><o:p></o:p></B></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-weight: bold"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>b.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Go to the BuildProcessTemplate Folder<B><o:p></o:p></B></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-weight: bold"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>c.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Get the latest and checkout the files <B>DefaultTemplate.xaml</B> and <B>UpgradeTemplate.xaml<o:p></o:p></B></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-weight: bold"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>d.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>If this is an agile project, then open the folder where you uncompressed MsfAgile. If this is a formal project, then open the folder where you uncompressed MsfFormal. <B><o:p></o:p></B></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>e.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Under either the MsfAgile or MsfFormal folder, go to the folder \build\Templates<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 1in" class=MsoListParagraph><FONT size=3><FONT face=Calibri><SPAN style="mso-no-proof: yes"><v:shape style="WIDTH: 600pt; HEIGHT: 137.25pt; VISIBILITY: visible; mso-wrap-style: square" id=Picture_x0020_7 type="#_x0000_t75" alt="cid:image005.png@01CA79AC.34D39DE0" o:spid="_x0000_i1025"><v:imagedata o:title="image005.png@01CA79AC" src="file:///C:\Users\ablock\AppData\Local\Temp\msohtmlclip1\01\clip_image009.png" mce_src="file:///C:\Users\ablock\AppData\Local\Temp\msohtmlclip1\01\clip_image009.png"></v:imagedata></v:shape></SPAN><o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>f.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>If you haven’t made any changes to DefaulTemplate.xaml or UpgradeTemplate.xaml, you can just replace those files in the local BuildProcessTemplate folder. If you have, then you will need to move the modified lines manually into the DefaultTemplate.xaml and UpgrageTemplate.xaml files. <o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l2 level2 lfo2" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>g.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>After you have made changes to DefaultTemplate.xaml and UpgradeTemplate.xaml. Check those changes back in. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/93/54/28/right-click.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-09-93-54-28/right_2D00_click.jpg">right-click.jpg</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Exposing TFS 2010 (Beta 2+) to the Internet</title>
      <link>https://docs.microsoft.com/archive/blogs/ablock/exposing-tfs-2010-beta-2-to-the-internet</link>
      <pubDate>Mon, 24 Aug 2009 11:05:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Block - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ablock/2009/08/24/exposing-tfs-2010-beta-2-to-the-internet/</guid>
      <description><![CDATA[Hi all, 
I've recently put together a document about how to expose TFS 2010 (Beta 2+) to the...]]></description>
      <content:encoded><![CDATA[<P>Hi all, </P>
<P>I've recently put together a document about how to expose TFS 2010 (Beta 2+) to the Internet. If interested, take a look through it and let me know what you think (positive or negative).&nbsp;Note: This document <STRONG>does not apply to Beta 1</STRONG>.</P>
<P><STRONG>EDIT: </STRONG>Updated the document to incoperate feedback.</P>
<P>Thanks, </P>
<P>--Aaron</P>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/88/27/25/Exposing%20Team%20Foundation%20Server%20to%20the%20Internet.docx" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-09-88-27-25/Exposing-Team-Foundation-Server-to-the-Internet.docx">Exposing Team Foundation Server to the Internet.docx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>For TFS 2010 Beta 1, Resolving TF31001 "The ServicePointManager does not support proxies with the https scheme."</title>
      <link>https://docs.microsoft.com/archive/blogs/ablock/for-tfs-2010-beta-1-resolving-tf31001-the-servicepointmanager-does-not-support-proxies-with-the-https-scheme</link>
      <pubDate>Wed, 20 May 2009 16:48:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Block - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ablock/2009/05/20/for-tfs-2010-beta-1-resolving-tf31001-the-servicepointmanager-does-not-support-proxies-with-the-https-scheme/</guid>
      <description><![CDATA[Recently, we’ve noticed a number of Team Explorer 2010 Beta 1 users are encountering the following...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Recently, we’ve noticed a number of Team Explorer 2010 Beta 1 users are encountering the following error while attempting to connect to a HTTPS TFS server:</FONT></FONT></P>
<BLOCKQUOTE>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>TF31001: Cannot connect to Team Foundation Server at xxx.com. The server returned the following error: The ServicePointManager does not support proxies with the https scheme.</FONT></FONT></P></BLOCKQUOTE>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT face=Calibri><FONT size=3>This problem appears to be related to our decision to switch the default behavior of the BypassProxyOnLocal setting.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The BypassProxyOnLocal setting indiciates whether the proxy server should be bypassed for local addresses. (Local requests are identified by either the lack of a period [such as https://webserver] or those that are talking to the local server [such as https://localhost or https://127.0.0.1]). </FONT><FONT size=3>If true, the local requests bypass the proxy; otherwise, if false</FONT><FONT size=3>, all Internet requests are made through the proxy server. <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>In TFS 2008, the default value for BypassProxyOnLocal was false. This changed in 2010. Setting BypassProxyOnLocal to true improves the performance of the initial connection and resolves a performance problem experienced by some customers. So, unless you are reciving this error, you should not change the value of BypassProxyOnLocal.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>If you are receiving the TF31001 error, you should be able to resolve this issue by running the following commands:<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri><STRONG>On all machine:<o:p></o:p></STRONG></FONT></FONT></P>
<BLOCKQUOTE>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>reg add hklm\SOFTWARE\Microsoft\VisualStudio\10.0\TeamFoundation\RequestSettings /v BypassProxyOnLocal /t REG_SZ /d False<o:p></o:p></FONT></FONT></P></BLOCKQUOTE>
<BLOCKQUOTE>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>reg add hklm\SOFTWARE\Microsoft\TeamFoundationServer\10.0\RequestSettings /v BypassProxyOnLocal /t REG_SZ /d False<o:p></o:p></FONT></FONT></P></BLOCKQUOTE>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri><STRONG>Additionally on a 64-bit machine:<o:p></o:p></STRONG></FONT></FONT></P>
<BLOCKQUOTE>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>reg add hklm\SOFTWARE\Wow6432Node\Microsoft\TeamFoundationServer\10.0\RequestSettings /v BypassProxyOnLocal /t REG_SZ /d False<o:p></o:p></FONT></FONT></P></BLOCKQUOTE>
<BLOCKQUOTE>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>reg add hklm\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\TeamFoundation\RequestSettings /v BypassProxyOnLocal /t REG_SZ /d False<o:p></o:p></FONT></FONT></P></BLOCKQUOTE>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;--Aaron</FONT></o:p></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>]]></content:encoded>
    </item>
    <item>
      <title>Upgrading to TFS 2008 and Changing Servers</title>
      <link>https://docs.microsoft.com/archive/blogs/ablock/upgrading-to-tfs-2008-and-changing-servers</link>
      <pubDate>Mon, 20 Apr 2009 10:47:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Block - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ablock/2009/04/20/upgrading-to-tfs-2008-and-changing-servers/</guid>
      <description><![CDATA[Hi All, 
&nbsp;I've written a post on the TFS admin &amp; Ops site on &nbsp;how to upgrade to TFS...]]></description>
      <content:encoded><![CDATA[<P>Hi All, </P>
<P>&nbsp;I've written a post on the TFS admin &amp; Ops site on &nbsp;how to upgrade to TFS 2008 while changing servers that might be helpful, <A href="https://blogs.msdn.com/tfsao/archive/2009/04/20/upgrading-to-team-foundation-server-2008-while-changing-servers.aspx">https://blogs.msdn.com/tfsao/archive/2009/04/20/upgrading-to-team-foundation-server-2008-while-changing-servers.aspx</A></P>
<P mce_keep="true">&nbsp;</P>
<P>--Aaron</P>]]></content:encoded>
    </item>
    <item>
      <title>Moving Servers in TFS</title>
      <link>https://docs.microsoft.com/archive/blogs/ablock/moving-servers-in-tfs</link>
      <pubDate>Fri, 20 Feb 2009 13:08:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Block - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ablock/2009/02/20/moving-servers-in-tfs/</guid>
      <description><![CDATA[I’m currently putting together a series of blog posts that describe the most common team foundation...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri>I’m currently putting together a series of blog posts that describe the most common team foundation server (TFS) moves. You can find the intro to this series, called “Server Change We Can Believe In” here: </FONT><A href="https://blogs.msdn.com/tfsao/archive/2009/02/20/server-change-we-can-believe-in.aspx"><FONT size=3 face=Calibri>https://blogs.msdn.com/tfsao/archive/2009/02/20/server-change-we-can-believe-in.aspx</FONT></A><FONT size=3 face=Calibri> and the index here: </FONT><A href="https://blogs.msdn.com/tfsao/archive/2009/02/20/index-of-server-moves.aspx"><FONT size=3 face=Calibri>https://blogs.msdn.com/tfsao/archive/2009/02/20/index-of-server-moves.aspx</FONT></A><FONT size=3><FONT face=Calibri> <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>--Aaron<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>P.S. I had a hard time choosing between titling the series “Server Change We Can Believe In” or “Maverick Moves” <o:p></o:p></FONT></FONT></P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>TFS &amp; Hyper-V</title>
      <link>https://docs.microsoft.com/archive/blogs/ablock/tfs-hyper-v</link>
      <pubDate>Tue, 03 Feb 2009 10:01:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Block - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ablock/2009/02/03/tfs-hyper-v/</guid>
      <description><![CDATA[Hi all, 
If you are interested in learning more about using TFS for Hyper-V. I've made a post at...]]></description>
      <content:encoded><![CDATA[<P>Hi all, </P>
<P>If you are interested in learning more about using TFS for Hyper-V. I've made a post at the TFS A&amp;O blog. Enjoy</P>
<P>&nbsp;<A href="https://blogs.msdn.com/tfsao/archive/2009/02/03/hyper-v-and-tfs.aspx">https://blogs.msdn.com/tfsao/archive/2009/02/03/hyper-v-and-tfs.aspx</A></P>
<P>--Aaron</P>]]></content:encoded>
    </item>
    <item>
      <title>TFSDeleteProject MSDN Paper</title>
      <link>https://docs.microsoft.com/archive/blogs/ablock/tfsdeleteproject-msdn-paper</link>
      <pubDate>Wed, 29 Oct 2008 17:20:00 GMT</pubDate>
      <dc:creator><![CDATA[Aaron Block - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ablock/2008/10/29/tfsdeleteproject-msdn-paper/</guid>
      <description><![CDATA[For the past little while, I've been gathering information together about the behavior of...]]></description>
      <content:encoded><![CDATA[<P>For the past little while, I've been gathering information together about the behavior of TFSDeleteProject. Earlier today, we put the finishing touches on this document, and now it's been published to MSDN. So, if you would like to know all about the behavior of TFSDeleteProject (including how to resolve failures and exactly what data is deleted by TFSDeleteProject), follow this link to find out more.</P>
<P><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><A href="https://msdn.microsoft.com/en-us/library/dd206696.aspx">https://msdn.microsoft.com/en-us/library/dd206696.aspx</A>&nbsp;</SPAN></P>
<P><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">If you have any questions, feel free to post them in the comments section.</SPAN></P>
<P><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">&nbsp;--Aaron</SPAN></P>]]></content:encoded>
    </item>
  </channel>
</rss>