Jak uruchamiać zdarzenia post-build w programie Visual Studio tylko dla debug build
Jak mogę ograniczyć moje zdarzenia post-build do uruchamiania tylko dla jednego typu build? Używam zdarzeń do kopiowania bibliotek DLL do lokalnego wirtualnego katalogu IIS, ale nie chcę, aby działo się to na serwerze kompilacji w trybie release.
9 answers
Zdarzenia Pre - I Post-Build działają jako skrypt wsadowy. Możesz wykonać instrukcję warunkową na $(ConfigurationName)
.
Na przykład
if $(ConfigurationName) == Debug xcopy something somewhere
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-26 08:39:58
Nie musisz używać goto. polecenie shell IF może być używane z okrągłymi nawiasami:
if $(ConfigurationName) == Debug (
copy "$(TargetDir)myapp.dll" "c:\delivery\bin" /y
copy "$(TargetDir)myapp.dll.config" "c:\delivery\bin" /y
) ELSE (
echo "why, Microsoft, why".
)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 19:21:14
Dodaj swoje Zdarzenie budowania post jak normalne. Następnie zapisz projekt, otwórz go w notatniku (lub ulubionym edytorze) i Dodaj warunek do grupy Właściwości PostBuildEvent. Oto przykład:
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<PostBuildEvent>start gpedit</PostBuildEvent>
</PropertyGroup>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-20 01:34:16
Alternatywnie (ponieważ zdarzenia są umieszczane w pliku wsadowym i następnie wywoływane), użyj następującego polecenia. (w polu build event, Nie w pliku wsadowym):
if $(ConfigurationName) == Debug goto :debug
:release
signtool.exe ....
xcopy ...
goto :exit
:debug
' debug items in here
:exit
W ten sposób możesz mieć zdarzenia dla dowolnej konfiguracji i nadal zarządzać nimi za pomocą makr, zamiast przekazywać je do pliku wsadowego i pamiętaj, że %1 to $(OutputPath) itd:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-24 09:56:39
Visual studio 2015: poprawna składnia to (trzymaj ją w jednej linii):
if "$(ConfigurationName)"=="My Debug CFG"
( xcopy "$(TargetDir)test1.tmp" "$(TargetDir)test.xml" /y)
else
( xcopy "$(TargetDir)test2.tmp" "$(TargetDir)test.xml" /y)
Brak błędu 255 tutaj.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-08 07:14:03
Możesz przekazać nazwę konfiguracji do skryptu post-build i sprawdzić ją tam, czy powinna działać.
Podaj nazwę konfiguracji za pomocą $(ConfigurationName)
Sprawdzanie jest oparte na tym, jak implementujesz krok po kompilacji - będzie to argument wiersza poleceń
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-29 18:44:05
To działa dla mnie w Visual Studio 2015.
Kopiuję wszystkie pliki dll z folderu znajdującego się w folderze lib na tym samym poziomie co mój folder solution do targetdirectory budowanego projektu.
Używając względnej ścieżki z katalogu mojego projektu i przechodząc w górę struktury folderów dwa kroki z..\..\lib
MySolutionFolder
....MyProject
Lib
if $(ConfigurationName) == Debug (
xcopy /Y "$(ProjectDir)..\..\lib\*.dll" "$(TargetDir)"
) ELSE (echo "Not Debug mode, no file copy from lib")
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-29 14:59:13
Jak każde ustawienie projektu, buildevents może być skonfigurowane dla każdej konfiguracji, po prostu wybierz konfigurację, którą chcesz zmienić w rozwijanym oknie dialogowym strony właściwości i edytuj krok budowania post
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-29 18:48:43
W VS 2012 musisz użyć (myślę, że w VS 2010 też)
if $(Configuration) == Debug xcopy
$(ConfigurationName) było wymienione jako makro, ale nie zostało przypisane.
Porównaj: http://msdn.microsoft.com/en-us/library/c02as0cs (v=vs.110). aspx
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-14 07:46:20