powershell pmc:无法使用通配符将软件包安装到特定项目

时间:2017-09-08 13:40:13

标签: visual-studio powershell nuget

我正在尝试使用nuget包管理器控制台安装一个包,如下所示:

install-package packageName -version 6.2.2 -ProjectName (Get-Project -all | where {$_.ProjectName -like "*.project.frontend"})

注意通配符。

我有两个项目,分别是:

  • [CUSTOMERNAME] .project.frontend

  • [CUSTOMERNAME] .project.backend

因为cutomerName每次都不同,所以我需要使用通配符。

问题是当我尝试运行命令时,我收到此错误:

install-package : Project 'System.__ComObject' is not found.

我认为我错过了另一个过滤器,因为现在过滤活动现在返回整个项目而不仅仅是项目名称。但我不确定。

所以问题是:

如何为具有通配符的特定项目安装软件包?

1 个答案:

答案 0 :(得分:1)

正如您在问题中假设的那样,您传递的是整个Project对象,而不仅仅是[string] PropertyName

如果您只想要对象的单个属性,则可以使用Object.Property表示法或Select-Object -ExpandProperty

以下是使用Object.Property表示法的代码:

Install-Package packageName -Version 6.2.2 -ProjectName ((Get-Project -all | where {$_.ProjectName -like "*.project.frontend"}).ProjectName)

以下是使用Select-Object参数-ExpandProperty参数

扩展属性的代码
Install-Package packageName -Version 6.2.2 -ProjectName (Get-Project -all | where {$_.ProjectName -like "*.project.frontend"} | Select-Object -ExpandProperty ProjectName)