मेरे पास एक बड़ा समाधान है और कई * .cs-files हैं जो वास्तव में मेरे समाधान (csproj-files में शामिल नहीं) से संबंधित नहीं हैं। क्या उन सभी को खोजने और निकालने का कोई तरीका है?समाधान में अप्रयुक्त सीएस-फाइलों को हटाएं
उत्तर
यह पावरशेल स्क्रिप्ट आपको जो चाहिए वह करना चाहिए। यह शामिल कोड फ़ाइलों को प्राप्त करने के लिए प्रोजेक्ट फ़ाइल को पार करता है। फिर यह उस सूची की तुलना डिस्क पर वास्तविक फ़ाइलों से करता है। शेष फाइलें आपकी अप्रयुक्त/अप्रचलित फाइलें हैं।
स्क्रिप्ट या तो डिस्क से अप्रयुक्त फ़ाइलों को हटा सकता है या उन्हें TFS में हटाए जाने के रूप में प्रस्तुत कर सकता है।
<#
.SYNOPSIS
Find and process files in a project folder that are not included in the project.
.DESCRIPTION
Find and process files in a project folder that are not included in the project.
Options to delete the files or to add them as pending deletes for TFS. Use TF.exe to pend the deletes and start the check-in process for the files.
This is necessary when trying to delete files that are not currently included in a Visual Studio project.
.PARAMETER Project
The path/name for the project file.
.PARAMETER VsVersion
The Visual Studio version (10, 11, 12). Used to locate the tf.exe file.
.PARAMETER DeleteFromDisk
Just delete the files from disk. No interaction with any source control.
.PARAMETER TfsCheckin
After pending the deletes, open the check-in dialog.
#>
[CmdletBinding()]
param(
[Parameter(Position=0, Mandatory=$true)]
[string]$Project,
[Parameter(Mandatory=$false)]
[ValidateRange(10,12)]
[int] $VsVersion = 12,
[switch]$DeleteFromDisk,
[switch]$TfsCheckin
)
$ErrorActionPreference = "Stop"
$tfPath = "${env:ProgramFiles(X86)}\Microsoft Visual Studio $VsVersion.0\Common7\IDE\TF.exe"
$projectPath = Split-Path $project
if($Project.EndsWith("csproj"))
{
$fileType = "*.cs"
}
else
{
$fileType = "*.vb"
}
$fileType
$projectFiles = Select-String -Path $project -Pattern '<compile' | % { $_.Line -split '\t' } | `
% {$_ -replace "(<Compile Include=|\s|/>|["">])", ""} | % { "{0}\{1}" -f $projectPath, $_ }
Write-Host "Project files:" $projectFiles.Count
$diskFiles = gci -Path $path -Recurse -Filter $fileType | % { $_.FullName}
Write-Host "Disk files:" $diskFiles.Count
$diff = (compare-object $diskFiles $projectFiles -PassThru)
Write-Host "Excluded Files:" $diff.Count
#create a text file for log purposes
$diffFilePath = Join-Path $projectPath "DiffFileList.txt"
$diff | Out-File $diffFilePath -Encoding UTF8
notepad $diffFilePath
#just remove the files from disk
if($DeleteFileOnly)
{
$diff | % { Remove-Item -Path $_ -Force -Verbose}
}
else #TFS options
{
#this will add the files as pending deletes in TFS (awaiting check-in)
$diff | % {
[Array]$arguments = @("delete", "`"$_`"")
& "$tfPath" $arguments
}
if($Checkin)
{
#start the check-in process for the pending deletes
[Array]$arguments = "checkin", "/recursive", "$projectPath"
& $tfPath $arguments
}
}
धन्यवाद! मैंने इस स्क्रिप्ट का उपयोग एक और विस्तृत विवरण बनाने के लिए किया है जिसमें अन्य प्रकार की फाइलें शामिल हैं और टीएफएस का उपयोग नहीं करती हैं: https://gist.github.com/mcliment/d9008a9288cea9d088af –
मैंने अभी भी एक और PowerShell स्क्रिप्ट बनाने के लिए इस फ़ाइल का उपयोग किया है और @ MarcCliment की एक एकल प्रोज फ़ाइल की बजाय .sln फ़ाइल लेता है। यह सभी फ़ाइलों को छोड़कर हटा देता है प्रदत्त समाधान में परियोजनाएं। इसे जांचें! http: // g oo.gl/PdR9Fg – mikesigs
मैं संशोधित स्क्रिप्ट का उपयोग @ mikesigs से करता हूं, एक आकर्षण की तरह काम करता है सिवाय इसके कि यह गलत तरीके से कुछ फ़ाइलों को एक WPF अनुप्रयोग (XAML फ़ाइलों) से निष्क्रिय के रूप में दिखाता है। – Roemer
जब आप समाधान एक्सप्लोरर में प्रोजेक्ट का चयन करते हैं, तो समाधान एक्सप्लोरर के टूलबार में "सभी फ़ाइलें दिखाएं" बटन पर क्लिक करें। यह आपको प्रोजेक्ट निर्देशिका में फ़ाइलें और फ़ोल्डर्स दिखाएगा, लेकिन परियोजना में शामिल नहीं हैं। यह आपको उन्हें हटाने या परियोजना को पढ़ने की अनुमति देता है।
मुझे स्वचालित समाधान की जानकारी नहीं है, इसलिए आपको इसे प्रत्येक प्रोजेक्ट के लिए मैन्युअल रूप से करना होगा।
हां, मुझे पता है कि समाधान, लेकिन मेरी परियोजना बहुत बड़ी है, इसलिए मैं इसे स्वचालित करने के लिए कुछ ढूंढ रहा हूं :-( – Nagg
स्रोत नियंत्रण में सभी फ़ाइलों को जोड़ने के लिए दृश्य स्टूडियो का उपयोग करें। यह केवल उन फ़ाइलों को जोड़ देगा जो एक परियोजना का हिस्सा हैं, इसलिए गैर-प्रोजेक्ट फ़ाइलों को नहीं जोड़ा जाएगा। फिर आप बस सभी फाइलें कर सकते हैं और परियोजना को कहीं और जांच सकते हैं। लक्ष्य स्थान में केवल प्रासंगिक फाइलों की जांच की जाएगी।
यह देखते हुए कि आपके पास एक बड़ी परियोजना है, यह निश्चित रूप से संभव नहीं है कि आपके पास पहले से ही कुछ प्रकार का स्रोत नियंत्रण नहीं है, इसलिए आपको मौजूदा कनेक्शन तोड़ना पड़ सकता है, चेकआउट के बाद मूल स्रोत स्थान को साफ़ कर सकते हैं स्थान, लक्ष्य को मूल पर कॉपी करें और मूल स्केल को मूल में फ़ाइल निष्कासन का पता लगाने दें और हटाने को सबमिट करें।
- 1. अप्रयुक्त संदर्भों को हटाएं (! = "उपयोग")
- 2. अप्रयुक्त गिट शाखाओं को कैसे हटाएं
- 3. डेटाग्रिड व्यू: अप्रयुक्त स्थान हटाएं?
- 4. पूरे असेंबली में अप्रयुक्त उपयोग हटाएं
- 5. एमएएसएम में अप्रयुक्त .CONST डेटा को कैसे हटाएं?
- 6. अप्रयुक्त गेटटेक्स्ट तारों को स्वचालित रूप से कैसे हटाएं?
- 7. "अप्रयुक्त संदर्भों को हटाएं" का उद्देश्य क्या है
- 8. ग्रहण अप्रयुक्त आयात को हटाएं लेकिन अनसुलझे रखें
- 9. 'डस्ट मी सिलेक्टर' के अलावा अप्रयुक्त सीएसएस चयनकर्ताओं को हटाएं?
- 10. सी # में निर्देशों का उपयोग करके अप्रयुक्त क्यों हटाएं?
- 11. पुनर्विक्रेता के बिना सी # परियोजना में अप्रयुक्त संदर्भ (! = Usings) हटाएं?
- 12. एसक्यूएल का उपयोग कर डीबी टेबल से अप्रयुक्त पंक्तियों को कैसे हटाएं?
- 13. अप्रयुक्त सदस्यों को संरचना में कैसे जांचें?
- 14. एक .NET समाधान
- 15. अप्रयुक्त जावास्क्रिप्ट कार्यों को खोजें?
- 16. एएसपीनेट अप्रयुक्त httpmodules
- 17. लिंक और अप्रयुक्त फ़ाइलों और अप्रयुक्त जावास्क्रिप्ट
- 18. उपयोग खंड से अप्रयुक्त इकाइयों को "स्वचालित रूप से" कैसे हटाएं?
- 19. अप्रयुक्त कोड
- 20. अप्रयुक्त सी ++
- 21. अप्रयुक्त कोड
- 22. अप्रयुक्त कोड
- 23. जिथब में सभी प्रतिबद्ध इतिहास को कैसे हटाएं?
- 24. हैश में कुंजी को हटाएं
- 25. सी ++ में फ़ोल्डर को कैसे हटाएं?
- 26. एसएसआईएस - पंक्तियों को हटाएं
- 27. ggplot2 अप्रयुक्त स्तरों barplot
- 28. QML में डिस्प्ले से स्क्रीन/पेज को कैसे हटाएं/हटाएं?
- 29. आईआईएस: कमांड लाइन से वेबपैप को कैसे हटाएं/हटाएं/हटाएं?
- 30. फ़ाइलों को समाधान एक्सप्लोरर
आपका मतलब है कि फ़ाइलें डिस्क पर हैं, लेकिन किसी भी प्रोजेक्ट में शामिल नहीं हैं और आप उन्हें डिस्क से हटाना चाहते हैं? या क्या आपका मतलब है कि वे आपके समाधान में शामिल हैं, लेकिन कक्षाओं का कभी भी उपयोग नहीं किया जाता है? – Ray
अप्रयुक्त कक्षाएं Resharper का उपयोग करके पाई जा सकती हैं: http://stackoverflow.com/questions/4646174/resharper-find-all-unused-classes लेकिन मुझे यकीन नहीं है कि आप यही पूछ रहे हैं। – Ray
संभव डुप्लिकेट [विजुअल स्टूडियो मैक्रो: उन फ़ाइलों को ढूंढें जो प्रोजेक्ट में शामिल नहीं हैं?] (Http://stackoverflow.com/questions/2000197/visual-studio-macro-find-files-that-arent-cluded- इन-द-प्रोजेक्ट) – Ray