9

我有一个开源项目,我想将它打包成一个包含二进制文件和源代码的 .zip 文件。该项目托管在 CodePlex 上,并使用 TFS 作为源代码控制。我不确定如何导出项目以删除所有源代码控制绑定。这样人们就可以轻松地在本地打开解决方案而无需登录提示。此功能在 Git 中称为导出,但我不确定如何在 Team 中执行相同的操作。

4

4 回答 4

11

此博客文章包含以下 powershell 脚本,可以在您的源代码管理文件夹上运行,并将从文件中删除源代码管理绑定:

# Remove unnecessary files  
get-childitem . -include *.vssscc,*.user,*.vspscc,*.pdb,Debug -recurse |   
%{   
    remove-item $_.fullname -force -recurse   
}  

# Remove the bindings from the sln files  
get-childitem . -include *.sln -recurse |   
%{   
    $file = $_;   
    $inVCSection = $False;  
    get-content $file |   
    %{   
        $line = $_.Trim();   
        if ($inVCSection -eq $False -and $line.StartsWith('GlobalSection') -eq $True -and $line.Contains('VersionControl') -eq $True) {   
            $inVCSection = $True   
        }   
        if ($inVCSection -eq $False) {   
            add-content ($file.fullname + '.new') $_   
        }   
        if ($inVCSection -eq $True -and $line -eq 'EndGlobalSection') {   
            $inVCSection = $False  
        }  
    }  
    mv ($file.fullname + '.new') $file.fullname -force   
}  

# Remove the bindings from the csproj files  
get-childitem . -include *.csproj -recurse |   
%{   
    $file = $_;   
    get-content $file |   
    %{   
        $line = $_.Trim();   
        if ($line.StartsWith('<Scc') -eq $False) {  
            add-content ($file.fullname + '.new') $_   
        }  
    }  
    mv ($file.fullname + '.new') $file.fullname -force   

}
于 2013-02-28T11:33:58.033 回答
5

源代码控制绑定信息是 VS 项目和解决方案文件的一部分,很难删除。但是,我知道有两种选择:

如果您“获取”项目,将源文件夹复制/移动到其他位置,然后重新打开解决方案,VS 将提供删除源代码控制绑定。

或者,要就地执行此操作,您可以在 VS 中打开源代码控制的解决方案,然后单击文件/源代码控制/更改源代码控制。此对话框有一个“取消绑定”按钮,它将删除每个项目的绑定。

(警告:在 VS2010 上测试;不确定您使用的是什么版本。)

于 2012-04-05T13:30:50.030 回答
1

这是一个替代答案。

我将一个解决方案及其项目从一个位置复制并粘贴到另一个位置,当我尝试在新位置打开它时,没有提示我连接到源代码管理。

当我转到文件->源代码管理->高级->更改源代码管理时,我没有解除绑定的能力。所以我在文本编辑器中打开了解决方案文件并删除了以下部分:

GlobalSection(TeamFoundationVersionControl) = preSolution
....
EndGlobalSection

似乎正在工作;我希望它可以帮助某人。

于 2014-05-26T09:25:12.533 回答
0

TFS 不支持在没有绑定的情况下导出源代码。正如 Dan Puzey 所提到的,您可以只创建源代码管理的副本并删除源代码管理绑定。

对于我的特定项目,我只是复制了文件并删除了与 TFS 相关的任何内容。作为我与 TeamCity 一起用于开源项目的部署配置的一部分,我这样做了。

一旦有意义,我计划将这个项目切换到 Git。

于 2012-08-01T00:13:14.790 回答