【问题标题】:Nuget powershell command - find projects with specific package installedNuget powershell 命令 - 查找安装了特定软件包的项目
【发布时间】:2015-12-16 16:04:41
【问题描述】:

我想通过 nuget 控制台列出安装了特定包的项目。

例如:

get-project -all | get-package | ?{ $_.Id -like 'ThePackage' } | `
    <Here I have all the packages, but I can't access the project name>

最后一部分应该是Select-Object project.Name之类的东西,但是get-package不返回项目名称,只返回包信息。

【问题讨论】:

  • 当我来到这个问题时,我很困惑,我想嗯我不记得问过这个问题
  • 当我看到那个评论时我也很困惑,我就像嗯我不记得留下这个评论

标签: powershell nuget


【解决方案1】:

是的,这可能会更好。一种方法是利用 get-package 将接受项目过滤器这一事实:

Get-Project | foreach-object {
    get-package -ProjectName $_.Name | `
    Add-Member -MemberType NoteProperty -Name ProjectName -Value $_.Name -passthru
    }  | select id, projectname | ft -auto -GroupBy projectname

在最后对该属性进行分组之前,我在每个包中添加了 projectname 属性。

由 Johnny5 编辑: 为了得到我想要的确切结果,我编辑了这样的命令:

Get-Project -all | foreach-object { get-package -ProjectName $_.Name | `
    Add-Member -MemberType NoteProperty -Name ProjectName -Value $_.Name -passthru
} | where-object { $_.id -eq 'Id.Of.The.Package' } | select id, projectname

【讨论】:

  • %ForEach 的别名?
  • 谢谢,我从你的命令中得到了我想要的。如果您在%Add-Member 命令上添加一些解释会很好:-)
  • 百分比是foreach-object 命令(您可以通过运行get-help % 找到它。您可以通过get-help add-member 找到关于add-member 的信息。
  • 我将 where-object(别名:?)移到了 select 前面
【解决方案2】:

对于 2.0.0.0 版的 Get-Package cmdlet,项目中每次使用包都会返回一个条目 - 并包含项目名称。

在 Visual Studio 的包管理器控制台中使用以下命令检查您的 Get-Package 版本。

get-command get-package

使用以下命令查找安装了特定包的所有项目。

get-package newtonsoft.json

如果您有兴趣查找解决方案中的项目引用不同版本的任何包,请尝试以下命令。它应该显示一个包列表。你可以选择一个,点击确定,它会显示引用它们的项目。

get-package | group-object Id | %{$versions = ($_.Group | Group-object Version); if(($versions | measure-object).Count -gt 1){$versions;};} | %{$_.Group} | group-object Id, Version | sort-object Name | Out-GridView -OutputMode Single | %{$_.Group} | select-object -first 1 | %{ $version = $_.Version; get-package $_.Id;} | ?{$_.Version -eq $version}

【讨论】:

    猜你喜欢
    • 2021-11-15
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    相关资源
    最近更新 更多