tom*_*om7 78 msbuild visual-studio
如果右键单击文件夹,您将看到"清洁"菜单项.我假设这将清理(删除)obj和bin目录.但是,据我所见,它什么也没做.还有另外一种方法吗?(请不要告诉我转到Windows资源管理器或cmd.exe)我想删除obj和bin文件夹,以便我可以轻松地压缩整个内容.
New*_*ian 92
正如其他人已经回复的那样,Clean将删除构建生成的所有工件.但它会留下其他一切.
如果你在MSBuild项目中有一些自定义,这可能会带来麻烦,并留下你认为应该删除的东西.
你可以通过简单地改变你的.*proj来解决这个问题,方法是将它添加到接近结尾的地方:
<Target Name="SpicNSpan"
AfterTargets="Clean">
<RemoveDir Directories="$(OUTDIR)"/>
</Target>
Run Code Online (Sandbox Code Playgroud)
这将删除当前平台/配置的bin文件夹中的所有内容.
------根据下面的萨满答案编辑轻微的进化(分享投票给他一些)
<Target Name="SpicNSpan" AfterTargets="Clean">
<!-- Remove obj folder -->
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
<!-- Remove bin folder -->
<RemoveDir Directories="$(BaseOutputPath)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
----再次使用xDisruptor中的部分进行编辑,但我删除了.vs删除,因为这可以更好地在.gitignore(或等效的)中提供
针对VS 2015进行了更新.
<Target Name="SpicNSpan" AfterTargets="Clean"> <!-- common vars https://msdn.microsoft.com/en-us/library/c02as0cs.aspx?f=255&MSPPError=-2147217396 -->
<RemoveDir Directories="$(TargetDir)" /> <!-- bin -->
<RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" /> <!-- obj -->
</Target>
Run Code Online (Sandbox Code Playgroud)
如果你有多个项目可以推动这项工作,他还提供了一个很好的建议,让任务更容易部署和维护.
如果你投票这个答案,一定要投票给他们.
XDS*_*XDS 38
对于Visual Studio 2015,MSBuild变量有所改变:
<Target Name="SpicNSpan" AfterTargets="Clean"> <!-- common vars https://msdn.microsoft.com/en-us/library/c02as0cs.aspx?f=255&MSPPError=-2147217396 -->
<RemoveDir Directories="$(TargetDir)" /> <!-- bin -->
<RemoveDir Directories="$(SolutionDir).vs" /> <!-- .vs -->
<RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" /> <!-- obj -->
</Target>
Run Code Online (Sandbox Code Playgroud)
请注意,此代码段还会从解决方案的根目录中清除.vs文件夹.如果您认为删除.vs文件夹是一种过度杀伤,则可能需要注释掉关联的行.我启用它是因为我注意到在某些第三方项目中,当.vs文件夹中存在文件ala application.config时会导致问题.
附录:
如果要优化解决方案的可维护性,可能需要更进一步,将上面的代码段放在一个单独的文件中,如下所示:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="SpicNSpan" AfterTargets="Clean"> <!-- common vars https://msdn.microsoft.com/en-us/library/c02as0cs.aspx?f=255&MSPPError=-2147217396 -->
<RemoveDir Directories="$(TargetDir)" /> <!-- bin -->
<RemoveDir Directories="$(SolutionDir).vs" /> <!-- .vs -->
<RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" /> <!-- obj -->
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
然后将此文件包含在每个*.csproj文件的最末端,如下所示:
[...]
<Import Project="..\..\Tools\ExtraCleanup.targets"/>
</Project>
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以在一个地方集中丰富或微调您的额外清理逻辑,而无需每次想要进行改进时手动编辑每个*.csproj文件.
Rub*_*ink 37
如果您正在使用git并且.gitignore
在项目中具有正确性,则可以
git clean -xdf --dry-run
Run Code Online (Sandbox Code Playgroud)
绝对删除.gitignore
列表中的每个文件,即它将清理obj
,bin
文件夹(x
触发此行为)
Sha*_*man 29
要在构建之前删除bin和obj,请添加到项目文件:
<Target Name="BeforeBuild">
<!-- Remove obj folder -->
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
<!-- Remove bin folder -->
<RemoveDir Directories="$(BaseOutputPath)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
以下是文章:如何在构建或部署之前删除bin和/或obj文件夹
Ara*_*and 13
此站点:https://sachabarbs.wordpress.com/2014/10/24/powershell-to-clean-visual-studio-binobj-folders/使用powershell从当前目录和子目录中删除任何bin和obj文件夹.应该可以从驱动器的根目录运行它以下是文章的引用:
这是威廉姆斯版
gci -inc bin,obj -rec | rm -rec -force
Run Code Online (Sandbox Code Playgroud)
在威廉姆斯自己的话
这会清除当前目录和每个子目录中的所有"bin"和"obj"目录.在您的工作区目录中运行以获得"干净"状态非常有用,特别是当某人搞砸了,并且IDE内部的Clean或Rebuild无法捕获.
对于那些可能不知道的阅读,PowerShell支持命令别名,在这里它不会再使用别名重写
Get-ChildItem -inc bin,obj -rec | Remove-Item -rec -force
Run Code Online (Sandbox Code Playgroud)
注意:您应该将其存储在PowerShell文件中,并将该文件放在解决方案的根目录(.sln文件所在的位置),然后在需要正确清理时运行它(不是VisualStudio所做的micky mouse,并报告成功).
Clean 将删除构建过程创建的所有中间文件和最终文件,例如 .obj 文件和 .exe 或 .dll 文件。
但是,它不会删除构建这些文件的目录。我没有看到您需要删除目录的令人信服的理由。你能进一步解释一下吗?
如果您在“清理”之前和之后查看这些目录,您应该会看到编译的输出被清理了。
归档时间: |
|
查看次数: |
82356 次 |
最近记录: |