使用Team Foundation Server SDK添加文件夹和文件

时间:2009-07-17 16:24:00

标签: vb.net tfs

我遇到的问题是文件夹和文件显示在我的项目下,这是我的解决方案。文件正被添加到TFS,但我的项目不知道该文件存在并将其显示为白色

Dim tfs As TeamFoundationServer = TeamFoundationServerFactory.GetServer(txtServer.Text)

' Get a reference to Source Control.
Dim versionControl As VersionControlServer = CType(tfs.GetService(GetType(VersionControlServer)), VersionControlServer)

' Create a workspace.
Dim workspace As Workspace = versionControl.GetWorkspace(txtProject.Text)

If Not String.IsNullOrEmpty(txtUpdateScript.Text) Then
            Dim fooString = Array.Find(Of WorkingFolder)(workspace.Folders, Function(m) m.ServerItem.Contains("$/FOO.NET"))
            Directory.CreateDirectory(IO.Path.Combine(IO.Path.Combine(txtProject.Text, "FOOAdmin\Updates"), txtVersion.Text))
            Directory.CreateDirectory(fooString.ServerItem & "/FOOAdmin/Updates/" & txtVersion.Text)
            IO.File.Copy(txtUpdateScript.Text, IO.Path.Combine(IO.Path.Combine(IO.Path.Combine(txtProject.Text, "FOOAdmin\Updates"), txtVersion.Text), "Update.sql"), True)
            workspace.PendAdd(IO.Path.Combine(IO.Path.Combine(txtProject.Text, "FOOAdmin\Updates"), txtVersion.Text))
            workspace.PendAdd(IO.Path.Combine(IO.Path.Combine(IO.Path.Combine(txtProject.Text, "FOOAdmin\Updates"), txtVersion.Text), "Update.sql"))
End If

' Get Pending changes
Dim pendingChanges As PendingChange() = workspace.GetPendingChanges()

' Checkin the items we added.
Dim changesetNumber As Integer = workspace.CheckIn(pendingChanges, "FOO.Net AutoBuild")

如果我不添加此行

 Directory.CreateDirectory(fooString.ServerItem & "/FOOAdmin/Updates/" & txtVersion.Text)

然后项目不知道文件夹或文件。

1 个答案:

答案 0 :(得分:3)

仅仅因为服务器上存在文件并不意味着它是解决方案或项目的一部分。我不是100%确定您的代码应该做什么,但它不会影响任何项目,除非您还修改相应的* .vbproj(或其他)文件。

PS - 您不需要在目录上挂起更改。如果父目录尚不存在,PendAdd(“$ / path / to / file.txt”)会挂起隐式添加。