É seguro chamar o Regsvr32 simultaneamente?

3

Eu tenho cerca de 100 dlls que preciso registrar com regsvr32 /s some.dll , eu preciso esperar que cada chamada para regsvr32 termine antes de fazer a próxima chamada ou posso simplesmente executá-las todas ao mesmo tempo. / p>

Basicamente eu tenho o script Powershell

if([System.Environment]::Is64BitOperatingSystem)
{
    $regsvr = [System.Environment]::ExpandEnvironmentVariables('%windir%\SysWOW64\regsvr32.exe')
}
else
{
    $regsvr = [System.Environment]::ExpandEnvironmentVariables('%windir%\System32\regsvr32.exe')
}

foreach( $file in $filesToRegister)
{   
    Write-Verbose "$regsvr /s ""$file"""
    Start-Process $regsvr -ArgumentList '/s', """$file""" -Wait
}

Todos os arquivos que estão sendo registrados são arquivos vb6 dll que são gerados por um projeto grande. Preciso ter o -Wait no meu Start-Process ou é seguro retirá-lo?

    
por Scott Chamberlain 29.09.2016 / 21:07

1 resposta

2

Depois de brincar um pouco, descobri que regsvr32 permite que você passe em mais de um arquivo por vez. Mudando $filesToRegister para usar caminhos relativos para baixar o tamanho total da lista de argumentos e agora eu faço

if([System.Environment]::Is64BitOperatingSystem)
{
    $regsvr = [System.Environment]::ExpandEnvironmentVariables('%windir%\SysWOW64\regsvr32.exe')
}
else
{
    $regsvr = [System.Environment]::ExpandEnvironmentVariables('%windir%\System32\regsvr32.exe')
}

Set-Location $currentBuildFolder
$arguments = @('/s') + $filesToRegister
Write-Verbose "$regsvr $arguments"
Start-Process $regsvr -ArgumentList $arguments -Wait

E isso é muito mais rápido.

    
por 29.09.2016 / 22:01