Jak mogę ograniczyć moje zdarzenia po kompilacji do działania tylko dla jednego typu kompilacji?
Korzystam ze zdarzeń, aby skopiować pliki DLL do lokalnego katalogu wirtualnego IIS, ale nie chcę, aby tak się działo na serwerze kompilacji w trybie wydania.
Do twojej wiadomości, nie musisz używać goto. Polecenia IF powłoki można używać z nawiasami okrągłymi:
źródło
"$(ConfigurationName)"
(zawiadomienie cytaty) jeśli się kod błędu 255$(ConfigurationName)
jest pusty (wiersz polecenia zdarzenia po kompilacji).if "$(Configuration)" == "Debug"
pracował dla mnie. BTW, jeśli chcesz zrobić coś we wszystkich innych konfiguracjach, użyjif NOT "$(Configuration)" == "Debug"
.Dodaj swoje wydarzenie po kompilacji jak zwykle. 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:
źródło
cd "$(ProjectDir)"
rozwinięty docd ""
.<Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="$(ConfigurationName) == Debug"> <Exec Command="your command"/></Target>
. Zmienne makro i prace wszystko jak zwykle.Alternatywnie (od zdarzenia są umieszczane w pliku wsadowym, a następnie nazywa), należy skorzystać z następujących (w oknie zdarzeń budowy, a nie w pliku wsadowym):
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, pamiętaj, że tak
%1
jest$(OutputPath)
itp.źródło
Error 1 The command "C:\MyProject\postbuild.bat" exited with code 99. MyProject
if
i użyćgoto :$(ConfigurationName)
Visual Studio 2015: poprawna składnia to (trzymaj ją w jednym wierszu):
Błąd 255 nie tutaj.
źródło
Począwszy od Visual Studio 2019, nowoczesny
.csproj
format obsługuje dodawanie warunku bezpośrednio doTarget
elementu:Interfejs użytkownika nie zapewnia sposobu skonfigurowania tego, ale wydaje się, że bezpiecznie pozostawia ten
Configuration
atrybut na miejscu, jeśli wprowadzisz zmiany za pomocą interfejsu użytkownika.źródło
Możesz przekazać nazwę konfiguracji do skryptu po kompilacji i sprawdzić go tam, aby sprawdzić, czy powinien zostać uruchomiony.
Przekaż nazwę konfiguracji za pomocą
$(ConfigurationName)
.Sprawdzanie zależy od tego, jak wdrażasz krok po kompilacji - będzie to argument wiersza polecenia.
źródło
Działa to dla mnie w Visual Studio 2015.
Kopiuję wszystkie pliki DLL z folderu znajdującego się w folderze biblioteki na tym samym poziomie co folder rozwiązania do katalogu docelowego budowanego projektu.
Użycie ścieżki względnej z mojego katalogu projektu i przejście do struktury folderów dwa kroki za pomocą .. \ .. \ lib
MySolutionFolder
.... MyProject
Lib
źródło
Jak każde ustawienie projektu, elementy konfiguracyjne można skonfigurować dla każdej konfiguracji. Po prostu wybierz konfigurację, którą chcesz zmienić, z menu rozwijanego okna Strony właściwości i edytuj krok po kompilacji.
źródło
W Visual Studio 2012 musisz użyć (myślę, że także w Visual Studio 2010)
$(ConfigurationName)
został wymieniony jako makro, ale nie został przypisany.Porównaj: makra dla poleceń kompilacji i właściwości
źródło