Как открыть и запустить команду devenv \ build в командной строке разработчика для VS2013?

1

Я хотел бы построить проект VS 2013 из командной строки.

После этого вручную откройте "Командная строка разработчика для VS2013", изменив каталог в каталог проекта и введя следующую команду

devenv myproject.csproj /build

проект успешно построен.

Проблема в том, что я хотел бы сделать это с помощью функции С#. Я много пробовал, но никто не выработал.

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

string runDevEnv = @"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE>devenv.com ";
string projectPath = @"C:\Users\Administrator\Documents\Visual Studio 2013\Projects\CodedUITestProject2\CodedUITestProject2\CodedUITestProject2.csproj" ;
string makeString = "\"";
string slashc = "/c ";
string makebuild = " /build";
string compileProject = slashc + runDevEnv + makeString + projectPath + makeString + makebuild;
System.Diagnostics.Process.Start("CMD.exe", compileProject);
  • 0
    Пожалуйста, расскажите нам, что вы пытались и что случилось, а не просто «Я много чего пробовал». Кроме того, есть ли причина, по которой вы хотите запустить Visual Studio, а не просто msbuild ? Возможно, вы хотите, чтобы класс Process запустил cmd.exe .
  • 0
    Проект, который я пытаюсь скомпилировать, является проектом Windows Phone CodedUI. и что я мог прочитать, только devenv может скомпилировать его. Я попытался вручную запустить msbuild и vstest.console.exe и не смог скомпилировать проект. Только devenv успешно скомпилировал проект.
Показать ещё 9 комментариев
Теги:
batch-file
build
command-prompt
devenv

1 ответ

2
Лучший ответ

Вероятно, проще создать пакетный файл для вызова devenv (если вам действительно нужно), но в остальном я подозреваю, что это просто вопрос о том, как вы цитируете, и что у вас есть > на вашем пути к devenv.exe. Пытаться:

string devEnv = @"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe";
string projectPath = @"C:\Users\Administrator\Documents\Visual Studio 2013\Projects\CodedUITestProject2\CodedUITestProject2\CodedUITestProject2.csproj" ;
string compileProject = string.Format("/c \"{0}\" \"{1}\" /build",
    devEnv, projectPath);
Process.Start("CMD.exe", compileProject);

(Как отмечено в комментариях, вы можете захотеть использовать devenv.com вместо devenv.exe, чтобы предотвратить запуск самой Visual Studio. Если вы можете использовать msbuild вместо этого, это будет явно лучше - я знаю, что это не работая для вас немедленно, но стоит исследовать, почему вместо отказа от нее.)

  • 1
    Я пытался создать командный файл, проблема в том, что VS IDE открывается при запуске команды devenv из командного файла, и мне нужно, чтобы он молчал
  • 0
    @Limbo: попробуйте тогда использовать devenv.com вместо devenv.exe - я полагаю, для этого он и devenv.exe .
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню