Chcę usunąć wszystkie foldery bin i obj, aby zmusić wszystkie projekty do odbudowy wszystkiego
Pracuję z wieloma projektami i chcę rekurencyjnie usunąć wszystkie foldery o nazwie ' bin 'lub ' obj'. W ten sposób jestem pewien, że wszystkie projekty będą przebudowywać everyhing (czasami jest to jedyny sposób, aby zmusić visual studio do zapomnienia o poprzednich kompilacjach).
Czy istnieje szybki sposób, aby to osiągnąć (na przykład za pomocą pliku bat) bez konieczności pisania programu. Net?
21 answers
To zależy od powłoki, której chcesz użyć.
Jeśli używasz powłoki cmd w systemie Windows, powinno działać:
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S bin') DO RMDIR /S /Q "%%G"
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S obj') DO RMDIR /S /Q "%%G"
Jeśli używasz powłoki typu bash lub zsh (takiej jak git bash lub babun w systemie Windows lub większości powłok Linux / OS X), to jest to o wiele ładniejszy, bardziej zwięzły sposób na zrobienie tego, co chcesz:
find . -iname "bin" | xargs rm -rf
find . -iname "obj" | xargs rm -rf
I można to zredukować do jednego wiersza Z OR:
find . -iname "bin" -o -iname "obj" | xargs rm -rf
Jeśli używasz Powershell, możesz użyć tego:
Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
Jak widać w Robert h ' s answer below - po prostu upewnij się, że dasz mu kredyt na odpowiedź powershell, a nie mnie, jeśli zdecydujesz się na up-vote czegokolwiek :)
Byłoby oczywiście mądre, aby najpierw uruchomić dowolną komendę w bezpiecznym miejscu, aby ją przetestować!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-19 09:59:14
Znalazłem ten wątek i dostałem bingo. Trochę więcej poszukiwań pojawił się skrypt power shell:
Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
Pomyślałem, że się podzielę, biorąc pod uwagę, że nie znalazłem odpowiedzi, gdy szukałem tutaj.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-13 16:40:01
To mi pomogło:
for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"
Na podstawie tej odpowiedzi na superuser.com
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 10:18:27
Zawsze dodaję nowy cel w moich rozwiązaniach, aby to osiągnąć.
<Target Name="clean_folders">
<RemoveDir Directories=".\ProjectName\bin" />
<RemoveDir Directories=".\ProjectName\obj" />
<RemoveDir Directories="$(ProjectVarName)\bin" />
<RemoveDir Directories="$(ProjectVarName)\obj" />
</Target>
I możesz wywołać go z linii poleceń
msbuild /t:clean_folders
To może być Twój plik wsadowy.
msbuild /t:clean_folders
PAUSE
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-29 00:04:44
Napisałem skrypt powershell aby to zrobić.
Zaletą jest to, że wyświetla podsumowanie usuniętych folderów i ignorowanych, jeśli określiłeś hierarchię podfolderów, które mają być ignorowane.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-03 11:42:35
Nic mi nie wyszło. Musiałem usunąć wszystkie pliki w folderach bin i obj w celu debugowania i Wydania. Moje rozwiązanie:
1.Kliknij prawym przyciskiem myszy projekt, rozładuj, kliknij prawym przyciskiem myszy ponownie edytuj, Przejdź do dołu
2.Insert
<Target Name="DeleteBinObjFolders" BeforeTargets="Clean">
<RemoveDir Directories="..\..\Publish" />
<RemoveDir Directories=".\bin" />
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>
3. Zapisz, przeładuj Projekt, kliknij prawym przyciskiem myszy clean i presto.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-05 13:00:25
Coś takiego powinno zrobić to w dość elegancki sposób, po czystym celu:
<Target Name="RemoveObjAndBin" AfterTargets="Clean">
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
<RemoveDir Directories="$(TargetDir)" />
</Target>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-14 09:32:03
Aby usunąć bin i obj przed zbudowaniem Dodaj do pliku projektu:
<Target Name="BeforeBuild">
<!-- Remove obj folder -->
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
<!-- Remove bin folder -->
<RemoveDir Directories="$(BaseOutputPath)" />
</Target>
Oto Artykuł: Jak usunąć folder bin i / lub obj przed zbudowaniem lub wdrożeniem
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-10 17:07:56
Spójrz na CleanProject , usunie foldery bin, foldery obj, foldery TestResults i foldery Resharper. Dostępny jest również kod źródłowy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-06 12:37:01
Czy "czysty" nie jest wystarczająco dobry? Zauważ, że możesz wywołać msbuild za pomocą /t: clean z wiersza poleceń.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-16 09:39:21
From Using Windows PowerShell to remove obj, bin and ReSharper folders
Bardzo podobny do Robert H odpowiedź z krótszą składnią
- Uruchom powershell
- cd (zmiana katalogu) do katalogu głównego projektu
-
Wklej i uruchom skrypt
Reż.\ - include bin, obj,resharper* - recurse / foreach ($) {rd $_.fullname-Recurse-Force}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:42
Oto odpowiedź na podobne pytanie, prosta, łatwa, działa całkiem nieźle i nie wymaga niczego innego niż to, co już masz z Visual Studio.
Jak inni odpowiedzieli już Clean usunie wszystkie artefakty, które są generowane przez kompilację. Ale zostawia wszystko inne.
Jeśli masz jakieś modyfikacje w swoim projekcie MSBuild, może to oznaczać kłopoty i pozostawić po sobie rzeczy, które uważasz, że powinny mieć usunięte.
Możesz obejść ten problem za pomocą prostej zmiany swojego .* proj dodając to gdzieś pod koniec :<Target Name="SpicNSpan"
AfterTargets="Clean">
<RemoveDir Directories="$(OUTDIR)"/>
</Target>
Który usunie wszystko w Twoim folderze bin z bieżącej platformy / konfiguracji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:42
Bardzo podobne do skryptów PowerShell Steve ' a. Właśnie dodałem do niego TestResults i pakiety, ponieważ jest to potrzebne dla większości projektów.
Get-ChildItem .\ -include bin,obj,packages,TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-13 11:33:25
Na naszym serwerze kompilacyjnym jawnie usuwamy katalogi bin i obj za pomocą skryptów nant.
Każdy skrypt budujący projekt jest odpowiedzialny za jego katalogi output/temp. Tak to działa. Więc kiedy zmieniamy projekt i dodajemy nowy, opieramy skrypt na działającym skrypcie, a Ty zauważasz etap usuwania i dbasz o niego.
Jeśli robisz to na swojej maszynie logic development, trzymałbym się czyszczenia przez Visual Studio, jak inni wspominali.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-16 10:16:50
Narzędzie wiersza poleceń, które znajduje Visual Studio rozwiązań i prowadzi czyste rozkazuj im. Pozwala to na czyszczenie up katalogów /bin / * wszystkich tych stare projekty, na których leżysz twój dysk twardy
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 15:39:26
Mógłbyś wziąć sugestię PS nieco dalej i utworzyć plik vbs w katalogu projektu w następujący sposób:
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
Dla bezpieczeństwa, dodałem parametr-WhatIf, więc usuń go, jeśli jesteś zadowolony z listy przy pierwszym uruchomieniu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-30 19:52:30
Nienawidzę plików obj zaśmiecających drzewa źródłowe. Zwykle konfiguruję projekty tak, aby wyprowadzały pliki obj poza drzewo źródłowe. Do projektów C# zwykle używam
<IntermediateOutputPath>..\..\obj\$(AssemblyName)\$(Configuration)\</IntermediateOutputPath>
Dla projektów C++
IntermediateDirectory="..\..\obj\$(ProjectName)\$(ConfigurationName)"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-16 12:56:04
Mamy duży .Pliki SLN z wieloma plikami projektu. Rozpocząłem politykę posiadania katalogu "ViewLocal", w którym znajdują się wszystkie pliki niezwiązane z sourcecontrolled. Wewnątrz tego katalogu znajduje się Katalog "Inter" I "Out". Odpowiednio dla plików pośrednich i plików wyjściowych.
To oczywiście ułatwia przejście do katalogu "viewlocal" i proste usunięcie, aby pozbyć się wszystkiego.
Zanim poświęciłeś czas na wymyślanie sposobu na obejście tego w przypadku skryptów możesz pomyśleć o skonfigurowaniu czegoś podobnego.
Nie będę kłamał, utrzymanie takiej konfiguracji w dużej organizacji udowodniło....interesujące. Zwłaszcza, gdy używasz technologii takich jak QT, które lubią przetwarzać pliki i tworzyć niezarządzane pliki źródłowe. Ale to zupełnie inna historia!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-16 13:20:59
Biorąc pod uwagę, że plik PS1 znajduje się w currentfolderze (folderze, w którym należy usunąć foldery bin i obj)
$currentPath = $MyInvocation.MyCommand.Path
$currentFolder = Split-Path $currentPath
Get-ChildItem $currentFolder -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-16 13:04:14
Jest to mój plik wsadowy, którego używam do rekurencyjnego usuwania wszystkich folderów BIN i OBJ.
- Utwórz pusty plik i nazwij go DeleteBinObjFolders.bat
- skopiuj i wklej poniższy kod do DeleteBinObjFolders.bat
- Przenieś DeleteBinObjFolders.bat plik w tym samym folderze z Twoim rozwiązaniem (*.sln).
@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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-19 06:57:56
Myślę, że możesz kliknąć prawym przyciskiem myszy na swoje rozwiązanie/projekt i kliknąć przycisk "Wyczyść".
o ile pamiętam, to tak działało. Nie mam swojego VS.NET ze mną teraz, więc nie mogę tego przetestować.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-16 09:40:20