Ну, после долгих поисков и проб и ошибок я решил это. Я не уверен, что это лучший способ, но он работает.
Вот сценарий: У меня есть приложение, которое я хотел бы развернуть с помощью проекта установки Visual Studio. В дополнение к моим файлам приложений, я хотел бы создать подкаталог в целевом каталоге, который содержит пакетный (.bat) файл. Я хотел бы, чтобы этот файл запускался в конце процесса установки.
Вот что вы делаете:
- Создать проект установки и настройки, как обычно, в том числе подкаталог, в котором вы будете размещать свой командный файл (вы можете просто поместить его в папке приложения непосредственно, если вы не хотите его в подкаталоге).
- В представлении «Файловая система» (щелкните правой кнопкой мыши по проекту в обозревателе решений -> Вид-> Файловая система) добавьте командный файл, который вы хотите выполнить и cmd.exe (C: \ Windows \ System32 \ cmd.exe)
- Открыть представление «Пользовательские действия» (щелкните правой кнопкой мыши по проекту в обозревателе решений -> Вид -> Пользовательские действия)
- Щелкните правой кнопкой мыши на «Commit» и выберите «Добавить пользовательское действие»,
- Перейдите и выберите cmd.exe.
- Откройте панель свойств для вновь созданного пользовательского действия.
- Удалить/Зафиксировать свойство Аргументы.
- Введите:
/c "[TARGETDIR]subdirectoryname\batchfile.bat"
в свойстве Аргументов, где subdirectoryname следует заменить на имя вашего подкаталога (если поставить пакетный файл в поддиректории, как я сделал ... если вы не сделали, то значение должно быть /c "[TARGETDIR]batchfile.bat"
) и batchfile.bat должно быть именем файла вашего командного файла.
Всё. Теперь пакетный файл будет выполнен после завершения остальной части процесса установки.
Вот пример для наглядности:
Мой командный файл: blah.bat
Мой подкаталог: MYDIR
Значение аргументов для моего пользовательского действия таргетинга CMD. ехе бы тогда
/c "[TARGETDIR]mydir\blah.bat"
надежда, что Хель ps кто-то!
Вы проверили cmd.exe с xxxx.bat как параметр? – 2010-03-10 06:39:57
№ Как это сделать? – mammadalius