gpt4 book ai didi

c# - 如何在项目文件夹中找到不再存在于项目中的 .CS 文件?

转载 作者:太空狗 更新时间:2023-10-29 22:18:13 25 4
gpt4 key购买 nike

随着我们项目多年来的发展,许多 .cs 文件已从项目中删除、重命名等,但它们仍保留在源代码管理中。因此,当您提取最新代码时,您会获得所有这些 .cs 文件,这些文件不再在任何 .csproj 文件中引用。

有人知道一种简单可靠的机制来检测并删除这些文件吗?

最佳答案

最好使用脚本语言来完成这项任务。我发现 powershell 非常适合这种情况。

第 1 步是查找包含在您的 csproj 文件中的所有实际 .cs 文件。以下函数将搜索所有 csproj 文件的目录结构并返回包含在这些文件中的一组 .cs 文件

function Get-IncludedCsFiles() {
param ( $rootPath = $(throw "Need a path") )
$projFiles = gci -re -in *.csproj $rootPath
foreach ( $file in $projFiles ) {
$dir = split-path $file.FullName
foreach ( $line in (gc $file) ) {
if ( $line -match 'Compile\s+Include="([^"]+)"' ) {
join-path $dir $matches[1]
}
}
}
}

现在您需要做的就是将其包装到字典中,然后在目录结构中进行搜索

$map = @{}
$pathToSearch = "Path\To\Search"
Get-IncludedCsFiles $pathToSearch |
%{
if(!$map.Contains($_))
{
$map.Add($_, $true)
}
}
$notIncluded = gci -re -in *.cs $path | ?{ -not $map.Contains($_.FullName) }

关于c# - 如何在项目文件夹中找到不再存在于项目中的 .CS 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/760622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com