Как вывести /p:Platform="Any CPU", как указано в shake cmd?

Я использую cmdот Shake и возникли проблемы с формированием следующей командной строки...

msbuild a.sln /p:Configuration=Debug /p:Platform="Any CPU"

Когда я пытаюсь избежать двойных кавычек, экранирование и строковые кавычки перетекают слишком далеко, и я получаю эту ошибку...

Development.Shake.cmd, system command failed
Command: msbuild a.sln /p:Configuration=Debug "/p:Platform=\"Any CPU\""
Exit code: 1

Я пробовал 3 способа...

cmd "msbuild a.sln /p:Configuration=Debug /p:Platform=\"Any CPU\""
cmd "msbuild a.sln /p:Configuration=Debug" ["/p:Platform=\"Any CPU\""]
cmd "msbuild" ["a.sln", "/p:Configuration=Debug", "/p:Platform=\"Any CPU\""]

Я запускаю это на Windows.

1 ответ

Я написал небольшую программу на C (которую я назвал msbuild) тестировать:

#include <Windows.h>
#include <stdio.h>

main()
{
    printf("{%s}\n", GetCommandLine());
    return 0;
}

Используя это, я проверил ваши варианты:

cmd "msbuild a.sln /p:Configuration=Debug /p:Platform=\"Any CPU\""
{"msbuild" "a.sln" "/p:Configuration=Debug" "/p:Platform=\"Any" "CPU\""}
cmd "msbuild a.sln /p:Configuration=Debug" ["/p:Platform=\"Any CPU\""]
{"msbuild" "a.sln" "/p:Configuration=Debug" "/p:Platform=\"Any CPU\""}
cmd "msbuild" ["a.sln", "/p:Configuration=Debug", "/p:Platform=\"Any CPU\""]
{"msbuild" "a.sln" "/p:Configuration=Debug" "/p:Platform=\"Any CPU\""}

Тот, который исправляет это, должен использовать Shell команда, чтобы сказать Shake, чтобы не делать каких-либо собственных экранировок:

cmd Shell "msbuild a.sln /p:Configuration=Debug /p:Platform=\"Any CPU\""
{msbuild  a.sln /p:Configuration=Debug /p:Platform="Any CPU"}

Однако при условии реального msbuild как и другие инструменты Visual Studio (например, fsc, csc, cl), вы, вероятно, можете использовать эквивалентный (и, возможно, предпочтительный) вариант:

msbuild a.sln /p:Configuration=Debug "/p:Platform=Any CPU"

Что вы можете выразить с помощью Shake как:

cmd "msbuild a.sln /p:Configuration=Debug" ["/p:Platform=Any CPU"]
Другие вопросы по тегам