使用Perl调用用Msbuild编写的构建脚本
可以从perl执行Msbuild命令吗 在powershell中,我使用它检索所有VisualStudio2010环境变量,然后直接调用Msbuild命令使用Perl调用用Msbuild编写的构建脚本,perl,msbuild,msbuild-4.0,Perl,Msbuild,Msbuild 4.0,可以从perl执行Msbuild命令吗 在powershell中,我使用它检索所有VisualStudio2010环境变量,然后直接调用Msbuild命令 function SetVS2010() { $vs100comntools = (Get-ChildItem env:VS100COMNTOOLS).Value $batchFile = [System.IO.Path]::Combine($vs100comntools, "vsvars32.bat") Ge
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中存档这些文件?perl具有标准功能,如system()(在subshell中执行命令)和exec()(执行替换执行进程的命令)。其他进程处理工具位于Win32::命名空间中。我看不出为什么不能使用上述功能的组合来运行Msbuild命令 您必须使用与您正在使用的技巧类似的技巧来操纵命令的环境,或者您可以通过简单地操纵perl进程的环境(通过访问%ENV)来获得所需的效果