Вызов сценария сборки, написанного в Msbuild, с использованием Perl - PullRequest
0 голосов
/ 10 февраля 2012

Можно ли выполнять команды Msbuild из Perl?

В PowerShell я использую для извлечения всех переменных среды Visual Studio 2010, а затем вызываю команды Msbuild напрямую.

function SetVS2010()

{

    $vs100comntools = (Get-ChildItem env:VS100COMNTOOLS).Value

    $batchFile = [System.IO.Path]::Combine($vs100comntools, "vsvars32.bat")

    Get-Batchfile $BatchFile

    [System.Console]::Title = "Visual Studio 2010 Windows PowerShell"

}



function Get-Batchfile($file)

{

    $cmd = "`"$file`" & set"

    cmd /c $cmd | Foreach-Object {

        $p, $v = $_.split('=')

        Set-Item -path env:$p -value $v

    }

}


SetVS2010

Function Update-VersionInfo {
    &"$MsbuildBinPath\Msbuild.exe" $MSBuildFile /t:UpdateVersionInfo $Logger $AllErrLogger
}

Это былбольшая помощь.Может ли то же самое быть заархивировано в perl?

1 Ответ

1 голос
/ 10 февраля 2012

perl имеет стандартные средства, такие как system () (выполнение команды в subshell) и exec () (выполнение команды, заменяющей выполняемый процесс). Другие средства обработки процессов находятся в пространстве имен Win32 ::. Я не вижу причин, по которым вы не сможете запускать команды Msbuild, используя комбинацию вышеупомянутых средств.

Вам придется манипулировать средой команды с помощью хитрости, аналогичной той, которую вы используете, или вы можете получить желаемый эффект, просто манипулируя средой процесса perl (путем доступа к% ENV).

...