mirror of
https://github.com/microsoft/setup-msbuild.git
synced 2024-11-10 05:51:07 +07:00
add probing for x64 msbuild binaries
This commit is contained in:
parent
0cd944e169
commit
6c2e301a93
@ -14,6 +14,10 @@ inputs:
|
|||||||
vs-prerelease:
|
vs-prerelease:
|
||||||
description: 'Enable searching for pre-release versions of Visual Studio/MSBuild'
|
description: 'Enable searching for pre-release versions of Visual Studio/MSBuild'
|
||||||
required: false
|
required: false
|
||||||
|
msbuild-architecture:
|
||||||
|
description: 'The processor architecture to prefer of msbuild. Can be either "x86" or "x64". "x64" is only available from Visual Studio version 17.0 an onwards.'
|
||||||
|
required: false
|
||||||
|
default: 'x86'
|
||||||
outputs:
|
outputs:
|
||||||
msbuildPath:
|
msbuildPath:
|
||||||
description: 'The resulting location of msbuild for your inputs'
|
description: 'The resulting location of msbuild for your inputs'
|
||||||
|
14
src/main.ts
14
src/main.ts
@ -9,6 +9,7 @@ const IS_WINDOWS = process.platform === 'win32'
|
|||||||
const VS_VERSION = core.getInput('vs-version') || 'latest'
|
const VS_VERSION = core.getInput('vs-version') || 'latest'
|
||||||
const VSWHERE_PATH = core.getInput('vswhere-path')
|
const VSWHERE_PATH = core.getInput('vswhere-path')
|
||||||
const ALLOW_PRERELEASE = core.getInput('vs-prerelease') || 'false'
|
const ALLOW_PRERELEASE = core.getInput('vs-prerelease') || 'false'
|
||||||
|
const MSBUILD_ARCH = core.getInput('msbuild-architecture') || 'x86';
|
||||||
|
|
||||||
// if a specific version of VS is requested
|
// if a specific version of VS is requested
|
||||||
let VSWHERE_EXEC = '-products * -requires Microsoft.Component.MSBuild -property installationPath -latest '
|
let VSWHERE_EXEC = '-products * -requires Microsoft.Component.MSBuild -property installationPath -latest '
|
||||||
@ -70,6 +71,18 @@ async function run(): Promise<void> {
|
|||||||
const installationPath = data.toString().trim()
|
const installationPath = data.toString().trim()
|
||||||
core.debug(`Found installation path: ${installationPath}`)
|
core.debug(`Found installation path: ${installationPath}`)
|
||||||
|
|
||||||
|
// x64 only exists in one possible location, so no fallback probing
|
||||||
|
if(MSBUILD_ARCH === "x64") {
|
||||||
|
let toolPath = path.join(
|
||||||
|
installationPath,
|
||||||
|
'MSBuild\\Current\\Bin\\amd64\\MSBuild.exe'
|
||||||
|
);
|
||||||
|
core.debug(`Checking for path: ${toolPath}`)
|
||||||
|
if (!fs.existsSync(toolPath)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
foundToolPath = toolPath
|
||||||
|
} else {
|
||||||
let toolPath = path.join(
|
let toolPath = path.join(
|
||||||
installationPath,
|
installationPath,
|
||||||
'MSBuild\\Current\\Bin\\MSBuild.exe'
|
'MSBuild\\Current\\Bin\\MSBuild.exe'
|
||||||
@ -91,6 +104,7 @@ async function run(): Promise<void> {
|
|||||||
foundToolPath = toolPath
|
foundToolPath = toolPath
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// execute the find putting the result of the command in the options foundToolPath
|
// execute the find putting the result of the command in the options foundToolPath
|
||||||
await exec.exec(`"${vswhereToolExe}" ${VSWHERE_EXEC}`, [], options)
|
await exec.exec(`"${vswhereToolExe}" ${VSWHERE_EXEC}`, [], options)
|
||||||
|
Loading…
Reference in New Issue
Block a user