FIX: Visual Studio .NET 2002 breaks Visual SourceSafe integration behavior

This article was previously published under Q319997
This article has been archived. It is offered "as is" and will no longer be updated.
The Visual Source Safe (VSS) integration behavior in Visual Studio .NET 2002 is different from that in Visual InterDev 6 (VID6). In VID6, the files are always automatically checked out when they are copied and pasted into the IDE if the targets already exist and are replaced by the source. In Visual Studio .NET, this is not the case.

NOTE: Always use the Get Latest Version command for the whole project before you add files or check in changes from the Visual Studio .NET IDE.

Service pack information

To resolve this problem, obtain the latest service pack for Microsoft Visual Studio .NET. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
837234 List of bugs that are fixed in Visual Studio .NET 2002 Service Pack 1

Hotfix information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date          Time    Version      Size        File name   -----------------------------------------------------------------------   25-Jul-2002   19:35   7.0.9522.0     917,504   Csproj.dll   25-Jul-2002   19:15   7.0.9522.0     311,296   Dirprj.dll   25-Jul-2002   19:29   7.0.9522.0   1,400,832   Msvbprj.dll   25-Jul-2002   16:07   7.0.9522.0     253,952   Visualstudioteamcore.dll   25-Jul-2002   19:33   7.0.9522.0   2,981,888   Vsscc.dll   25-Jul-2002   08:39   7.0.9522.0     176,128   Csprojui.dll   25-Jul-2002   08:38   7.0.9522.0     180,224   Msvbprjui.dll				
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. This problem was first corrected in Visual Studio .NET 2002 Service Pack 1.

Steps to reproduce the behavior

On a computer that has Visual Studio .NET, VID6 and VSS6, installed, follow the steps for each program set.

VID6 and VSS6

  1. Create a blank solution named test.
  2. Add two Web projects to the solution; name them source and target.
  3. Add six Web pages (1.asp, 2.asp, 3.asp, 4.asp, 5.asp, and 6.asp) to the project named source.
  4. Add four Web pages (1.asp, 2.asp, 3.asp, and 4.asp) to the project named target.
  5. Set the solution and the two Web projects under VSS control, so that you have three different VSS projects in the VSS database: $/test, $/source.VI6, and $/target.VI6.
  6. Set the status of the files as follows:
    items | Source-Project | Target-Project -------------------------------------------1.asp | CheckedOut     | CheckedOut 2.asp | CheckedOut     | CheckedIn 3.asp | CheckedIn      | CheckedOut 4.asp | CheckedIn      | CheckedIn 5.asp | CheckedOut     | (not existing) 6.asp | CheckedIn      | (not existing) 						
    This chart lists all relevant combinations for the status of your two projects before you use the IDE Copy or Paste operations.
  7. In the VID6 project explorer, click to select all six asp pages in the source project, right-click the selection, and then click Copy.
  8. In the VID6 project explorer, right-click the target project, and then click Paste.
  9. The result is the following:
    items | Source-Project | Target-Project                         | before Paste   | after Paste ------------------------------------------------------1.asp | CheckedOut     | CheckedOut     | CheckedOut 2.asp | CheckedOut     | CheckedIn      | CheckedOut 3.asp | CheckedIn      | CheckedOut     | CheckedOut 4.asp | CheckedIn      | CheckedIn      | CheckedOut 5.asp | CheckedOut     | (not existing) | CheckedOut 6.asp | CheckedIn      | (not existing) | CheckedIn 					

Visual Studio .NET and VSS6

Follow the steps in the "VID6 and VSS6" section. The result after the Paste operation appears as follows:
items | Source-Project | Target-Project                        | before Paste   | after Paste--------------------------------------------------------------1.asp | CheckedOut     | CheckedOut     | CheckedOut2.asp | CheckedOut     | CheckedIn      | CheckedIn3.asp | CheckedIn      | CheckedOut     | CheckedOut4.asp | CheckedIn      | CheckedIn      | CheckedIn5.asp | CheckedOut     | (not existing) | CheckedOut6.asp | CheckedIn      | (not existing) | CheckedOut				
When you use VID6, the Copy operation always results in a CheckedOut file status if the target already exists and is replaced by the source. If the target does not exist, the status of the source does not change.

When you use Visual Studio .NET, the result is different. The status of the target file remains as it was before the Paste operation if the file already exists in target, and the status of the target is always CheckedOut if the file does not exist in the target before the Paste operation.

Article ID: 319997 - Last Review: 10/24/2013 11:05:13 - Revision: 3.3

  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual SourceSafe 6.0 Standard Edition
  • kbnosurvey kbarchive kbbug kbfix kbqfe kbvs2002sp1sweep kbvs2002sp1fix kbhotfixserver kbvs2005swept kbvs2005doesnotapply KB319997