Форум программистов, компьютерный форум, киберфорум
Visual Studio
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
1

Событие post-build

20.01.2020, 11:49. Показов 3373. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне нужно, чтобы после сборки проекта ABCNET запускался автоматически батник PrepareVersion. Я попытался описать следующим образом события post-build:
cd "Actions"
PrepareVersion.bat
Но, это не сработало, выдалась ошибка 9009:
The command "cd "Actions"
PrepareVersion.bat" exited with code 9009. ABCNET
Миниатюры
Событие post-build  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2020, 11:49
Ответы с готовыми решениями:

Post-build скрипт на копирование
Добрый вечер, студия выводит: при copy A B - "скопировано файлов: путь путь" при xcopy /Q A B...

'Post-Build event failed' в Remoting
Помогите разобратьса с Remoting.Я написал кое что а мне выдаетса вот такая ошибка: 'Post-Build...

Win 8.1 build 9600 распознаётся как Windows 8 build 9200
Проблема с версией. Win 8.1 build 9600 распознаётся как Windows 8 build 9200 . Проверил ток что ....

Почему в Eclipse неактивно действие Build Project и Build All?
Доброго времени суток) У меня вопрос такой: почему в Eclipse неактивно действие Build Project и...

6
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
20.01.2020, 14:45 2
Bash
1
"$(ProjectDir)Actions\PrepareVersion.bat"
Кавычки не упустите, чтобы среда на пробелы в пути не сагрилась.

А если будет дальше бросать ошибки, то уже смотрите на реализацию батника.
1
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
20.01.2020, 15:10  [ТС] 3
kolorotur, код батника:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
@echo off
title PrepareVersion
setlocal
 
Rem = = = = = = = = = = = = = = = = = = = = = = = = = = =
 
set "dllPath=..\bin\Release\ABCNET.dll"
set "xmlPath=..\bin\Release\ABCNET.xml"
set "examplesFolder=..\Examples\"
set "preparedReleaseFolder=..\Prepared release\"
 
Rem = = = = = = = = = = = = = = = = = = = = = = = = = = =
 
set "error=File not found: "
 
echo Files copying...
 
if not exist %dllPath% (
    echo %error%%dllPath%
    pause
    exit 1
) else copy %dllPath% %examplesFolder%
 
if not exist %xmlPath% (
    echo %error%%xmlPath%
    pause
    exit 1
) else copy %xmlPath% %examplesFolder%
 
echo Files have been successfully copied.
 
Rem = = = = = = = = = = = = = = = = = = = = = = = = = = =
 
 
 
endlocal
Я написал то, что Вы посоветовали, но при компиляции выдалась ошибка с кодом 1. Причём, непонимания добавляет тот факт, что при простом использовании напрямую через cmd.exe всё работало в батнике нормально.

Что должно быть: после компиляции файлы .dll и .xml копируются в отдельную папку к примерам на C# и других языках.
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
20.01.2020, 17:46 4
Лучший ответ Сообщение было отмечено Соколиный глаз как решение

Решение

Соколиный глаз, у вас в батнике относительные пути — проверьте какая директория установлена текущей во время его выполнения:
Bash
1
echo ============================================== %~dp0 ==============================================
Знаки равенства добавил чтобы вывод заметнее был.

Во время построения смотрите в окно Output — там должна напечататься рабочая директория, относительно которой будут определяться ваши пути в батнике.

Ну и безотносительно к проблеме, но я бы избегал прописывания пути к компилируемой сборке прямиком в батнике — пути имеют свойство меняться, а наличие прописанных в коде строк — забываться.
Лучше передавайте пути к файлам как аргументы батнику.

В бате:
Windows Batch file
1
2
3
4
set "dllPath=%~1ABCNET.dll"
set "xmlPath=%~1ABCNET.xml"
set "examplesFolder=%~2Examples\"
set "preparedReleaseFolder=%~2Prepared release\"
В постбилде:
Windows Batch file
1
"$(ProjectDir)Actions\PrepareVersion.bat" "$(TargetDir)" "$(SolutionDir)"
Заодно избавитесь от относительных путей.

И в командах не забывайте закавычивать переменные, чтобы не нарваться на коварные пробелы:
Windows Batch file
1
else copy "%dllPath%" "%examplesFolder%"
1
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
20.01.2020, 18:30  [ТС] 5
Добавлено через 9 минут
C:\Users\Windows\Documents\SharpDevelop Projects\NETMouse - .NET release\NETMouse - .NET release\bin\Release\ABCNET.dll
Путь верен. Проверил в Проводнике. Но, выдаёт ошибку, что файл не найден:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
@echo off
title PrepareVersion
setlocal
 
Rem = = = = = = = = = = = = = = = = = = = = = = = = = = =
 
echo ============================================== %~dp0 ==============================================
 
set "dllPath=%~1ABCNET.dll"
set "xmlPath=%~1ABCNET.xml"
set "examplesFolder=%~2Examples\"
set "preparedReleaseFolder=%~2Prepared release\"
 
Rem = = = = = = = = = = = = = = = = = = = = = = = = = = =
 
set "error=File not found: "
 
echo Files copying...
 
if not exist %dllPath% (
    echo %error%%dllPath%
    pause
    exit 1
) else copy "%dllPath%" "%examplesFolder%"
 
if not exist %xmlPath% (
    echo %error%%xmlPath%
    pause
    exit 1
) else copy "%xmlPath%" "%examplesFolder%"
 
echo Files have been successfully copied.
 
Rem = = = = = = = = = = = = = = = = = = = = = = = = = = =
 
 
 
endlocal
Files copying...
1> Системе не удается найти указанный путь.
1> File not found: C:\Users\Windows\Documents\SharpDevelop Projects\NETMouse - .NET release\NETMouse - .NET release\bin\Release\ABCNET.dll
1> Для продолжения нажмите любую клавишу . . .
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
20.01.2020, 19:37 6
Лучший ответ Сообщение было отмечено Соколиный глаз как решение

Решение

Цитата Сообщение от Соколиный глаз Посмотреть сообщение
Windows Batch file
1
if not exist %dllPath%
Цитата Сообщение от Соколиный глаз Посмотреть сообщение
Windows Batch file
1
if not exist %xmlPath%
А где же розы кавычки?

Цитата Сообщение от Соколиный глаз Посмотреть сообщение
Системе не удается найти указанный путь.
А %examplesFolder% существует на диске?
copy, насколько мне известно, недостающие каталоги не создает.
Windows Batch file
1
2
3
4
else (
mkdir "%examplesFolder%"
copy "%dllPath%" "%examplesFolder%"
)
1
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
20.01.2020, 20:24  [ТС] 7
kolorotur, да, она существует. Проблема была в кавычках...
0
20.01.2020, 20:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2020, 20:24
Помогаю со студенческими работами здесь

Webpack "npm run build" выдает ошибку: "npm ERR! missing script: build"
Помогите пожалуйста! npm run build выдает ошибку npm ERR! missing script: build npm ERR! A...

MaskedTextBox1 событие по системным часам - что должно вызывать это событие?
Добрый день! Помогите разобраться с ситуацией пожалуйста. На форме висит элемент maskedTextBox с...

Событие выбора строки при выборе мышкой событие обрабатывается два раза
Есть JTable, обрабатываю событие выбора строки след. образом: ListSelectionModel r =...

Как обработать событие click и событие нажития стрелки?
Допустим есть кнопка влево-вправо для горизонтального листания товаров. Как нужно кроссбраузерно...

Принудительно вызвать событие, если произошло другое событие
Сразу оговорюсь, это тема про события, а НЕ про Windows Forms, да бы ни кто не переносил тему. В...

В каждом из n независимых испытаний событие А происходит с вероятностью p. Найти вероятность того, что событие А произошло
В каждом из n независимых испытаний событие А происходит с вероятностью p. Найти вероятность того,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru