Кажется, это работает. Примечания:
printSequence
быть рекурсивным, он просто принимает предел (n) и действует как оболочка для вызова рекурсивного метода, начинающегося с 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);
}
}
Я знаю о двух способах сделать это.
Метод 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).
MSBuild обычно работает, но я столкнулся с трудностями прежде. У Вас может быть лучшая удача с
devenv YourSolution.sln /Build
MSBuild является Вашим другом.
msbuild "C:\path to solution\project.sln"