Makale numarası: 248078 - Son Gözden Geçirme: 15 Ekim 2002 Salı - Gözden geçirme: 1.1

Hata: VSSVersion toplama dosya adları vermek Not

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Eylem hakkında dosyasının adını VSSVersions topluluk içinde döngü, hazır değil.

Çözüm

"Ekle" eylem için bir geçici çözüm, projenin öğeleri önceki sürümünde söz konusu sürümün karşılaştırmak almaktır. Geçerli sürüm ve önceki sürüm ne olursa olsun dosyasıdır eklenen dosyadır.

Durum

Microsoft, bunun bu makalenin başında listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır.

Daha fazla bilgi

Davranışı yeniden oluşturma adımları

Not: Bu yordam, Microsoft Visual Basic kullanır, ancak başka dillerde de aynı yapılabilir.
  1. Visual Basic'te bir Standart EXE proje yarat
  2. Bir Microsoft SourceSafe 6.0 (veya 5.0) başvuru kitaplığı (Ssapi.dll) oluşturun.
  3. Bir komut düğmesi Form1'e ekleyin.
  4. Düğmeyi çift tıklatın.
  5. Command1_Click Sub ' aşağıdaki kodu yapıştırın:
    Dim SSDB As New VSSDatabase
    Dim SSItem As VSSItem
    Dim TempItem As VSSItem
    Dim oVersion As VSSVersion
    Dim verDate As Date
    Dim User As String
    Dim Comment As String
    Dim Action As String
    
    ' Open SourceSafe database
    ' NOTE: If your path to srcsafe.ini, username, and password information
    '       differ from what is listed below, please adjust it accordingly.
             
    
    SSDB.Open "C:\Program Files\Microsoft Visual Studio\Common\VSS\srcsafe.ini", "Admin", ""
        
    ' Get project to search
    Set SSItem = SSDB.VSSItem("$/Project_To_Retrieve_History")
    
    ' Loop through the Versions collection getting each event
    For Each oVersion In SSItem.Versions(VSSFlags.VSSFLAG_RECURSYES)
        ' Get the action for the current version
        Action = oVersion.Action
            
        ' Check what the action is and print out what we find.
        If InStr(1, Action, "Added", vbTextCompare) > 0 Then
            ' Get the VSSItem the version contains
            Set TempItem = oVersion.VSSItem
                
            ' Get the date, username, and comment from the version item.
            verDate = oVersion.Date
            User = oVersion.UserName
            Comment = oVersion.Comment
                
            ' Print out the item we have
            Debug.Print "Added: " & TempItem.Name & " by " & User & " at " & Format(verDate, "General Date") & Comment
        End If
    Next
    					
  6. Programı çalıştırın.
  7. Yukarıda belirtilen geçici çözümü uygulamak için <a0></a0>, aşağıdaki yapıştırın (yalnızca Command1_Click alt olduğunu unutmayın):
    Dim SSDB As New VSSDatabase
    Dim SSItem As VSSItem
    Dim TempItem As VSSItem
    Dim oVersion As VSSVersion
    Dim verDate As Date
    Dim User As String
    Dim Comment As String
    Dim Action As String
    Dim tItem As VSSItem
    Dim oItem As VSSItem
    Dim bad As Boolean
    Dim sTempItem As VSSItem
    
    Private Sub Command1_Click()
        ' Open SourceSafe database
        ' NOTE: If your path to srcsafe.ini, username, and password information
        '       differ from what is listed below, please adjust it accordingly.
        SSDB.Open "C:\Program Files\Microsoft Visual Studio\Common\VSS\srcsafe.ini", "Admin", ""
        
        ' Get project to search
        Set SSItem = SSDB.VSSItem("$/Project_To_Retrieve_History")
        
        ' Loop through the Versions collection getting each event
        For Each oVersion In SSItem.Versions(VSSFlags.VSSFLAG_RECURSYES)
            ' Get the action for the current version
            Action = oVersion.Action
            
            ' Check what the action is and print out what we find.
            If InStr(1, Action, "Added", vbTextCompare) > 0 Then
                ' Get the VSSItem the current version contains
                Set TempItem = oVersion.VSSItem
                
                ' Get the date, username, and comment from the version item.
                verDate = oVersion.Date
                User = oVersion.UserName
                Comment = oVersion.Comment
                
                ' See if we can use the Items collection
                If CheckItem = 1 Then
                    ' If we have a project and the items collection has items, print out each item in the collection.
                    ' We could have an items collection but have 0 items in it, so check for that case.
                    If TempItem.Type = VSSItemType.VSSITEM_PROJECT And TempItem.Items.Count > 0 Then
                        ' Get the previous version
                        Set sTempItem = TempItem.Version(TempItem.VersionNumber - 1)
                                            
                        ' Loop through the items at this version
                        For Each tItem In TempItem.Items
                            bad = False
    
                            ' Loop through the previous version
                            For Each oItem In sTempItem.Items
                                ' Check if the names are the same
                                If oItem.Spec = tItem.Spec Then
                                    ' Found the name, not the one we are looking for
                                    bad = True
                                    Exit For
                                End If
                            Next
                            
                            ' If this is the file added, print out the information
                            If bad = False Then
                                Debug.Print "Added: " & tItem.Name & " in " & TempItem.Name & " by " & User & " at " & Format(verDate, "General Date") & Comment<BR/>
                            Exit For   
                            End If
                        Next
                    Else
                        ' Otherwise just print out the item we have
                        Debug.Print "Added: " & TempItem.Name & " by " & User & " at " & Format(verDate, "General Date") & Comment
                    End If
                Else
                    ' No items collection, just print out the item we have
                    Debug.Print "Added: " & TempItem.Name & " by " & User & " at " & Format(verDate, "General Date") & Comment
                End If
            End If
        Next
    End Sub
    
    '*****************************************************
    ' Purpose:  Check to see if we can look at the Items
    '           collection.  This keeps us from getting an
    '           error from SourceSafe.
    '
    ' Inputs:   None
    '
    ' Returns:  1 if the Items collection exists and can be used.
    '           0 if the Items collection does not exist.
    '
    '*****************************************************
    Private Function CheckItem()
        ' If we have a problem, go to the error handler
        On Error GoTo ErrHandler
        
        ' Try to access the Items collection and see if we succeed or not
        Dim i As Integer
        i = TempItem.Items.Count
        
        ' It worked, so return 1
        CheckItem = 1
        Exit Function
        
    ErrHandler:
        ' Return 0 - meaning there is a problem
        CheckItem = 0
    End Function
    					
  8. Programı çalıştırın.

Referanslar

Ek bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
Visual SourceSafe 6.0 Otomasyonu
http://msdn.microsoft.com/en-us/library/bb509341.aspx (http://msdn.microsoft.com/en-us/library/bb509341.aspx)

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual SourceSafe 5.0 Standard Edition
  • Microsoft Visual SourceSafe 6.0 Standard Edition
Anahtar Kelimeler: 
kbmt kbautomation kbbug kbnofix KB248078 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:248078  (http://support.microsoft.com/kb/248078/en-us/ )