如何在Microsoft托管的代理上找到EDITBIN的位置?我正在尝试使用它为C#项目的输出DLL设置SWAPRUN。
对于本地版本,我使用$(DevEnvDir)\..\..\VC\Tools\MSVC\14.14.26428\bin\Hostx86\x86\editbin
。但是,在Microsoft托管的代理上,DevEnvDir
没有定义,我也不知道其余的路径是否可以工作?
一个相关的奖励问题是,我通常可以在哪里找到Microsoft托管代理的文件结构?
答案 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>"