Дважды проверьте ваши пути.
Помните, что PowerShell, вызываемый таким образом, запускается как Msbuild.exe под любым пользователем, выполняющим сборку. Для msbuild.exe прямой вызов cmd.exe начнется в рабочем каталоге, где находится msbuild.
Предположим, -file "Scripts\SetSth.ps1"
ссылки C: \ users \ yourusername \ Scripts \ SetSth.ps1
Так что для вас вызов cmd.exe и запуск, который может работать нормально, b / c, ваш рабочий каталог будет соответствовать C: \ users \ yourusername
Для msbuild.exe он, вероятно, не может найти этот файл, так как он запускается примерно в * C: \ Windows \ Microsoft.NET \ Framework \ v4.0 *
Итак, он ищет C: \ Windows \ Microsoft.NET \ Framework \ v4.0 \ Scripts \ SetSth.ps1
Я бы попытался указать полный путь к этому файлу. Если это по-прежнему не работает, сделайте, чтобы cmd.exe выгрузил результаты в свойство, а msbuild - запишите его. Затем вы можете просмотреть пути.