EDITBIN在Microsoft托管代理中的位置

时间:2018-07-10 21:35:51

标签: azure-devops build-agent

如何在Microsoft托管的代理上找到EDITBIN的位置?我正在尝试使用它为C#项目的输出DLL设置SWAPRUN

对于本地版本,我使用$(DevEnvDir)\..\..\VC\Tools\MSVC\14.14.26428\bin\Hostx86\x86\editbin。但是,在Microsoft托管的代理上,DevEnvDir没有定义,我也不知道其余的路径是否可以工作?

一个相关的奖励问题是,我通常可以在哪里找到Microsoft托管代理的文件结构?

2 个答案:

答案 0 :(得分:1)

editbin.exe存在于Hosted VS2017代理中,位于:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\SDK\ScopeCppSDK\VC\bin\editbin.exe

要获取文件夹结构,可以使用Powershell脚本,例如:

cd "C:\Program Files (x86)\Microsoft Visual Studio\2017"
Get-childItem | tree

如果要检查C:\之类的根目录的结构,将花费大量时间。

答案 1 :(得分:0)

出于自动化原因,您可能会自动选择正确的 editbin 变体。我想出了以下 PS 脚本:

# define search parameters
$hostsys = "\hostx64"
$target = "\x86"
$basepath = "C:\Program Files (x86)\Microsoft Visual Studio\2019\"

# determine paths to the editbin executable and select the preferred one
$findings = Get-childItem -Path $basepath -Recurse -Include "editbin.exe"
$editbinexe = ""

Write-Host "`nEditbin candidates:"
foreach ($item in $findings) {
    [string]$directory = $item.DirectoryName.ToLower()
    Write-Host "$directory"
    
    if ($directory.Contains($hostsys) -and $directory.Contains($target))
    {
        $editbinexe = $item.FullName
    }
}

if ([string]::IsNullOrEmpty($editbinexe))
{
    Write-Host "`nEditbin was not found`n"
    exit -120
}

# execute the found executable

Write-Host "`nUsing editbin ""$editbinexe""`n"
Set-Location .\<the path to executable>
& $editbinexe /LARGEADDRESSAWARE "<the executable>"