<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Shai Raiten&amp;#39;s Blog : Share Point</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/tags/Share+Point/default.aspx</link><description>Tags: Share Point</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>SharePoint API – Download \ Upload Documents (Tool)</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2011/10/27/sharepoint-api-download-upload-documents-tool.aspx</link><pubDate>Thu, 27 Oct 2011 13:03:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:921005</guid><dc:creator>shair</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=921005</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2011/10/27/sharepoint-api-download-upload-documents-tool.aspx#comments</comments><description>&lt;div class="share-buttons"&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;PADDING-RIGHT:15px;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;&lt;a class="twitter-share-button" href="http://twitter.com/share?url=http://blogs.microsoft.co.il/blogs/shair/archive/2011/10/27/sharepoint-api-download-upload-documents-tool.aspx"&gt;Tweet&lt;/a&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;PADDING-RIGHT:25px;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;
&lt;script type="IN/Share"&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;&lt;iframe style="WIDTH:100px;HEIGHT:21px;" src="http://www.facebook.com/plugins/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2011/10/27/sharepoint-api-download-upload-documents-tool.aspx&amp;amp;send=false&amp;amp;layout=button_count&amp;amp;width=450&amp;amp;show_faces=false&amp;amp;action=like&amp;amp;colorscheme=light&amp;amp;font=segoe+ui&amp;amp;height=21&amp;amp;appId=184186808308137" scrolling="no" frameborder="0" style="border:none;overflow:hidden;width:450px;height:21px;"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;
&lt;div class="g-plusone"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;A long time ago I wrote about &lt;a href="http://blogs.microsoft.co.il/blogs/shair/archive/2011/02/25/sharepoint-2007-files-restore-tool.aspx" target="_blank"&gt;SharePoint 2007 Files Restore Tool&lt;/a&gt;, tool that allows you to connect to SharePoint content database (not need to have SharePoint installation) and extract documents.&lt;/p&gt;  &lt;p&gt;The reason I wrote this tool was a customer that upgrade TFS and perform a new installation of SharePoint so he lost all his documents, this tool helped me to extract all documents and added them to the new SharePoint site.&lt;/p&gt;  &lt;p&gt;SharePoint upgrade/migration can be unpleasant and sometimes I prefer to do a clean installation when upgrading or moving TFS and then just import the documents (without history).    &lt;br /&gt;Some customers wants to keep the history, so you can do small changes to download all file versions and then upload each version.&lt;/p&gt;  &lt;p&gt;The big questions is how to extract all SharePoint documents from existing Site?&lt;/p&gt;  &lt;p&gt;So, I’ve built another tool to help me do that, the below tool will connect to SharePoint using API and download all documents includes Folder structure to my computer.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_0F4C5A82.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_141EE871.png" width="743" height="475" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Because I’m using SharePoint API you can write any Url of the SharePoint site, I’ll show the all documents folders includes files under each folder, and then you can click the download button to download all files or specific files to your machine.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_7D1FCB5A.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_03A3251E.png" width="734" height="345" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;How To Connect SharePoint Site:&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;* SharePoint API will only work on Machine with SharePoint installed *&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:12pt;"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:12pt;"&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;SPWeb&lt;/font&gt;&lt;/span&gt; _sp;&lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; Connect()&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;try&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#2b91af"&gt;SPSite&lt;/font&gt;&lt;/span&gt; site = &lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;SPSite&lt;/font&gt;&lt;/span&gt;(txtSPUrl.&lt;span&gt;&lt;font color="#000000"&gt;Text&lt;/font&gt;&lt;/span&gt;))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TreeFolders.&lt;span&gt;&lt;font color="#000000"&gt;Items&lt;/font&gt;&lt;/span&gt;.Clear();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; webTree = &lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;TreeViewItem&lt;/font&gt;&lt;/span&gt;();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; webTree.Header = _sp.Title;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; webTree.Tag = _sp;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MapFolders(_sp.Folders, webTree);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;catch&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt;&lt;/span&gt; ex)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;throw&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;ArgumentException&lt;/font&gt;&lt;/span&gt;(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Connect&amp;quot;&lt;/font&gt;&lt;/span&gt;, ex);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;h3&gt;Building Folder Structure&lt;/h3&gt;

&lt;p&gt;I’ve created a recursive method to get the total number of files under a specific folder include all sub folders.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:12pt;"&gt;private&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:12pt;"&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; GetFilesCount(&lt;span&gt;&lt;font color="#2b91af"&gt;SPFolder&lt;/font&gt;&lt;/span&gt; folder, &lt;span&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt; count)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; count += folder.Files.Count;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt; folder.SubFolders.Aggregate(count, (current, subfolder) =&amp;gt; &lt;br /&gt;           GetFilesCount(subfolder, current));&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; MapFolders(&lt;span&gt;&lt;font color="#2b91af"&gt;SPFolderCollection&lt;/font&gt;&lt;/span&gt; folderList,&lt;br /&gt;                                             &lt;span&gt;&lt;font color="#2b91af"&gt;TreeViewItem&lt;/font&gt;&lt;/span&gt; treeNode)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;for&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; i = 0; i &amp;lt; folderList.Count; i++)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; item = &lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;TreeViewItem&lt;/font&gt;&lt;/span&gt;();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; item.Header = &lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;.Format(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#3cb371"&gt;{0}&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#a31515"&gt; (&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#3cb371"&gt;{1}&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#a31515"&gt;)&amp;quot;&lt;/font&gt;&lt;/span&gt;, folderList[i].Name,&lt;br /&gt;                                     GetFilesCount(folderList[i], 0));&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; item.Tag = folderList[i];&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; treeNode.Items.Add(item);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (folderList[i].SubFolders.Count &amp;gt; 0)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MapFolders(folderList[i].SubFolders, item);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;h3&gt;Download Files From SharePoint Folder&lt;/h3&gt;

&lt;p&gt;The &lt;u&gt;CreateDirectoryStructure&lt;/u&gt; will build the local folder structure based on the file path in SharePoint, this is important because once we want to upload those files to a new SharePoint site we need those folder names in order to create them in the new SharePoint site.&lt;/p&gt;

&lt;p&gt;Each SPFolder object contains a &lt;span&gt;&lt;font color="#2b91af"&gt;SPFileCollection&lt;/font&gt;&lt;/span&gt; with all files under that folder – Not include SubFolder files.&lt;/p&gt;

&lt;p&gt;DownloadFile – will run over all files, get each file binary data and save the stream to a local file.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:12pt;"&gt;private&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:12pt;"&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; DownloadFile(&lt;span&gt;&lt;font color="#2b91af"&gt;SPFileCollection&lt;/font&gt;&lt;/span&gt; files)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;foreach&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#2b91af"&gt;SPFile&lt;/font&gt;&lt;/span&gt; file &lt;span&gt;&lt;font color="#0000ff"&gt;in&lt;/font&gt;&lt;/span&gt; files)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (CreateDirectoryStructure(txtLocalPath.Text, file.&lt;span&gt;&lt;font color="#ff0000"&gt;Url&lt;/font&gt;&lt;/span&gt;))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; filepath = System.IO.&lt;span&gt;&lt;font color="#2b91af"&gt;Path&lt;/font&gt;&lt;/span&gt;.Combine(txtLocalPath.Text,&lt;br /&gt;                                                 file.&lt;span&gt;&lt;font color="#ff0000"&gt;Url&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;byte&lt;/font&gt;&lt;/span&gt;[] binFile = file.&lt;span&gt;&lt;font color="#ff0000"&gt;OpenBinary&lt;/font&gt;&lt;/span&gt;();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.IO.&lt;span&gt;&lt;font color="#2b91af"&gt;FileStream&lt;/font&gt;&lt;/span&gt; fstream = System.IO.&lt;span&gt;&lt;font color="#2b91af"&gt;File&lt;/font&gt;&lt;/span&gt;.Create(filepath);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fstream.Write(binFile, 0, binFile.Length);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fstream.Close();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;else&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;throw&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;ArgumentException&lt;/font&gt;&lt;/span&gt;(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;Cannot Create Folders Structure&amp;quot;&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;/span&gt; CreateDirectoryStructure(&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; baseFolder, &lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; filepath)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (!&lt;span&gt;&lt;font color="#2b91af"&gt;Directory&lt;/font&gt;&lt;/span&gt;.Exists(baseFolder)) &lt;span&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;false&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; paths = filepath.Split(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;#39;/&amp;#39;&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;for&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; i = 0; i &amp;lt; paths.Length - 1; i++)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; baseFolder = System.IO.&lt;span&gt;&lt;font color="#2b91af"&gt;Path&lt;/font&gt;&lt;/span&gt;.Combine(baseFolder, paths[i]);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#2b91af"&gt;Directory&lt;/font&gt;&lt;/span&gt;.CreateDirectory(baseFolder);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;true&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;h3&gt;Upload File To SharePoint Site&lt;/h3&gt;

&lt;p&gt;Once you got all files from the Old SharePoint site you can enter the new SharePoint site url and click the Upload button.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:12pt;"&gt;private&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:12pt;"&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; btnUpload_Click(&lt;span&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/span&gt; sender, &lt;span&gt;&lt;font color="#2b91af"&gt;RoutedEventArgs&lt;/font&gt;&lt;/span&gt; e)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#2b91af"&gt;SPSite&lt;/font&gt;&lt;/span&gt; site = &lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;SPSite&lt;/font&gt;&lt;/span&gt;(txtTargetSP.Text))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#2b91af"&gt;SPWeb&lt;/font&gt;&lt;/span&gt; targetSP = site.OpenWeb();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;foreach&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; file &lt;span&gt;&lt;font color="#0000ff"&gt;in&lt;/font&gt;&lt;/span&gt; listLocalFolders.Items.Cast&amp;lt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;&amp;gt;().Select&lt;br /&gt;                (folder =&amp;gt; &lt;span&gt;&lt;font color="#2b91af"&gt;Directory&lt;/font&gt;&lt;/span&gt;.GetFiles(folder, &lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;*.*&amp;quot;&lt;/font&gt;&lt;/span&gt;, &lt;br /&gt;                 &lt;span&gt;&lt;font color="#2b91af"&gt;SearchOption&lt;/font&gt;&lt;/span&gt;.AllDirectories)).SelectMany(files =&amp;gt; files))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UploadFile(file, file.Replace(txtLocalPath.Text, &lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;.Empty)&lt;br /&gt;                       , targetSP);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;Removing the local path from the full file path will result with the destination file to the new SharePoint site.&lt;/p&gt;

&lt;p&gt;The propose of &lt;u&gt;EnsureParentFolder&lt;/u&gt; is to ensure the destination folder in the new SharePoint site exists, and if not create the folder in the new site.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;UploadFile&lt;/u&gt; will stream out the file content and using &lt;span&gt;&lt;font color="#2b91af"&gt;SPWeb.&lt;font color="#000000"&gt;Files.Add method include the destination path will add a new file to the SharePoint site.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:12pt;"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:12pt;"&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; EnsureParentFolder(&lt;span&gt;&lt;font color="#2b91af"&gt;SPWeb&lt;/font&gt;&lt;/span&gt; parentSite, &lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; destinUrl)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; destinUrl = parentSite.GetFile(destinUrl).&lt;span&gt;&lt;font color="#ff0000"&gt;Url&lt;/font&gt;&lt;/span&gt;;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; index = destinUrl.LastIndexOf(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;/&amp;quot;&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; parentFolderUrl = &lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;.Empty;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (index &amp;gt; -1)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; parentFolderUrl = destinUrl.Substring(0, index);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#2b91af"&gt;SPFolder&lt;/font&gt;&lt;/span&gt; parentFolder&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = parentSite.GetFolder(parentFolderUrl);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (!parentFolder.Exists)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#2b91af"&gt;SPFolder&lt;/font&gt;&lt;/span&gt; currentFolder = parentFolderUrl.Split(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;#39;/&amp;#39;&lt;/font&gt;&lt;/span&gt;).&lt;br /&gt;            Aggregate&amp;lt;&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt;, &lt;span&gt;&lt;font color="#2b91af"&gt;SPFolder&lt;/font&gt;&lt;/span&gt;&amp;gt;(parentSite.RootFolder, &lt;br /&gt;           (current, folder) =&amp;gt; current.SubFolders.&lt;span&gt;&lt;font color="#000000"&gt;Add&lt;/font&gt;&lt;/span&gt;(folder));&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/span&gt; parentFolderUrl;&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;/span&gt; UploadFile(&lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; srcUrl, &lt;span&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;/span&gt; destUrl, &lt;span&gt;&lt;font color="#2b91af"&gt;SPWeb&lt;/font&gt;&lt;/span&gt; site)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (!&lt;span&gt;&lt;font color="#2b91af"&gt;File&lt;/font&gt;&lt;/span&gt;.Exists(srcUrl))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;throw&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#2b91af"&gt;ArgumentException&lt;/font&gt;&lt;/span&gt;(&lt;span&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;/span&gt;.Format(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#3cb371"&gt;{0}&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font color="#a31515"&gt; does not exist&amp;quot;&lt;/font&gt;&lt;/span&gt;,&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; srcUrl), &lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;srcUrl&amp;quot;&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; fStream = &lt;span&gt;&lt;font color="#2b91af"&gt;File&lt;/font&gt;&lt;/span&gt;.OpenRead(srcUrl);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;/span&gt; contents = &lt;span&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;span&gt;&lt;font color="#0000ff"&gt;byte&lt;/font&gt;&lt;/span&gt;[fStream.Length];&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; fStream.Read(contents, 0, (&lt;span&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/span&gt;)fStream.Length);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; fStream.Close();&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;/span&gt; (destUrl.StartsWith(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;\\&amp;quot;&lt;/font&gt;&lt;/span&gt;))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; destUrl = destUrl.Substring(1);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; destUrl = destUrl.Replace(&lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;\\&amp;quot;&lt;/font&gt;&lt;/span&gt;, &lt;span&gt;&lt;font color="#a31515"&gt;&amp;quot;/&amp;quot;&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; EnsureParentFolder(site, destUrl);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;try&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; site.Files.&lt;span&gt;&lt;font color="#000000"&gt;Add&lt;/font&gt;&lt;/span&gt;(destUrl, contents, &lt;span&gt;&lt;font color="#0000ff"&gt;true&lt;/font&gt;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span&gt;&lt;font color="#0000ff"&gt;catch&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt;&lt;/span&gt; ex)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=921005" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS/default.aspx">TFS</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+Utilities/default.aspx">TFS Utilities</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/SQL/default.aspx">SQL</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Share+Point/default.aspx">Share Point</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/SQL+2008/default.aspx">SQL 2008</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+2010/default.aspx">TFS 2010</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+4/default.aspx">.NET 4</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Tools/default.aspx">Tools</category></item><item><title>SharePoint 2007 Files Restore Tool</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2011/02/25/sharepoint-2007-files-restore-tool.aspx</link><pubDate>Fri, 25 Feb 2011 17:18:14 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:795660</guid><dc:creator>shair</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=795660</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2011/02/25/sharepoint-2007-files-restore-tool.aspx#comments</comments><description>&lt;h1&gt;SharePoint 2007 Files Restore Tool&lt;/h1&gt;  &lt;p&gt;I had a customer that need to restore some files from a deleted SharePoint site (long story….) in TFS 2010, the first option is to restore the entire TFS 2010 database include the SharePoint content database but instead of doing all this work I’ve written a small tool to help with that issue.&lt;/p&gt;  &lt;p&gt;Just restore the WSS_Content database (the version before the deletion) to another sql instance&amp;#160; and use the tool to hook the database and restore the files you needed.&lt;/p&gt;  &lt;p&gt;This tool can also help you export files from existing SharePoint 2007 Content Database.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/795659/download.aspx" target="_blank"&gt;Download Tool&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_60AD2914.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_3BEBEBD0.png" width="799" height="442" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=795660" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+Utilities/default.aspx">TFS Utilities</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Share+Point/default.aspx">Share Point</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/How+To/default.aspx">How To</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+2010/default.aspx">TFS 2010</category></item><item><title>WSS 2.0 Upgrade To WSS 3.0 Failed With Violation of UNIQUE KEY constraint 'AllUserData_Url'</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2010/09/16/wss-2-0-upgrade-to-wss-3-0-failed-with-violation-of-unique-key-constraint-alluserdata-url.aspx</link><pubDate>Thu, 16 Sep 2010 17:26:08 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:710221</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=710221</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2010/09/16/wss-2-0-upgrade-to-wss-3-0-failed-with-violation-of-unique-key-constraint-alluserdata-url.aspx#comments</comments><description>&lt;h1&gt;WSS 2.0 Upgrade To WSS 3.0 Failed With Violation of UNIQUE KEY constraint &amp;#39;AllUserData_Url&amp;#39;&lt;/h1&gt;  &lt;p&gt;Couple of days a ago I had a very strange problem performing full upgrade from TFS 2005 to TFS 2010, the TFS upgrade went just fine but the WSS upgrade from 2 to 3 throws many couple of wired errors.&lt;/p&gt;  &lt;p&gt;The WSS 2.0 to WSS 3.0 upgrade suppose to be “easy”, but this time I was though I got to a dead-end:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;WSS 2.0 Prescan –&amp;gt; &lt;u&gt;&lt;strong&gt;Scan finished without failure.&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;    &lt;li&gt;Installed WSS 3.0 and choose to perform Upgrade.&lt;/li&gt;    &lt;li&gt;Configuration \ Upgrade Failed.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;After a deep dive in couple of upgrade logs I found the following error:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;[SPContentDatabaseSequence] [ERROR] [9/13/2010 1:43:45 PM]: Action 3.0.87.0 of Microsoft.SharePoint.Upgrade.SPContentDatabaseSequence failed.     &lt;br /&gt;[SPContentDatabaseSequence] [ERROR] [9/13/2010 1:43:45 PM]: Violation of UNIQUE KEY constraint &amp;#39;AllUserData_Url&amp;#39;. Cannot insert duplicate key in object &amp;#39;dbo.AllUserData&amp;#39;.      &lt;br /&gt;The statement has been terminated.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Violation of UNIQUE KEY constraint &amp;#39;AllUserData_Url&amp;#39;. Cannot insert duplicate key in object &amp;#39;dbo.AllUserData&amp;#39;.&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;This issue occurs when the WSS 2.0 site content includes &lt;u&gt;&lt;strong&gt;discussion boards that have &lt;font color="#ff0000"&gt;similar names&lt;/font&gt;&lt;/strong&gt;&lt;/u&gt;.      &lt;br /&gt; &lt;u&gt;&lt;strong&gt;For example&lt;/strong&gt;&lt;/u&gt;, this issue occurs when the names of the discussion boards are &lt;strong&gt;Discussion Board1, Discussion Board2, and Discussion Board3&lt;/strong&gt;.      &lt;br /&gt; In this case, the upgrade process cannot determine the unique name of each discussion board because the names of the discussion boards are similar.&lt;/em&gt;&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Solution – See KB - &lt;a href="http://support.microsoft.com/kb/937290"&gt;http://support.microsoft.com/kb/937290&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;To resolve this issue, use Microsoft Office SharePoint Designer 2007 or Microsoft Office FrontPage 2003 to rename the discussion boards before you try to upgrade from Windows SharePoint Services 2.0.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;*** The discussion board names may looks completely different from WSS, but the real name will only revel him self using SharePoint Designer and front page. ***&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/discboardpostings1_32AF1D08.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="discboardpostings1" border="0" alt="discboardpostings1" src="http://blogs.microsoft.co.il/blogs/shair/discboardpostings1_thumb_544B45D9.jpg" width="704" height="232" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;Hope this helps.    &lt;br /&gt;&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/shair/archive/2010/09/16/wss-2-0-upgrade-to-wss-3-0-failed-with-violation-of-unique-key-constraint-alluserdata-url.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/shair/archive/2010/09/16/wss-2-0-upgrade-to-wss-3-0-failed-with-violation-of-unique-key-constraint-alluserdata-url.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/shair/archive/2010/09/16/wss-2-0-upgrade-to-wss-3-0-failed-with-violation-of-unique-key-constraint-alluserdata-url.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/shair/archive/2010/09/16/wss-2-0-upgrade-to-wss-3-0-failed-with-violation-of-unique-key-constraint-alluserdata-url.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=7121713" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=710221" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+Administration/default.aspx">TFS Administration</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Share+Point/default.aspx">Share Point</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Team+System+2010/default.aspx">Team System 2010</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+2010/default.aspx">TFS 2010</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Migration/default.aspx">Migration</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+4/default.aspx">.NET 4</category></item><item><title>TFS 2010 - TF30177 – Team Project Creation Failed</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2010/07/19/tfs-2010-tf30177-team-project-creation-failed.aspx</link><pubDate>Mon, 19 Jul 2010 12:57:59 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:680861</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=680861</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2010/07/19/tfs-2010-tf30177-team-project-creation-failed.aspx#comments</comments><description>&lt;h1&gt;TFS 2010 - TF30177 – Team Project Creation Failed&lt;/h1&gt;  &lt;p&gt;Today I tired to create new Team Project on TFS 2010 (Upgraded from 2008) and I got the following error:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;em&gt;The Project Creation Wizard encountered a problem while uploading documents to the following server running Sharepoint Products: server..,. The reason for the failure cannot be determined at this time. Because the operation failed, the wizard was not able to finish creating the team project.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_20C03D54.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_657C3BBB.png" width="500" height="442" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I’ve checked for permissions and everything is Fine, I went to the &lt;strong&gt;TFS Administration Console&lt;/strong&gt; to check if the SharePoint connection and saw there is a problem with the &lt;strong&gt;&lt;u&gt;TswaWebPartCollection.wsp feature&lt;/u&gt;&lt;/strong&gt;. (This works couple of days ago, so I don’t really know the real reason why that happed)&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_19ECE837.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_3D5966CF.png" width="506" height="383" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To deploy &lt;strong&gt;TswaWebPartCollection.wsp&lt;/strong&gt; feature, open Sharepoint system administration go to “&lt;strong&gt;Operations&lt;/strong&gt;” tab and click on “&lt;strong&gt;Solution Manager&lt;/strong&gt;”.&lt;/p&gt;  &lt;p&gt;Click on the “&lt;strong&gt;TswaWebPartCollection.wsp&lt;/strong&gt;” and deploy the feature, ,now everything should work just fine.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_535FD261.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_299C576E.png" width="624" height="206" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=680861" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+Administration/default.aspx">TFS Administration</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Process+Template/default.aspx">Process Template</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Share+Point/default.aspx">Share Point</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/How+To/default.aspx">How To</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+2010/default.aspx">TFS 2010</category></item><item><title>Where Is “Create or extend Web Application” Link?</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2010/04/25/where-is-create-or-extend-web-application-link.aspx</link><pubDate>Sun, 25 Apr 2010 21:02:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:597473</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=597473</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2010/04/25/where-is-create-or-extend-web-application-link.aspx#comments</comments><description>&lt;h1&gt;Where Is “Create or extend Web Application” Link? &lt;/h1&gt;  &lt;p&gt;I just post about &lt;a href="http://blogs.microsoft.co.il/blogs/shair/archive/2010/04/25/install-moss-on-windows-7.aspx"&gt;Install MOSS On Windows 7&lt;/a&gt; and stuck with another problem, &lt;u&gt;&lt;strong&gt;Where Is “Create or extend Web Application” Link?&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;To add a new collection to MOSS I need to have a Web Application but I can’t create one because the link is missing.&lt;/p&gt;  &lt;p&gt;All you need to do is launch IE with &amp;quot;run as administrator&amp;quot; to see the &amp;quot;Create or extend Web Application&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_3FE57579.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_1B906B2A.png" width="452" height="353" /&gt;&lt;/a&gt; &lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_4175F5B3.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_3E809100.png" width="474" height="353" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=597473" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Share+Point/default.aspx">Share Point</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>Install MOSS On Windows 7</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2010/04/25/install-moss-on-windows-7.aspx</link><pubDate>Sun, 25 Apr 2010 20:54:44 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:597468</guid><dc:creator>shair</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=597468</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2010/04/25/install-moss-on-windows-7.aspx#comments</comments><description>&lt;h1&gt;Install MOSS On Windows 7&lt;/h1&gt;  &lt;p&gt;In couple of days I’m going to lecture about MOSS\WSS Load Testing using Visual Studio 2010, for that reason I need to install MOSS on my computer – Lot’s Of Cool Demos!&lt;/p&gt;  &lt;p&gt;So after a very fast search I found this great article on how to do it - &lt;a href="http://community.bamboosolutions.com/blogs/bambooteamblog/archive/2008/05/21/how-to-install-windows-sharepoint-services-3-0-sp1-on-vista-x64-x86.aspx" target="_blank"&gt;For more information here is the full article&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;So how to get started?&lt;/h3&gt;  &lt;p&gt;First you need to download the SharePoint installation - &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=EF93E453-75F1-45DF-8C6F-4565E8549C2A&amp;amp;displaylang=en"&gt;Windows SharePoint Services 3.0 with Service Pack 1&lt;/a&gt; or &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9FB41E51-CB03-4B47-B89A-396786492CBA&amp;amp;displaylang=en"&gt;Windows SharePoint Services 3.0 x64 with Service Pack 1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;But you’ll notice that this message popup, this because MOSS \ WSS can only be installed on Windows Server 2003/2008.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_5FC716E1.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_21EA7F65.png" width="456" height="196" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;Every Things Is Alright Thanks to &lt;a href="http://community.bamboosolutions.com" target="_blank"&gt;Bamboo&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;Using &lt;a href="http://community.bamboosolutions.com" target="_blank"&gt;Bamboo&lt;/a&gt; &lt;a href="http://community.bamboosolutions.com/media/p/193.aspx"&gt;Setup Helper file&lt;/a&gt; you can install MOSS \ WSS on Windows Vista \ 7!&lt;/p&gt;  &lt;p&gt;Run the setup (next next next).&lt;/p&gt;  &lt;p&gt;&lt;img alt="wssvistainstall_01" src="http://community.bamboosolutions.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bambooteamblog/wssvistainstall_5F00_01_5F00_thumb.png" /&gt;&lt;/p&gt;  &lt;p&gt;When the installation has finished placed the SharePoint installation you downloaded before and placed it in the same folder as “SetupLauncher”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_337A6A30.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_193A010C.png" width="287" height="154" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When you run “SetupLauncher” a console window will appears,select SharePoint setup file and run it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_3A69F6E8.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_0C8C0856.png" width="571" height="292" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And Walla!&lt;/p&gt;  &lt;p&gt;&lt;img src="http://community.bamboosolutions.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.22/wss.Advanced.jpg" width="552" height="294" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.bamboosolutions.com/blogs/bambooteamblog/archive/2008/05/21/how-to-install-windows-sharepoint-services-3-0-sp1-on-vista-x64-x86.aspx" target="_blank"&gt;For more information here is the full article&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=597468" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Share+Point/default.aspx">Share Point</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>How To: Users cannot access to Team System SharePoint</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2009/04/30/how-to-users-cannot-access-to-team-system-sharepoint.aspx</link><pubDate>Thu, 30 Apr 2009 16:39:15 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:278928</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=278928</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2009/04/30/how-to-users-cannot-access-to-team-system-sharepoint.aspx#comments</comments><description>&lt;h1&gt;How To: Users cannot access to Team System SharePoint&lt;/h1&gt;  &lt;p&gt;Team System works with different levels of security for each module, for example SharePoint, Source Control, Reports etc…&lt;/p&gt;  &lt;p&gt;One of the most common issue is SharePoint security, I’m getting emails regarding this problem every week,   &lt;br /&gt;Here is the solution:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To perform this operation you need administrator user.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Open SharePoint portal by right click on your Team Project and “Show Project Portal” .&lt;/p&gt;  &lt;p&gt;You should see your project SharePoint portal .&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_152986CF.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="485" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_5B76C717.png" width="646" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Click on “Site Actions” and pick “Site Settings”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_5DEFD308.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="264" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_558BFDB1.png" width="437" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You are now in the Settings page, under Users and Permissions pick “People and groups”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_1188199A.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="165" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_111BE6A5.png" width="290" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Pick “New” and click “Add Users”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_6EE3DB1E.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="356" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_74524BC2.png" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;First write down the name\s of the users or groups and click check to make sure the user or group are valid,&lt;/p&gt;  &lt;p&gt;than select the right permissions for the user/group and click “OK”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_77A3BD9D.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="364" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_7B61626D.png" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Enjoy.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=278928" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Share+Point/default.aspx">Share Point</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/How+To/default.aspx">How To</category></item><item><title>How do you move (or copy) documents from one library to another while keeping version history intact?</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2008/11/30/how-do-you-move-or-copy-documents-from-one-library-to-another-while-keeping-version-history-intact.aspx</link><pubDate>Sun, 30 Nov 2008 11:03:52 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:179481</guid><dc:creator>Shai Raiten</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=179481</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2008/11/30/how-do-you-move-or-copy-documents-from-one-library-to-another-while-keeping-version-history-intact.aspx#comments</comments><description>&lt;h1&gt;How do you move (or copy) documents from one library to another while keeping version history intact?&lt;/h1&gt; &lt;p&gt;Lots of people have this problem when moving\copying files in SharePoint from folder to folder you lose your document version history.&lt;/p&gt; &lt;p&gt;This need is so obvious, but still not included in WSS, &lt;br /&gt;&lt;br /&gt;So Here is a great post by Dink in &lt;a href="http://www.sharepointblogs.com/dez/archive/2007/11/30/moving-copying-documents-between-libraries-with-metadata-including-version-history.aspx"&gt;SharePoint Blogs&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=179481" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Share+Point/default.aspx">Share Point</category></item><item><title>Using Team Foundation Server to Develop Custom SharePoint Products and Technologies Applications</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2008/10/20/using-team-foundation-server-to-develop-custom-sharepoint-products-and-technologies-applications.aspx</link><pubDate>Mon, 20 Oct 2008 20:42:40 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:155509</guid><dc:creator>Shai Raiten</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=155509</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2008/10/20/using-team-foundation-server-to-develop-custom-sharepoint-products-and-technologies-applications.aspx#comments</comments><description>&lt;h1&gt;Using Team Foundation Server to Develop Custom SharePoint Products and Technologies Applications&lt;a href="http://blogs.microsoft.co.il/blogs/shair/WindowsLiveWriter/UsingTeamFoundationServertoDevelopCustom_13F59/Cc948982_55960e2f-f1a5-4cd3-af1f-4c563fccc04e(en-us,office_12)_2.jpg"&gt;&lt;img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" border="0" alt="Cc948982_55960e2f-f1a5-4cd3-af1f-4c563fccc04e(en-us,office_12)" align="right" src="http://blogs.microsoft.co.il/blogs/shair/WindowsLiveWriter/UsingTeamFoundationServertoDevelopCustom_13F59/Cc948982_55960e2f-f1a5-4cd3-af1f-4c563fccc04e(en-us,office_12)_thumb.jpg" width="226" height="244" /&gt;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;Here is a nice article about how to use Microsoft Visual Studio 2008 Team Foundation Server to support SharePoint application development, and provide an integrated development environment and single source code repository for process activities, integrated progress reporting, and team roles. &lt;/p&gt; &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/cc948982.aspx" href="http://msdn.microsoft.com/en-us/library/cc948982.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc948982.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=155509" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS/default.aspx">TFS</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Share+Point/default.aspx">Share Point</category></item></channel></rss>