如何在NuGet PowerShell安装中从项目中删除文件?

时间:2015-06-03 11:37:01

标签: powershell nuget nuget-package

我正在尝试在安装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()

但是如果文件位于根目录或子子文件夹中,则不会删除它。

总结: - 我的第一个例子:仅在根目录中删除文件 - 我的第二个例子:仅在子文件夹中删除文件

我想删除位于子子文件夹中的文件。

理想情况下,我希望找到一种无论文件位置如何都能正常工作的方法。

2 个答案:

答案 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。

我希望这段代码可以解决您的问题。