我正在尝试在安装NuGet包的PowerShell期间从项目中删除文件。
我使用以下命令删除项目根目录下的文件:
param($ installPath,$ toolsPath,$ package,$ project)
$ file1 = $ project.ProjectItems |其中{$ _。Name -eq" DebugTrace.cs" }
$ file1.Delete()
但是如果文件在子文件夹中,则不会删除。要删除子文件夹中的文件,我使用以下命令:
$ file2 = $ project.ProjectItems | ForEach-Object {$ .ProjectItems} |其中{$ .Name -eq" DebugTrace.cs" }
$ file2.Delete()
但是如果文件位于根目录或子子文件夹中,则不会删除它。
总结: - 我的第一个例子:仅在根目录中删除文件 - 我的第二个例子:仅在子文件夹中删除文件
我想删除位于子子文件夹中的文件。
理想情况下,我希望找到一种无论文件位置如何都能正常工作的方法。
答案 0 :(得分:0)
这有用吗?
$item = $project.ProjectItems.Item("YourFolder").ProjectItems.Item("DebugTrace.cs")
答案 1 :(得分:0)
请试试这个,
param($installPath, $toolsPath, $package, $project)
$DirInfo = New-Object System.IO.DirectoryInfo($installPath)
$appDir = New-Object System.IO.DirectoryInfo($DirInfo.Parent.Parent.FullName)
$fullPath = [IO.Path]::Combine($appDir.FullName, $appDir.Name, "App_Code\DebugTrace.cs")
Remove-Item $fullPath
将App_Code文件夹更改为SubFolder。
我希望这段代码可以解决您的问题。