[visual-studio] Visual Studio에서 bin 및 obj 폴더를 완전히 정리하는 방법은 무엇입니까?

폴더를 마우스 오른쪽 버튼으로 클릭하면 “Clean”메뉴 항목이 표시됩니다. 나는 이것이 obj 및 bin 디렉토리를 정리 (제거)한다고 가정했습니다. 그러나 내가 볼 수있는 한 아무것도하지 않는다. 다른 방법이 있습니까? (Windows 탐색기 또는 cmd.exe로 이동하라고 말하지 마십시오.) 모든 것을 쉽게 압축 할 수 있도록 obj 및 bin 폴더를 제거하고 싶습니다.



답변

다른 사람들이 이미 응답 했으므로 Clean은 빌드에서 생성 된 모든 아티팩트를 제거합니다. 그러나 그것은 다른 모든 것을 남겨 둘 것입니다.

MSBuild 프로젝트에 일부 사용자 지정이있는 경우 문제를 일으킬 수 있으며 삭제해야한다고 생각하는 항목이 남을 수 있습니다.

끝 부분에 이것을 추가하여. * proj를 간단히 변경하여이 문제를 피할 수 있습니다.

<Target Name="SpicNSpan"
        AfterTargets="Clean">
    <RemoveDir Directories="$(OUTDIR)"/>
</Target>

현재 플랫폼 / 구성의 bin 폴더에있는 모든 항목이 제거됩니다.

—— 아래 주술사의 답변 에 따라 약간의 진화를 편집하십시오 (투표를 공유하고 그에게도 제공)

<Target Name="SpicNSpan"  AfterTargets="Clean">
    <!-- Remove obj folder -->
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <!-- Remove bin folder -->
    <RemoveDir Directories="$(BaseOutputPath)" />
</Target>

—- xDisruptor의 일부로 다시 편집 하지만 .gitignore (또는 이와 동등한)에서 더 잘 제공되므로 .vs 삭제를 제거했습니다.

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>

그는 또한 이것을 푸시 할 여러 프로젝트가있는 경우 작업을보다 쉽게 ​​배포하고 유지 관리 할 수있는 좋은 제안을 제공합니다.

이 답변에 투표하는 경우 둘 다 투표해야합니다.


답변

git을 사용 .gitignore하고 있고 프로젝트에 올바른 정보가있는 경우 다음을 수행 할 수 있습니다.

git clean -xdf --dry-run

.gitignore목록의 모든 파일을 완전히 제거 합니다. 즉, 정리 objbin폴더 ( x이 동작이 트리거 됨)


답변

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>

이 스 니펫은 솔루션의 루트 디렉터리에서 .vs 폴더도 지 웁니다. .vs 폴더를 제거하는 것이 과도하다고 생각되면 관련 줄을 주석 처리 할 수 ​​있습니다. 일부 타사 프로젝트에서 .vs 폴더 내에 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>

그런 다음 다음과 같이 * .csproj 파일의 각 끝에이 파일을 포함합니다.

     [...]
     <Import Project="..\..\Tools\ExtraCleanup.targets"/>
  </Project>

이렇게하면 개선을 원할 때마다 모든 * .csproj 파일을 수동으로 편집해야하는 번거 로움없이 중앙에서 중앙 집중식으로 추가 정리 로직을 강화하거나 미세 조정할 수 있습니다.


답변

빌드하기 전에 bin 및 obj를 삭제하려면 프로젝트 파일에 추가하십시오.

<Target Name="BeforeBuild">
    <!-- Remove obj folder -->
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <!-- Remove bin folder -->
    <RemoveDir Directories="$(BaseOutputPath)" />
</Target>

다음은 기사입니다 : 빌드 또는 배포 전에 bin 및 / 또는 obj 폴더를 제거하는 방법


답변

이 사이트 : https://sachabarbs.wordpress.com/2014/10/24/powershell-to-clean-visual-studio-binobj-folders/ 는 William Kempf의 powershell 명령을 사용하여 현재 디렉터리에서 bin 및 obj 폴더를 제거하고 하위 디렉토리. 드라이브의 루트에서 실행할 수 있어야합니다.

다음은 William의 버전입니다.

 gci -inc bin,obj -rec | rm -rec -force

William 자신의 말로 :

그러면 현재 디렉토리와 모든 하위 디렉토리에서 “bin”및 “obj”디렉토리가 모두 지워집니다. 특히 누군가가 엉망이되어 IDE 내부의 Clean 또는 Rebuild가 포착하지 못하는 무언가가있을 때 “깨끗한”상태를 얻기 위해 작업 공간 디렉토리에서 실행하는 것이 매우 유용합니다.

모르는 분들을 위해 PowerShell은 명령 별칭을 지원합니다. 여기서 별칭을 사용하지 않고 다시 작성됩니다.

Get-ChildItem -inc bin,obj -rec | Remove-Item -rec -force

참고 :이 파일을 PowerShell 파일에 저장하고 해당 파일을 솔루션의 루트 (.sln 파일이있는 위치)에 배치 한 다음 적절한 정리를 원할 때 실행해야합니다 (VisualStudio가 수행하는 미키 마우스가 아닌, 성공도보고합니다).


답변

Ron Jacobs의 환상적인 오픈 소스 CleanProject를 확인하십시오 . 원하는 경우 압축도 처리합니다.

다음은 CodePlex 링크입니다.


답변

Far Manager에서 binobj 폴더를 쉽게 찾고 제거 할 수 있습니다 .

  1. 솔루션으로 이동하고 Alt + F7을 누릅니다.
  2. 검색 설정 대화 상자에서 :

    • 파일 마스크 또는 여러 파일 마스크”필드에 “bin, obj” 를 입력합니다.
    • “폴더 검색” 옵션을 선택하십시오.
    • 엔터 키를 치시오
  3. 검색이 완료되면 보기를 “Panel”로 전환합니다 .

  4. 모든 파일 선택 (Ctrl + A 사용) 및 폴더 삭제 ( “Shift + Del”누름)

누군가에게 도움이되기를 바랍니다.