我正在尝试使用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.
我认为我错过了另一个过滤器,因为现在过滤活动现在返回整个项目而不仅仅是项目名称。但我不确定。
所以问题是:
如何为具有通配符的特定项目安装软件包?
答案 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)