Как я компилирую проект Visual Studio от командной строки?

Кажется, это работает. Примечания:

  • Вместо того, чтобы сам printSequence быть рекурсивным, он просто принимает предел (n) и действует как оболочка для вызова рекурсивного метода, начинающегося с 1.
  • Рекурсивный метод принимает текущую строку в качестве аргумента, поэтому код не должен восстанавливать строку из 1 каждый раз, он просто добавляет последнюю цифру.
  • Ошибка проверки для выдачи исключения, если (начальный) аргумент находится вне диапазона.
public static void main(String[] args) {
    printSequence(5);  // test value
}

private static void printSequence(int n) {
    if (n < 1 || n > 9) {
        throw new IllegalArgumentException("Argument must be in the range 1 to 9 inclusive.");
    }
    doRecursion(1, "", n);  // call recursive method with initial values
}

private static void doRecursion(Integer counter, String currentString, int limit) {
    String newString = currentString + counter.toString();
    System.out.println(newString);
    if (counter < limit) {
        doRecursion(counter + 1, newString, limit);
        System.out.println(newString);
    }
}
108
задан Peter Mortensen 27 February 2010 в 21:36
поделиться

3 ответа

Я знаю о двух способах сделать это.

Метод 1
первый метод (который я предпочитаю) должен использовать msbuild:

msbuild project.sln /Flags...

Метод 2
можно также работать:

vcexpress project.sln /build /Flags...

vcexpress опция сразу возвращается и не печатает вывода. Я предполагаю, что это могло бы быть тем, что Вы хотите для сценария.

Примечание, что DevEnv не распределяется с Visual Studio Express 2008 (я провел много времени, пытаясь понять это, когда у меня сначала была подобная проблема).

Так, конечный результат мог бы быть:

os.system("msbuild project.sln /p:Configuration=Debug")

Вы также захотите удостовериться, что Ваши переменные среды корректны, поскольку msbuild и vcexpress не находятся по умолчанию на системном пути. Или запустите среду сборки Visual Studio и запустите свой скрипт оттуда или измените пути в Python (с os.putenv).

112
ответ дан ks1322 24 November 2019 в 03:32
поделиться

MSBuild обычно работает, но я столкнулся с трудностями прежде. У Вас может быть лучшая удача с

devenv YourSolution.sln /Build 
43
ответ дан Jeffrey Hantin 24 November 2019 в 03:32
поделиться

MSBuild является Вашим другом.

msbuild "C:\path to solution\project.sln"
3
ответ дан Peter Mortensen 24 November 2019 в 03:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: