Вызов определенной версии MSBuild в скрипте psake

Я пытаюсь скомпилировать код для своего приложения MVC через MSBuild.exe. Раньше я получал ошибки, но спасибо на этот ответ я знаю, в чем проблема.

Я использовал неправильную версию MSBuild.exe

Теперь, когда я знаю, какую версию мне следует использовать, мой скрипт psake не будет работать. не уверен, как я могу нацелиться на MSBuild.exe, который сидит здесь

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe

Моя задача psake Compile теперь выглядит так, но VS говорит мне, что синтаксис неверен в строке 7.

task Compile `
    -description "Compile the code" `
    -requiredVariables $solutionFile, $buildConfiguration, $buildPlatform, $tempOutputDirectory `
    -depends Init {
        Write-Host $compileMessage
        Exec {
          "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" $solutionFile "/p:Configuration=$buildConfiguration;Platform=$buildPlatform;OutputDir=$tempOutputDirectory"
        }
}

Когда у меня было следующее, VS 2017 не жалуется на синтаксис, но я получаю ошибку WebApplication.targets при запуске скрипта сборки, и это должно быть потому, что используется неправильная версия MSBuild.

task Compile `
    -description "Compile the code" `
    -requiredVariables $solutionFile, $buildConfiguration, $buildPlatform, $tempOutputDirectory `
    -depends Init {
        Write-Host $compileMessage
        Exec {
          msbuild $solutionFile "/p:Configuration=$buildConfiguration;Platform=$buildPlatform;OutputDir=$tempOutputDirectory"
        }
}

person J86    schedule 30.07.2017    source источник
comment
Я сам с этим только что разобрался. Мне никогда не удавалось заставить его работать, ориентируясь на конкретный экземпляр MSBuild, но добавление Framework "4.5.1" (замените на версию вашей платформы) в начало моего скрипта сборки волшебным образом заставило все работать. Это не отвечает на ваш вопрос, но, возможно, это, по крайней мере, поможет вам начать работу.   -  person Jason Boyd    schedule 31.07.2017