Làm cách nào để dọn sạch hoàn toàn các thư mục bin và obj trong Visual Studio?


95

Nếu bạn nhấp chuột phải vào một thư mục, bạn sẽ thấy mục menu "Dọn dẹp". Tôi cho rằng điều này sẽ làm sạch (loại bỏ) thư mục obj và bin. Tuy nhiên, theo như tôi thấy, nó không làm gì cả. Có cách nào khác không? (vui lòng không yêu cầu tôi truy cập Windows Explorer hoặc cmd.exe) Tôi muốn xóa thư mục obj và bin để có thể dễ dàng nén toàn bộ.


Câu trả lời:


104

Như những người khác đã trả lời Clean sẽ xóa tất cả các phần mềm tạo bởi bản dựng. Nhưng nó sẽ để lại đằng sau mọi thứ khác.

Nếu bạn có một số tùy chỉnh trong dự án MSBuild của mình, điều này có thể gây rắc rối về chính tả và để lại những thứ mà bạn nghĩ rằng nó nên xóa.

Bạn có thể giải quyết vấn đề này bằng một thay đổi đơn giản đối với. * Proj của bạn bằng cách thêm điều này vào đâu đó gần cuối:

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

Thao tác này sẽ xóa mọi thứ trong thư mục bin của nền tảng / cấu hình hiện tại.

------ Chỉnh sửa sự tiến hóa nhẹ dựa trên câu trả lời của Shaman bên dưới (chia sẻ phiếu bầu và cho anh ta một số nữa)

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

---- Chỉnh sửa lại với các phần từ xDisruptor nhưng tôi đã xóa phần xóa .vs vì điều này sẽ được phục vụ tốt hơn trong tệp .gitignore (hoặc tương đương)

Cập nhật cho 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>

Anh ấy cũng đưa ra một gợi ý tốt về việc làm cho nhiệm vụ dễ dàng triển khai và duy trì hơn nếu bạn có nhiều dự án để thúc đẩy việc này.

Nếu bạn bình chọn câu trả lời này, hãy chắc chắn bỏ phiếu cả hai.


17
Đây là giải pháp tốt nhất, hiệu quả, không yêu cầu công cụ đặc biệt và đảm bảo mọi thành viên trong nhóm sử dụng cùng một phương pháp "sạch". Tại sao MS Visual Studio không được làm sạch đúng cách là một bí ẩn hoàn toàn đối với tôi.
Rolf

1
Đây là bởi đến nay các giải pháp đơn giản nhất để thực hiện và được công việc làm mà không cần bất kỳ plugin bên ngoài
tomoguisuru

Không chắc chắn về cách kích hoạt / gọi mục tiêu này. Chỉ cần chọn 'Clean' sẽ không có tác dụng gì. Vậy tôi phải sử dụng nó như thế nào?
aliceraunsbaek

xin lỗi chỉ cần nhìn thấy bình luận của bạn. Chỉ định AfterTargets = "Clean" sẽ kết nối mục tiêu với mục tiêu sạch bên trong cho VisualStudio. Tuy nhiên, mục tiêu đơn giản này không cung cấp bất kỳ nguồn cấp dữ liệu nào cho bảng điều khiển vì vậy nó sẽ không làm được gì khác ngoài việc xóa sổ $ (OUTDIR) của bạn khỏi sự tồn tại. Bạn có thể thêm một số thông báo và quản lý lỗi vào đó và nhận được một số phản hồi tốt hơn.
Newtopian

3
@Rolf Visual Studio không làm sạch "đúng cách" theo mặc định vì MS phải hỗ trợ trường hợp sử dụng trong đó N dự án khác nhau xuất ra cùng một thư mục. Nếu việc dọn dẹp một dự án đã che giấu toàn bộ thư mục đầu ra của nó theo mặc định, thì nó có thể chặn các tệp hoàn toàn không liên quan đến dự án đó. Vì vậy, thay vào đó, hành vi mặc định là theo dõi các tệp thực sự được xuất ra bởi quá trình xây dựng và chỉ xóa sạch các tệp đó. Một loại lỗi phổ biến tại thời điểm sạch là do tạo hoặc sao chép tệp trong quá trình xây dựng mà không yêu cầu MSBuild thêm tệp đó vào danh sách theo dõi.
Timbo

45

Nếu bạn đang sử dụng git và có đúng .gitignoretrong dự án của mình, bạn có thể

git clean -xdf --dry-run

để xóa hoàn toàn mọi tệp trong .gitignoredanh sách, tức là nó sẽ sạch objbincác thư mục (tác xnhân gây ra hành vi này)


2
Điều này hoạt động tuyệt vời. Rất thuận tiện khi bạn muốn làm giải pháp rộng thay vì chỉ một dự án Visual Studio
Ehtesh Choudhury

@JoeHealy Thay vì làm sạch trước rồi mới nén, có thể dễ dàng sử dụng git-archive để nén trực tiếp từ kho lưu trữ .
Reinier Torenbeek

Hoạt động như một sự quyến rũ! Đây là câu trả lời tốt nhất. Ngoài ra, nếu giả sử dự án không sử dụng điều khiển nguồn, câu trả lời này vẫn áp dụng: chỉ cần thêm dự án vào điều khiển nguồn (nhấp chuột phải vào tên giải pháp), sau đó chạy lệnh git ở trên. Btw, làm thế nào để bạn sử dụng lệnh git trong Windows? Tôi đã phải sử dụng Bash trên Ubuntu trên Windows.
brett

@brett Thú vị;) Tôi thường sử dụng GitHub cho Windows để mở (mặc dù tôi khá chắc chắn VS cài đặt một hệ thống làm việc có thể được sử dụng từ dấu nhắc lệnh VS) - cài đặt cho phép bạn chọn cách sắp xếp trình bao (từ đó tôi chọn PoshGit) . Sử dụng WSL là cách giáo dục tốt nhất, rất tốt!
Ruben Bartelink

2
đồng ý. Bây giờ tôi thấy; điều quan trọng là --dry-run, điều này sẽ chỉ cho bạn biết những gì sẽ bị xóa. tốt đẹp
mkb

42

Đối với Visual Studio 2015, các biến MSBuild đã thay đổi một chút:

  <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>

Lưu ý rằng đoạn mã này cũng xóa sạch thư mục .vs khỏi thư mục gốc của giải pháp của bạn. Bạn có thể muốn nhận xét dòng liên quan nếu bạn cảm thấy rằng việc xóa thư mục .vs là quá mức cần thiết. Tôi đã bật tính năng này vì tôi nhận thấy rằng trong một số dự án của bên thứ ba, nó gây ra sự cố khi tệp ala application.config tồn tại bên trong thư mục .vs.

Phụ lục:

Nếu bạn muốn tối ưu hóa khả năng bảo trì của các giải pháp của mình, bạn có thể muốn tiến thêm một bước nữa và đặt đoạn mã trên vào một tệp riêng biệt như vậy:

  <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>

Và sau đó bao gồm tệp này vào cuối mỗi tệp * .csproj của bạn như sau:

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

Bằng cách này, bạn có thể làm phong phú hoặc tinh chỉnh lô-gic bổ sung của mình một cách tập trung, ở một nơi mà không cần phải chỉnh sửa thủ công từng tệp * .csproj bằng tay mỗi khi bạn muốn cải tiến.


Có cách nào hay để xóa tất cả các tệp trong một thư mục ngoại trừ một tệp cụ thể không?
progLearner ngày

1
@progLearner dĩ nhiên có stackoverflow.com/a/10019708/863651
XDS ngày

Tuyệt vời! Cảm ơn!
progLearner

1
@progLearner, đó là một câu hỏi khó để trả lời đúng. Một số tệp dường như vẫn bị khóa nếu chúng ta tiếp tục 2 hoặc 3 lần thì chúng sẽ bị xóa. Sau đó, có những trường hợp các tệp thực sự bị khóa và sau đó bạn gặp may vì bạn không thể xóa chúng trừ khi và cho đến khi bạn giết các quy trình khóa chúng. Nếu bạn đang ở trong tình huống số 1 thì bạn có thể thử hành động xóa thư mục từ MSBuildCommunityTasks mới nhất có cờ xóa liên tục (bạn có thể đọc tài liệu về cái này vì nó nằm ngoài phạm vi của chuỗi cụ thể này)
XDS

1
Tôi đã có một vấn đề tương tự. Có một quá trình chạy trong nền được gọi là VSCompiler.exe hoặc một cái gì đó có hiệu lực. Bạn có thể thử giết quá trình này trước khi xóa thư mục và xem liệu nó có hoạt động hay không (tôi nghĩ nó sẽ làm được). Nguoi ban doi may man!
XDS

31

Để xóa bin và obj trước khi xây dựng, hãy thêm vào tệp dự án:

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

Đây là bài viết: Cách xóa thư mục bin và / hoặc obj trước khi xây dựng hoặc triển khai


3
Tôi cũng thích ý tưởng loại bỏ các trung gian, tuy nhiên, có những tác dụng phụ đáng kể khi sử dụng BeforeBuild vì nó sẽ xóa sạch mọi khả năng để thực hiện các bản dựng tăng dần. Trong các dự án cần nhiều thời gian để xây dựng, đây là một điểm dừng hiển thị. Ngoài ra, bằng cách xóa sạch dir đầu ra cơ sở, bạn có thể can thiệp vào các công cụ có thể muốn thực hiện các bản dựng đa mục tiêu / cấu hình và tích lũy kết quả trước khi đóng gói nó để triển khai, ở đây chỉ bản dựng cuối cùng được thực hiện sẽ tồn tại.
Newtopian

22

Trang web này: https://sachabarbs.wordpress.com/2014/10/24/powershell-to-clean-visual-studio-binobj-folders/ sử dụng các lệnh powershell của William Kempf để xóa mọi thư mục bin và obj khỏi thư mục hiện tại và các thư mục con. Có thể chạy nó từ ổ đĩa gốc.

Đây là phiên bản của William

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

Nói theo cách riêng của William:

Thao tác đó sẽ xóa sạch tất cả các thư mục “bin” và “obj” trong thư mục hiện tại và mọi thư mục con. Siêu hữu ích khi chạy trong thư mục không gian làm việc của bạn để đến trạng thái “sạch”, đặc biệt khi ai đó làm rối và có thứ gì đó mà Clean hoặc Rebuild bên trong IDE không nắm bắt được.

Đối với những bạn đang đọc có thể chưa biết, PowerShell hỗ trợ bí danh lệnh, ở đây nó được viết lại không sử dụng bí danh

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

LƯU Ý: Bạn nên lưu trữ tệp này trong tệp PowerShell và đặt tệp đó vào thư mục gốc của giải pháp của bạn (nơi tệp .sln nằm), sau đó chạy nó khi bạn muốn sạch thích hợp (không phải chuột micky mà VisualStudio thực hiện, và báo cáo thành công nữa).


Lưu ý rằng nếu bạn sử dụng hệ thống kiểm soát phiên bản như thương mại và nó ở cùng cấp thư mục với tập lệnh này, tập lệnh này sẽ làm hỏng kho lưu trữ của bạn nếu bạn lưu trữ bất kỳ thứ gì trên đó bên trong thư mục "bin" ... nếu không thì đây là kịch bản hữu ích!
Loudenvier


4

Bạn có thể dễ dàng tìm và xóa các thư mục binobj trong Far Manager.

  1. Điều hướng đến giải pháp của bạn và nhấn Alt + F7
  2. Trong hộp thoại cài đặt tìm kiếm:

    • Nhập "bin, obj" vào trường "Một mặt nạ tệp hoặc một số mặt nạ tệp"
    • Chọn tùy chọn "Tìm kiếm thư mục"
    • nhấn Enter
  3. Sau khi tìm kiếm xong, chuyển chế độ xem sang "Bảng điều khiển" .

  4. Chọn tất cả các tệp (bằng Ctrl + A) và xóa các thư mục (nhấn "Shift + Del")

Hy vọng nó sẽ giúp một ai đó.


1
googled câu hỏi này để tìm kiếm giải pháp tự động đặc biệt để ngừng làm việc đó theo cách thủ công trong FAR Manager lol
Vlad

3

Trong cửa sổ chỉ cần mở trình thám hiểm, điều hướng đến thư mục SLN của bạn, nhấp vào trường tìm kiếm và nhập loại: = thư mục; obj -> đối với thư mục obj, sử dụng CTRL + A và xóa 'em - tương tự đối với bin Done

Không cần bất kỳ công cụ hoặc phần mềm bổ sung nào;)


2

Nó không loại bỏ các thư mục, nhưng nó loại bỏ các sản phẩm phụ của bản dựng. Có lý do gì bạn muốn xóa các thư mục xây dựng thực tế không?


Tôi muốn xóa mọi thứ không cần thiết để biên dịch để tôi có thể nén và gửi. Có .exes trong tệp zip có thể là một vấn đề đối với phần mềm diệt vi rút.
tom7

Đúng. Nhưng như tôi đã nói, các sản phẩm xây dựng bị loại bỏ. Điều đó có nghĩa là các tệp .obj và .exe. Chỉ không phải là các thư mục thực tế.
Christopher

Nếu một số tham chiếu bị xóa / di chuyển và dll không được tham chiếu trong mã, chúng không còn được tích hợp vào thư mục bin nữa, tuy nhiên chúng cũng không được dọn dẹp. Điều này kết thúc trong một bản dựng cục bộ so với ứng dụng của bạn, nhưng không thành công ở mọi nơi khác.
Oli

2

Clean sẽ xóa tất cả các tệp trung gian và cuối cùng được tạo bởi quá trình xây dựng, chẳng hạn như tệp .obj và tệp .exe hoặc .dll.

Tuy nhiên, nó không xóa các thư mục nơi các tệp đó được tạo. Tôi không thấy lý do thuyết phục tại sao bạn cần xóa các thư mục. Bạn có thể giải thích thêm?

Nếu bạn nhìn vào bên trong các thư mục này trước và sau khi "Dọn dẹp", bạn sẽ thấy đầu ra đã biên dịch của mình được dọn dẹp.


Tôi muốn xóa các thư mục bin và obj để nén mọi thứ.
tom7

5
"Clean" không loại bỏ .exe.
tom7

Chỉ cần thử nó với Visual Studio 2005 của tôi và tôi có thể xác minh rằng "Clean" đã xóa .exe (và tất cả các tệp khác).
abelenky

4
Trong Visual Studio 2010, có thể. Ngay bây giờ, tôi có thể xác nhận rằng "Giải pháp Sạch sẽ" không xóa dlls khỏi thư mục Gỡ lỗi / thùng rác.
Keith Hoffman,

4
Clean không xóa các tệp nếu chúng không được tính toán bởi bản dựng. Nếu một số tệp bị một số chủ nghĩa tôn giáo khác vượt mặt thì việc xóa sạch sẽ không xóa chúng. Nói cách khác, khi đội chiếc mũ của người quản lý xây dựng, sự sạch sẽ hoàn toàn và hoàn toàn vô dụng, thậm chí là nguy hiểm.
Newtopian

2

Tôi chưa thể thêm nhận xét (chưa đạt được danh tiếng tối thiểu)
vì vậy tôi để lại câu trả lời này để nhấn mạnh rằng:

hành động "BeforeBuild" <RemoveDir Directories="$(BaseIntermediateOutputPath)" />là rất tốt nhưng đối với tôi, nó đang xung đột với một mô hình Entity Framework được đưa vào cùng một dự án.

Lỗi tôi nhận được là:

Error reading resource '{mymodel}.csdl' -- 'Could not find a part of the path '{myprojectpath}\obj\Release\edmxResourcesToEmbed\{mymodel}.csdl

Tôi cho rằng, "edmxResourcesToembed" được tạo trước khi hành động đích "BeforeBuild" được thực thi.


2

Dựa trên câu trả lời của Joe, tôi đã chuyển đổi mã VB thành C #:

/// <summary>
/// Based on code of VSProjCleaner tool (C) 2005 Francesco Balena, Code Archirects
/// </summary>
static class VisualStudioCleaner
{
    public static void Process(string rootDir)
    {
        // Read all the folder names in the specified directory tree
        string[] dirNames = Directory.GetDirectories(rootDir, "*.*", SearchOption.AllDirectories);
        List<string> errorsList = new List<string>();

        // delete any .suo and csproj.user file
        foreach (string dir in dirNames) {
            var files = new List<string>();
            files.AddRange(Directory.GetFiles(dir, "*.suo"));
            files.AddRange(Directory.GetFiles(dir, "*.user"));
            foreach (string fileName in files) {
                try {
                    Console.Write("Deleting {0} ...", fileName);
                    File.Delete(fileName);
                    Console.WriteLine("DONE");
                } catch (Exception ex) {
                    Console.WriteLine();
                    Console.WriteLine(" ERROR: {0}", ex.Message);
                    errorsList.Add(fileName + ": " + ex.Message);
                }
            }
        }

        // Delete all the BIN and OBJ subdirectories
        foreach (string dir in dirNames) {
            string dirName = Path.GetFileName(dir).ToLower();
            if (dirName == "bin" || dirName == "obj") {
                try {
                    Console.Write("Deleting {0} ...", dir);
                    Directory.Delete(dir, true);
                    Console.WriteLine("DONE");
                } catch (Exception ex) {
                    Console.WriteLine();
                    Console.WriteLine(" ERROR: {0}", ex.Message);
                    errorsList.Add(dir + ": " + ex.Message);
                }
            }
        }
        Console.WriteLine(new string('-', 60));
        if (errorsList.Count == 0) {
            Console.WriteLine("All directories and files were removed successfully");
        } else {
            Console.WriteLine("{0} directories or directories couldn't be removed", errorsList.Count);
            Console.WriteLine(new string('-', 60));
            foreach (string msg in errorsList) {
                Console.WriteLine(msg);
            }
        }
    }
}

1

Tôi sử dụng VisualStudioClean dễ hiểu và dễ đoán. Biết cách nó hoạt động và những tệp nào nó sẽ xóa giúp tôi cảm thấy thoải mái.

Trước đây tôi đã thử VSClean (lưu ý VisualStudioClean không phải là VSClean), VSClean cao cấp hơn, nó có nhiều cấu hình đôi khi làm tôi tự hỏi nó sẽ xóa những tập tin nào? Một cấu hình sai sẽ dẫn đến mất mã nguồn của tôi. Việc kiểm tra cấu hình sẽ hoạt động như thế nào cần sao lưu tất cả các dự án của tôi, điều này mất rất nhiều thời gian, vì vậy cuối cùng tôi chọn VisualStudioClean để thay thế.

Kết luận: VisualStudioClean nếu bạn muốn dọn dẹp cơ bản, VSClean cho kịch bản phức tạp hơn.


1

Đây là cách tôi thực hiện với một tệp hàng loạt để xóa tất cả các thư mục BIN và OBJ một cách đệ quy.

  • Tạo một tệp trống và đặt tên là DeleteBinObjFolders.bat
  • Sao chép-dán mã dưới đây vào DeleteBinObjFolders.bat
  • Di chuyển tệp DeleteBinObjFolders.bat trong cùng thư mục với tệp giải pháp (* .sln) của bạn.
@echo off
@echo Deleting all BIN and OBJ folders...
for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"
@echo BIN and OBJ folders successfully deleted :) Close the window.
pause > nul

0

Tôi lưu trữ các dự án VS đã hoàn thành của mình bằng cách chỉ lưu mã nguồn.

Tôi xóa các thư mục BIN, DEBUG, RELEASE, OBJ, ARM và .vs khỏi tất cả các dự án.

Điều này làm giảm quy mô của dự án đáng kể. Dự án

phải được xây dựng lại khi kéo ra khỏi kho.


0

Chỉ là một phụ lục cho tất cả các câu trả lời tốt ở trên trong trường hợp ai đó không nhận ra rằng trong VB / C # dễ dàng như thế nào để tự động hóa toàn bộ quy trình xuống kho lưu trữ zip.

Vì vậy, bạn chỉ cần lấy một ứng dụng Biểu mẫu đơn giản từ các mẫu (nếu bạn chưa có ứng dụng quản lý nhà) và thêm một nút vào đó và sau đó ClickOnce cài đặt nó vào màn hình của bạn mà không cần lo lắng về các cài đặt đặc biệt hoặc nhiều thứ khác. Đây là tất cả mã bạn cần đính kèm vào nút:

Imports System.IO.Compression

Private Sub btnArchive_Click(sender As Object, e As EventArgs) Handles btnArchive.Click
    Dim src As String = "C:\Project"
    Dim dest As String = Path.Combine("D:\Archive", "Stub" & Now.ToString("yyyyMMddHHmmss") & ".zip")
    If IsProjectOpen() Then 'You don't want Visual Studio holding a lock on anything while you're deleting folders
        MsgBox("Close projects first, (expletive deleted)", vbOKOnly)
        Exit Sub
    End If
    If MsgBox("Are you sure you want to delete bin and obj folders?", vbOKCancel) = DialogResult.Cancel Then Exit Sub
    If ClearBinAndObj(src) Then ZipFile.CreateFromDirectory(src, dest)
End Sub

Public Function ClearBinAndObj(targetDir As String) As Boolean
    Dim dirstodelete As New List(Of String)
    For Each d As String In My.Computer.FileSystem.GetDirectories(targetDir, FileIO.SearchOption.SearchAllSubDirectories, "bin")
        dirstodelete.Add(d)
    Next
    For Each d As String In My.Computer.FileSystem.GetDirectories(targetDir, FileIO.SearchOption.SearchAllSubDirectories, "obj")
        dirstodelete.Add(d)
    Next
    For Each d In dirstodelete
        Try
            Directory.Delete(d, True)
        Catch ex As Exception
            If MsgBox("Error: " & ex.Message & " - OK to continue?", vbOKCancel) = MsgBoxResult.Cancel Then Return False
        End Try
    Next
    Return True
End Function

Public Function IsProjectOpen()
    For Each clsProcess As Process In Process.GetProcesses()
        If clsProcess.ProcessName.Equals("devenv") Then Return True
    Next
    Return False
End Function

Một điều cần nhớ là việc xóa hệ thống tệp có thể dễ dàng xảy ra sai sót. Một trong những mục yêu thích của tôi là khi tôi nhận ra rằng tôi không thể xóa một thư mục vì nó chứa các mục được tạo bởi Visual Studio trong khi chạy với các đặc quyền nâng cao (để tôi có thể gỡ lỗi một dịch vụ).

Tôi cần phải cấp quyền theo cách thủ công hoặc, tôi cho là cũng chạy ứng dụng với các đặc quyền nâng cao. Dù bằng cách nào, tôi nghĩ rằng có một số giá trị trong việc sử dụng phương pháp tiếp cận dựa trên GUI tương tác trên một tập lệnh, đặc biệt vì đây có thể là điều gì đó được thực hiện vào cuối một ngày dài và bạn không muốn tìm ra sau đó rằng bản sao lưu của mình không thực sự tồn tại ...


0

Cập nhật: Visual Studio 2019 (Làm sạch [bin] và [obj] trước khi phát hành). Tuy nhiên, tôi không chắc liệu [obj] có cần bị xóa hay không. Hãy lưu ý rằng có cấu hình gói nuget cũng được đặt. Bạn có thể bỏ dòng thứ hai nếu bạn nghĩ như vậy.

<Target Name="PreBuild" BeforeTargets="PreBuildEvent" Condition="'$(Configuration)' == 'Release'">
  <!--remove bin-->
  <Exec Command="rd /s /q &quot;$(ProjectDir)$(BaseOutputPath)&quot; &amp;&amp; ^" />
  <!--remove obj-->
  <Exec Command="rd /s /q &quot;$(BaseIntermediateOutputPath)Release&quot;" />
</Target>

0

câu trả lời này thật tuyệt, tôi chỉ muốn bình luận về phần cuối cùng của câu trả lời

LƯU Ý: Bạn nên lưu trữ tệp này trong tệp PowerShell và đặt tệp đó vào thư mục gốc của giải pháp của bạn (nơi tệp .sln nằm), sau đó chạy nó khi bạn muốn sạch thích hợp (không phải chuột micky mà VisualStudio thực hiện, và báo cáo thành công nữa).

Ngoài ra, bạn có thể thêm thông tin sau vào hồ sơ của mình.ps1

function CleanSolution {
    Get-ChildItem -inc bin,obj -rec | Remove-Item -rec -force
}

Set-Alias cs CleanSolution 

Sau đó, bạn có thể sử dụng CleanSolution hoặc cs để chạy. Bằng cách đó, bạn có thể sử dụng nó cho bất kỳ dự án nào và không có tiền tố ./ của tên tệp


0

Phần mở rộng Visual Studio

nhập mô tả hình ảnh ở đây

Nhấp chuột phải Giải pháp - Chọn "Xóa thư mục bin và obj"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.