Как построить .csproj из командной строки с журналом, записанным в указанное место? - PullRequest
13 голосов
/ 03 марта 2011

В то время как сборка «без журнала», кажется, работает гладко с чем-то вроде

"c: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ ide \ VCSExpress" Project1.csproj / build

следующие ошибки:

"c: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ ide \ VCSExpress" Project1.csproj / build / Log = log.txt

, показывающий окно с таким текстом:

Отсутствует аргумент переключателя.Требуется имя конфигурации для ключа / build.

Использование: vcsexpress [solutionfile |файл проекта |anyfile.ext] [переключатели]

Первым аргументом для vcsexpress обычно является файл решения или файл проекта.Вы также можете использовать любой другой файл в качестве первого аргумента, если вы хотите, чтобы файл автоматически открывался в редакторе.При вводе файла проекта среда IDE ищет файл .sln с тем же базовым именем, что и файл проекта, в родительском каталоге для файла проекта.Если такого файла .sln не существует, то среда IDE ищет один файл .sln, который ссылается на проект.Если такого единственного файла .sln не существует, то в среде IDE создается несохраненное решение с именем файла .sln по умолчанию, базовое имя которого совпадает с именем файла проекта.

builds командной строки: vcsexpress solutionfile.sln / build[solutionconfig] [/ project projectnameorfile [/ projectconfig name]] Доступные параметры командной строки:

/ Журнал Записывает действия IDE в указанный файл для устранения неполадок./ ResetSettings Восстанавливает настройки IDE по умолчанию, при необходимости сбрасывает в указанный файл VSSettings./ SafeMode Запускает среду IDE в безопасном режиме, загружая минимальные окна.

Переключатели для конкретного продукта:

Чтобы подключить отладчик из командной строки, используйте: VsJITDebugger.exe -p

[Я использую Visual Studio 2008 Express]

Итак, вопросы:

  • Есть ли способ убедиться, что файл журналагде-то записано?

  • Или переключатель /Log должен использоваться только при работе IDE в режиме графического интерфейса?Если так, есть ли обходные пути?

Ответы [ 3 ]

27 голосов
/ 03 марта 2011

Под капотом Visual Studio использует msbuild для всей магии сборки.Насколько я знаю, это относится и к редакциям Express.

Если у вас его еще нет, MSBuild является частью .NET SDK.

При вызове MSBuild естьПреимущество прямой сборки - вызов VCSExpress приведет к дополнительным затратам.

Вот командная строка MSBuild, которую я использовал:

msbuild.exe <solution> 
    /t:rebuild 
    /verbosity:quiet 
    /logger:FileLogger,Microsoft.Build.Engine;logfile=<filePath>

Должен работать так же с <project> вместо <solution>.

4 голосов
/ 03 марта 2011

Вы должны указать конфигурацию после параметра / build.Кроме того, файл журнала уже должен существовать, он не создается с нуля.Таким образом:

copy con > log.txt
^Z      // Type Ctrl+Z
"c:\Program Files\Microsoft Visual Studio 9.0\Common7\ide\VCSExpress" Project1.csproj /build debug /log log.txt
2 голосов
/ 05 ноября 2011

В появившемся окне со всей информацией .. выдает ошибку:

Отсутствует аргумент переключателя.Требуется имя конфигурации для ключа / build.

И затем он дает вам кучу информации, в том числе:

Сборки командной строки: vcsexpress solutionfile.sln /build [ solutionconfig ]

Он просто хочет знать, какой тип конфигурации у вас есть - я думаю, что «Release» или «Debug».Не уверен, что в vcsexpress есть «Configuration Manager» или «Страницы свойств сборки решения» в меню «Сборка» ... но именно здесь вы можете дважды проверить текущие настройки.См. «Конфигурация активного решения» .. Этот человек столкнулся с этим, посмотрите его снимок экрана: Свойство конфигурации задачи MSBuild

...