April 2009 - Posts
Error When Trying To Access Source Control With Team Explorer (vscommod.cpp Line number:173)
Today I have installed windows 7 and visual studio 2008 + team explorer.
I open visual studio and go to team explorer to open source control and I saw that there is no Source Control there

I even try to open source control from the file menu but I got the following error:
Try the following steps to resolve the issue:
1. Open a command prompt.
2. Navigate to the following folder:
"%programfiles%\Microsoft Visual Studio 9\Common7\IDE\"
This paths assumes you have Visual Studio 2008 installed at the default location, so navigate accordingly.
3. Type the following:
devenv.exe /resetuserdata
Hope this helps.
How To: Users cannot access to Team System SharePoint
Team System works with different levels of security for each module, for example SharePoint, Source Control, Reports etc…
One of the most common issue is SharePoint security, I’m getting emails regarding this problem every week,
Here is the solution:
To perform this operation you need administrator user.
Open SharePoint portal by right click on your Team Project and “Show Project Portal” .
You should see your project SharePoint portal .
Click on “Site Actions” and pick “Site Settings”
You are now in the Settings page, under Users and Permissions pick “People and groups”
Pick “New” and click “Add Users”.
First write down the name\s of the users or groups and click check to make sure the user or group are valid,
than select the right permissions for the user/group and click “OK”.
Enjoy.
Data Dude R2 Is Out
Martin Hinshelwood's just post about Visual Studio Team System 2008 Database Edition GDR R2.
There is new Deployment abilities Refactoring , Data types and of course better support for SQL 2008, for the full overview Click Here
Enjoy.
Visual Studio 2010 MTCF Glossary activity for Hebrew
We are looking for volunteers to help us with the Microsoft Community Glossary project for Hebrew Visual Studio 2010.
The glossary site is live on the Microsoft Terminology Community Forum at: http://www.microsoft.com/language/MTCF/mtcf_glossary.aspx?s=4&langid=1498&cult=en-us.
The goal of this project is to translate the core terminology for Visual Studio 2010 that will be used for the creation of the Captions Language Interface Pack for the next version of Visual Studio, 2010.
The invitation code to access the site is the following: pVM5DA
The site will be open until 30th May 2009.
INSTRUCTIONS:
Accessing the site:
The site is by invitation only. The first step is to sign in using your Windows Live ID. Once that is complete, you will get a page where you are asked to Register. Please go through the registration process and use the Invitation Code provided to register: enter this under ‘’Special Access Code”. Please note that the registration instructions say not to use your real name. However, we want to be able to track your contribution and since this is a site with restricted participation where only other MVPs or MSPs are invited, we encourage you to use your real name and put your title after your name also, e.g. John Smith MSP.
Once you have completed the registration, you will access the glossary page. Please note that loading up the site the first time might be slow since it loads the page that contains all terms, and there are over 700 terms. We strongly suggest that you do not work on the page containing all terms but that you work on the individual letter pages. Since each letter page contains fewer terms, the performance should be good.
The next time you access the site, you will be recognized automatically. You will just need to sign in using Windows Live ID and you will get automatically to the Home Page. From there you can click on the Glossary link on the top bar to access the glossary pages.
Submitting translation suggestions and voting
The site shows English terms and their definition. For this glossary, Microsoft has intentionally not provided any translations since we do not want to influence the participants. We leave it up to you to suggest the translation that you think is most appropriate and that is currently used in your language. To do so, you can simply click on the link ‘’Suggest Translation or Vote’’ near the term in question. You can enter your translation in the ‘’Translation’’ text box and also a comment if you wish. Make you click on the ‘Submit Suggestion’’ button.
If you see a translation submitted by another user, we encourage you to vote for it if you think that this is correct. This will allow us to determine how many people agree with the translations suggested. The more votes we have, the easier it is for our moderators to determine that that translation is correct and should be used. Again you can click on the link ‘’Suggest Translation or Vote’’; go under Votes translation and click on the vote button. If you do NOT agree with the translation, you can add a comment by clicking on the ‘’Pencil’’ button and say why you think that is not correct. If you want to submit a different translation because you do not agree, please do not write it in the comment but submit a translation suggestion in the upper part of the page. The screen-shot below shows the UI of the page in question.
Note: should you experience any problems, try deleting your cookies since those can sometimes interfere with the site.
a version for Visual Studio 2008 available at: http://www.microsoft.com/downloads/details.aspx?FamilyId=4E5258D2-52F4-46B8-8B74-DA2DBEC7C2F7&displaylang=he).
TFS API Part 19: Merge
In my last post about TFS API TFS API Part 18: More Basic Stuff On Workspaces I demonstrate how to get / create and delete workspaces.
In this post I’ll show how to perform Merge using TFS API.
First add reference for
Microsoft.TeamFoundation
Microsoft.TeamFoundation.Client
Microsoft.TeamFoundation.Common.dll
Microsoft.TeamFoundation.VersionControl.Client.dll
located in - C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies
Step 1 – Connect TFS + Create VersionControlServer Object + Get all project list
private void btn_dp_Click(object sender, RoutedEventArgs e)
{
DomainProjectPicker dp = new DomainProjectPicker(DomainProjectPickerMode.None);
dp.ShowDialog();
if (dp.SelectedServer != null)
{
tfs = new TeamFoundationServer(dp.SelectedServer.Name,new UICredentialsProvider());
tfs.EnsureAuthenticated();
//Using ICommonStructureService to get all project in TFS.
ICommonStructureService structureService = (ICommonStructureService)tfs.GetService(typeof(ICommonStructureService));
ProjectInfo[] projects = structureService.ListAllProjects();
combo_projects.ItemsSource = projects;
sourceControl = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
AddWorkSapces();
}
}
Step 2 – Add workspaces
In order to perform merge you need workspace to work on.
private void AddWorkSapces()
{
Workspace[] wss = GetWorkspaces();
cob_workspace_list.Items.Clear();
foreach (Workspace ws in wss)
{
WorkSpaceItem item = new WorkSpaceItem(ws.Name, ws);
cob_workspace_list.Items.Add(item);
}
}
public Workspace[] GetWorkspaces()
{
try
{
return sourceControl.QueryWorkspaces(null, sourceControl.AuthenticatedUser, System.Net.Dns.GetHostName().ToString());
//You also can get remote workspaces
//QueryWorkspaces(worspaceName,worksapceOwner,computer)
}
catch
{
throw;
}
}
Step 3 – Map source control folders and files
A simple view to help us select Source folder and Target folder.
private void GetPathFiles(TreeViewItem TreeItem, String path)
{
try
{
RecursionType recursion = RecursionType.OneLevel;
//Also have - Full, None
Item[] items = null;
// Get the latest version of the information for the items.
ItemSet itemSet = sourceControl.GetItems(path, recursion);
items = itemSet.Items;
foreach (Item keyItem in items)
{
char[] charSeparators = new char[] { '/' };
//Using split to isolated the Project Name and the File Name
string[] ss = keyItem.ServerItem.Split(charSeparators, StringSplitOptions.None);
//!= items[0] ignore the first item, the Team Project Name
if (keyItem != items[0])
{
TreeViewItem new_item = null;
Execute exe = delegate()
{
new_item = new TreeViewItem();
//Get File or Folder Name
string filename = keyItem.ServerItem.Replace(path + "/", string.Empty);
new_item.Header = filename;
//Saving the full path of the file/folder
new_item.Tag = keyItem.ServerItem;
TreeItem.Items.Add(new_item);
};
this.Dispatcher.Invoke(exe, null);
GetPathFiles(new_item, keyItem.ServerItem);
}
}
}
catch (Exception ex)
{
}
}
Step 4 – Perform Merge
Read more about Workspace.Merge
private void Merge(Workspace workspace,string source,string target)
{
GetStatus status = workspace.Merge(source,
target,
null,
null,
LockLevel.None,
RecursionType.Full,
MergeOptions.None);
//public GetStatus Merge (string sourcePath,
// string targetPath,
// VersionSpec versionFrom,
// VersionSpec versionTo,
// LockLevel lockLevel,
// RecursionType recursion,
// MergeOptions mergeOptions)
lbl_NumConflicts.Content = status.NumConflicts.ToString();
lbl_NumFailures.Content = status.NumFailures.ToString();
lbl_NumOperations.Content = status.NumOperations.ToString();
lbl_NumWarnings.Content = status.NumWarnings.ToString();
}
Parameters:
sourcePath - The source of the merge (local or server path).
targetPath - The target of the merge (local or server path -- must be mapped).
versionFrom - The starting version that may be a null reference (
Nothing in Visual Basic).
versionTo - The ending version that may be a null reference (
Nothing in Visual Basic).
lockLevel - The lock level to apply to each item specified by the target.
recursion - The level of recursion desired.
mergeOptions - Specifies the merge options.
AlwaysAcceptMine - discard any changes in source, and just update merge history
Baseless - perform baseless merge
ForceMerge - do not look at merge history and perform merge for specified range of versions
NoMerge - do not perform actual merge
None - no special options

Download Demo Project
Team Foundation Server 2010 Key Concepts
bharry just post a great article about TFS 2010 key concepts - http://blogs.msdn.com/bharry/archive/2009/04/19/team-foundation-server-2010-key-concepts.aspx
There is couple of major changes and very nice improvements, each day we are getting closer and closer to VS2010.
I believe that these new capabilities will significantly change the way enterprises manage their TFS installations in the future.
Enjoy
Did you Ghotit Right?
Yaniv just post about Ghotit beta Word Plug-in is released,
here is a short comparison between Office Spell Checker and Ghotit Context Spell Checker.
Bad sentence – Oi arm a god men hou dos not no hou to spel.
Good sentence – I am a good man who does not know how to spell.
First lets check this sentence with Office Spell Checker – and the results are -
Oil arm a god men hour dos not no hour to spell
Now let’s check this sentence with Ghotit Context Spell Checker – and the results
I am a good man hoe does not know how to spell
In the second Check (iteration) Ghotit is trying to find the right word for - hoe

Visual Studio 2010 Enhancements For Asp.Net
Mike Ormond's publish a great post on VS2010 and the new features in the Asp.Net area.
The post contains great information about Multi-Targeting, Web Designer Snippets, Javascript Intellisense Enhancements and Deployment in Asp.Net.
I recommend you to read it.
Here is a link to the full post - http://blogs.msdn.com/mikeormond/archive/2009/04/16/visual-studio-2010-enhancements-for-asp-net.aspx

How To Add Check In Policy
I know this is something that almost every one knows but some people don’t so here it is:
To perform this action you need to be Administrators of Team Foundation version control.
Open Team Explorer – Right click on your Team Project –> Team Project Settings – > Source Control
Choose “Check-in Policy” tab and add the policies you want.
Test your Check-in policy by performing check-in in source control.
For additional policies download Team Foundation Server Power Tools

Some Team Foundation Server 2008 Reports give errors with SQL Server 2008
Some reports will generate errors, when no errors occur with the same reports if used against SQL Server 2005.
Depending on the specific data available for the report, and parameters selected, you may see errors similar to the following.
You may also see some variations of these error messages, or see errors listed under a reports below when viewing other reports.
The full error information will appear only if viewing the reports directly on the SQL Reporting Services server, which is most commonly the Team Foundation Server Application Tier machine.
The error simpler to this error:
An error occurred during client rendering.
An error has occurred during report processing.
Query execution failed for dataset 'AllScenarios'. ---- < Different dataset may appears.
Query (26, 3) The set must have a single hierarchy to be used with the complement operator.
Reports from Projects Based on the "MSF for Agile Software Development - v4.2" Template
Reports from Projects Based on the "MSF for CMMI Process Improvement - v4.2" Template
- Issues and Blocked Work Items
- Requirement Details
- Requirements Test History and Overview
- Triage
Reports common to both templates
- Bugs by Priority
- Bugs Found Without Corresponding Tests
- Exit Criteria
- Issues List
- Load Test Summary
- Quality Indicators
- Related Work Items
- Unplanned Work
- Work Item with Tasks
How To Debug MSBuild Projects And Tasks
Almost everyone customize their MsBuild scripts for the company needs.
But some times because those customization you spend a lot of time try to make this script works as you want.
There is no easy way to debug those MSBuild script / Tasks and here is a list of links to help you accomplish this:
Powerful MSBuild projects debugger with extended functionality: step through mode, visual representation of build process on a debug diagram, breakpoints, viewing of project Property/Item values on every debug step.
User-friendly editors for MSBuild Extension Pack tasks. Online help for those tasks is available right in the Help window.
Cancel build feature allows to interrupt build process at any time.
Project element inner XML is editable.
Price : 55$ - 450$
A very good guide to help you Debug MSBuildTasks using Visual Studio and couple of free Tasks available there.
Price: Free
MSBUILD
And the last one is by raising the verbosity using MSBuild command line referense
For example : /verbosity:level
The available verbosity levels are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. /v is also acceptable.
For example:
msbuild /v:diag
I'm a Microsoft MVP!!!!!!!!!!
Yes I did it!
Dear Shai Raiten,
Congratulations! We are pleased to present you with the 2009 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others.
Here is my story….
Approximatly two years ago I was a developer at ICQ, than my boss came and ask me if I know about Team System ?
And my answer was No.
I went to a private college to learn more about Team System, during my time there I met several good people, two of them which I like to mention here:
Ariel Gur-Arieh, an exceptional teacher that I've learned alot from in that college and more down the road And Guy kolbis who also helped me to get into this community.
After I finished the course I started working with Team System until it became a full time job.
A few months went by, and one day, I was contacted by Guy Burstein (*** My Hero ***) who offered me to pass the Microsoft keynote lecture about Team System in Israel SIGIST Conference 2007 .
The thought that I will be giving a lecture to so many people in such an important event, was terrifying at first, but with Guy's assistance and personal tutelage I got the job done.
After that and with Guy's encouragement, I started lecturing in more conferences. As My blog got more popular, I was writing more posts and got more involved in the community.
Now the circle is complete.
I would like to thank all the people who helped me get this MVP title and a special personal thanks to Sela Group and Guy burstien, my mentor.