有什么方法可以完全清理VS解决方案吗?完全我的意思不仅仅是删除Active配置构建的项目的当前输出。我的意思是清除所有所有构建配置的输出和中间文件。
即使我更改了构建输出路径,我也想删除以前输出路径的输出。
示例场景:我签出了一个源代码树并进行了发布版本,然后是一个调试版本。现在我有\ bin \ Debug目录和bin \ Release目录,以及\ obj目录。然后我想清理两种配置的输出。
也许Subversion是一个更好的工具,例如删除不受源代码管理的所有内容?否则,我想一个批处理文件可以递归清除obj,bin和TestResults目录,并且可以将VS菜单项绑定到此工具。
我正在使用SVN 1.7和VS 2012。
有没有人使用VS,SVN,PowerShell或Windows批处理文件创建了这样的工具?
答案 0 :(得分:5)
每当我向SVN添加一个全新的解决方案时,我都会确保在提交之前将每个项目的bin\
和obj\
文件夹标记为已忽略。我对.suo file
(个人偏好)做同样的事情。这样,当我需要清理任何中间产品和构建输出时,我只需TortoiseSVN -> SVN Clean up ...
并检查Delete ignored files and folders
:
This article by Jeff Atwood影响了我。相关部分:
让您的新团队成员在您的项目上高效工作需要多长时间?如果答案超过一天,您遇到了问题。
我希望能够查看解决方案,并让它第一次构建。我也希望能够轻松地让我的结帐“像新的一样”,这就是我使用SVN Cleanup
的原因。
有一点需要注意的是,在执行SVN Cleanup
之前,您可能必须关闭Visual Studio才能使bin\
和obj\
文件夹中的所有文件都被锁定。
希望这有帮助。
答案 1 :(得分:2)
我们可以假设解决方案文件保留在名为“MySolutionFolder”的文件夹中,并且它是Subversion(SVN)下的代码版本,并且您在本地计算机上安装了TortoiseSVN客户端来管理代码版本控制。
然后,右键单击您编写代码文件夹“MySolutionFolder”的文件夹。然后选择TortoiseSVN --> Properties
选项。在打开的新窗口中,单击“新建”按钮转到弹出列表中的“高级”选项。然后在新窗口中输入以下内容并保存。
之后,再次选择“MySolutionFolder”并选择选项TortoiseSVN --> Revert
并在打开的新窗口中单击“删除未版本化的项目”。单击它将列出所有未版本控制的文件,包括整个解决方案的'bin'和'obj'文件夹,因为它包含在svn:ignore
列表和其他未版本控制的文件中。从中选择要删除的项目,然后按“确定”。您的代码输出将被清除。
这个svn:ignore属性,你甚至可以提交你的代码,以便其他用户也可以利用它。
答案 2 :(得分:0)
如果您需要一些细粒度的方法来仅清理选定的解决方案或配置,您可以使用以下脚本:
$devenvPath = "`"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv`""
$configuration = (
"Release",
"Debug"
)
$platform = (
"x86",
"x64"
)
$sln = (
"Sln1Path.sln",
"Sln2Path.sln"
)
foreach ($c in $configuration)
{
foreach($p in $platform)
{
foreach($s in $sln)
{
$pc = $c + "|" + $p
$arg = "`"$s`" /clean `"$pc`""
$cmd = "Start-Process -FilePath $devenvPath -ArgumentList `'$arg`' -Wait -NoNewWindow"
echo $cmd
$proc = invoke-expression $cmd
echo "`n`n`n`n`n"
}
}
}