我参与多个项目,想要递归删除所有名称为'bin'或'obj'的文件夹,这样我就可以确定所有项目将重新构建(有时这是强制Visual Studio忘记之前所有构建的唯一方法)。
有没有快速实现这一目标的方法(例如使用.bat文件)而无需编写.NET程序?
我参与多个项目,想要递归删除所有名称为'bin'或'obj'的文件夹,这样我就可以确定所有项目将重新构建(有时这是强制Visual Studio忘记之前所有构建的唯一方法)。
有没有快速实现这一目标的方法(例如使用.bat文件)而无需编写.NET程序?
你实际上可以继续采用PS的建议,在项目目录中创建一个vbs文件,如下所示:
Option Explicit
Dim oShell, appCmd
Set oShell = CreateObject("WScript.Shell")
appCmd = "powershell -noexit Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse -WhatIf }"
oShell.Run appCmd, 4, false
“clean”不够好吗?请注意,您可以在命令行中使用/t:clean调用msbuild。
我们有许多包含很多工程文件的大型 .SLN 文件。我开始实行一个政策,建立一个名为“ViewLocal”的目录,用于存放所有非源代码控制的文件。在该目录中,有一个“Inter”目录和一个“Out”目录,分别用于存放中间文件和输出文件。
这显然使得只需转到您的“viewlocal”目录并执行简单的删除操作即可轻松摆脱一切。
在你花时间想方设法通过脚本来解决问题之前,你可以考虑建立类似的东西。
但是,我不会撒谎,要在一个大组织中维护这样的设置会......有趣。尤其是当您使用像 QT 这样的技术来处理文件并创建非源代码控制的源文件时。但那是另一个故事了!
我使用.bat文件并使用该命令来完成此操作。
for /f %%F in ('dir /b /ad /s ^| findstr /iles "Bin"') do RMDIR /s /q "%%F"
for /f %%F in ('dir /b /ad /s ^| findstr /iles "Obj"') do RMDIR /s /q "%%F"
Directory.Build.props
的文件,如下所示:<Project>
<PropertyGroup>
<BaseProjectArtifactPath>$(MSBuildThisFileDirectory).artifacts\$(MSBuildProjectName)</BaseProjectArtifactPath>
<BaseOutputPath>$(BaseProjectArtifactPath)\bin\</BaseOutputPath>
<BaseIntermediateOutputPath>$(BaseProjectArtifactPath)\obj\</BaseIntermediateOutputPath>
</PropertyGroup>
</Project>
.artifacts
的独立文件夹中,而不是各个项目文件夹中。想要重新开始?只需删除.artifacts
文件夹即可。假设PS1文件存在于当前文件夹(您需要删除bin和obj文件夹的文件夹内)
$currentPath = $MyInvocation.MyCommand.Path
$currentFolder = Split-Path $currentPath
Get-ChildItem $currentFolder -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
我认为您可以右键单击您的解决方案/项目,然后单击“清理”按钮。
据我记得它是这样工作的。我现在没有我的VS.NET,所以无法测试它。