我想我已经有一个解决方案,所以我把它放在这里(建设性)的批评。
function Reinstall-Package {
param(
[Parameter(Mandatory = $true)]
[string]
$Id,
[Parameter(Mandatory = $true)]
[string]
$Version,
[Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
[string]
$ProjectName,
[switch]
$Force
)
if (-not $ProjectName) {
$ProjectName = (get-project).ProjectName
}
Uninstall-Package -ProjectName $ProjectName -Id $Id -Force:$Force
Install-Package -ProjectName $ProjectName -Id $Id -Version $Version
}
这使我们可以使用如下调用来更新当前解决方案中所有对包的引用。
Get-Project -All |
?{ $_ | Get-Package | ?{ $_.Id -eq 'Foo.Bar' } } |
%{ $_ | Reinstall-Package -Id Foo.Bar -version 1.0.0 -Force }
-Force开关允许重新安装软件包,即使它在项目中具有相关的软件包。
+1更新两年后。 – MEMark 2014-08-24 21:33:57
谢谢,@MEMark! – 2014-08-25 22:57:28