проблема попытки конкретно выполнить пакет, не так ли? Это просто устраняет причину.

аюсь выполнить командный файл во время события перед сборкой. У меня есть новый проект и я добавилfoo.bat к этому. Файл содержит следующую строку:

echo bar

Когда я устанавливаю командную строку события перед сборкой вfoo.batЯ получаю следующую ошибку:

Команда "foo.bat" вышла с кодом 9009.

Когда я устанавливаю командную строку события перед сборкой впозвоните foo.batЯ получаю следующую ошибку:

Команда "call foo.bat" завершена с кодом 1.

Все, что я прочитал, относящееся к этим кодам, обычно указывает на то, что существует проблема с содержимым пакетного файла (в данном случае это маловероятно) или что система не может найти пакетный файл.

Пакетный файл отлично работает из командной строки. Вещи, которые я уже пробовал: создать файл с использованием различных инструментов, различных кодировок, поместить в файл выход 0, различные действия по сборке файла и скопировать файл в выходной каталог. Все без удачи.

Чего мне не хватает? Это должно быть что-то простое.

Обновить: Да, это было просто - длина пути была слишком длинной. Смотрите ответ ниже для деталей.

Спасибо!

 the_drow17 янв. 2011 г., 16:54
Вы пытались предоставить всем доступ для чтения / записи?

Ответы на вопрос(3)

Решение Вопроса

моей проблемой была длина пути к пакетному файлу. Поскольку это было доказательством концепции, я позволил VS создать ее в расположении по умолчанию:

C: \ Documents and Settings \ UserXXX \ Мои документы \ Visual Studio 2010 \ Projects \ SolutionXXX \ ProjectXXX \ foo.bat

Как только я переместил решение в место с более коротким путем, оно работало нормально. = Р

Спасибо за предложения!

и я считаю, что картинка стоит тысячи слов, так что здесь полная настройка на одном скриншоте.

 Robert Petz22 окт. 2013 г., 23:27
компакт-диск к каталогу пакетного файла это то, что исправляет это здесь для меня ... когда я непосредственно вызываю 'c: \ mydirectory \ mybatch.bat', это не работает, но cd в 'c: \ mydirectory' и затем вызов mybatch.bat работает ... спасибо!

foo.bat где-то вPATH, Попробуйте указать полный путь к вашему пакетному файлу, напримерC:\Path\to\foo.bat.

Когда проект создается, текущим каталогом является.vcproj файл. Путь к команде должен быть указан относительно этого каталога, если он не находится вPATH.

Еще одна вещь, чтобы попытаться диагностировать проблему, это указатьcmd в команде события перед сборкой явно так:

cmd /c C:\Path\to\foo.bat

или даже

C:\windows\system32\cmd.exe /c C:\Path\to\foo.bat
 HodlDwon13 июн. 2013 г., 04:39
извините, это на самом деле не сработало, я разместил ответ ниже,cmd просто не показывал ошибку ... но он также не запускал командный файл
 HodlDwon13 июн. 2013 г., 03:55
Сначала я попробовал$(SolutionDir)Scripts\PostBuild.bat первоначально, но затем это дало код ошибки 9009. Когда я использовалcmd $(SolutionDir)Scripts\PostBuild.bat это сработало для меня, спасибо! Мой тест файл bat содержал одну строкуexit 0 другого пробела нет.

Ваш ответ на вопрос