Jak: określić zdarzenia kompilacji (C#)
Zdarzenia kompilacji umożliwia określenie polecenia, które są uruchamiane przed rozpoczęciem budowy lub po zakończeniu kompilacji.Zdarzenia kompilacji są wykonywane tylko wtedy, gdy jest to kompilacja pomyślnie osiągnie tych punktów w procesie budowania.
Podczas tworzenia projektu pre-build zdarzenia są dodawane do pliku o nazwie PreBuildEvent.bat i post-build zdarzenia są dodawane do pliku o nazwie PostBuildEvent.bat.Chcąc zapewnić sprawdzanie błędów, należy dodać swoje własne polecenia Sprawdzanie błędów do kroków kompilacji.
[!UWAGA]
Na danym komputerze mogą być używane inne nazwy lub lokalizacje pewnych elementów interfejsu użytkownika programu Visual Studio, które są używane w poniższych instrukcjach. Używana wersja programu Visual Studio oraz jej ustawienia określają te elementy. Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.
Jak określić Pre-Build i Post-Build zdarzeń
Aby określić zdarzenia kompilacji
W Solution Explorer, wybierz projekt, dla którego chcesz określić zdarzenia kompilacji.
Na Projekt menu, kliknij przycisk Właściwości.
Wybierz Tworzenie zdarzenia kartę.
W Pre-build z wiersza polecenia zdarzenia określ składnia zdarzenia kompilacji.
[!UWAGA]
Zdarzenia Pre-Build nie są uruchamiane, jeśli projekt jest aktualny i kompilacja nie jest wyzwalany.
W Post-build z wiersza polecenia zdarzenia określ składnia zdarzenia kompilacji.
[!UWAGA]
Dodaj call oświadczenie przed post-build wszystkie polecenia, które uruchamiają pliki bat.For example, call C:\MyFile.bat or call C:\MyFile.bat call C:\MyFile2.bat.
W uruchomienia zdarzenia post-build określ, na jakich warunkach do uruchomienia zdarzenia post-build.
[!UWAGA]
Dodawanie długich składni lub wybierz dowolne zbudować makra z Zdarzenie/występującymi-build zdarzeń wiersza polecenia okno dialogowe Pre-Build, kliknij przycisk wielokropka (…), aby wyświetlić pole edycji.
Składnia zdarzenia kompilacji może zawierać dowolne polecenie, które jest ważne w wierszu polecenia lub w pliku bat.Nazwa pliku wsadowego powinien być poprzedzony call do zapewnienia, że wszystkie kolejne polecenia są wykonywane.
Uwaga , jeżeli zdarzenie pre-build lub post-build nie zostanie zakończona pomyślnie, można zakończyć budowanie przez Twojego działania zdarzenie exit z kodu innym niż zero (0), który wskazuje pomyślnych działań.
Przykład: Jak zmienić manifestu informacje za pomocą zdarzenia Post-Build
Poniższa procedura pokazuje, jak ustawić minimalny system operacyjny w wersji w manifeście aplikacji za pomocą polecenia .exe, która jest wywoływana z poziomu zdarzenia post-build (. plik exe.manifest w katalogu projektu).Wersja minimalny system operacyjny jest czteroczęściowym liczby, takie jak 4.10.0.0.Aby to zrobić, polecenie będzie zmienić <dependentOS> sekcji manifestu:
<dependentOS>
<osVersionInfo>
<os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
</osVersionInfo>
</dependentOS>
Aby utworzyć polecenie .exe, aby zmienić manifest aplikacji
Tworzy aplikację konsoli dla polecenia.Z pliku menu, wskaż Nowy, a następnie kliknij przycisk Projekt.
W Nowy projekt okno dialogowe rozwiń Visual C#, kliknij przycisk Windows, a następnie kliknij przycisk Aplikacji konsoli szablonu.Nazwa projektu ChangeOSVersionCS.
W plik Program.cs, należy dodać następujący wiersz do drugiej using sprawozdań na początku pliku:
using System.Xml;
W ChangeOSVersionCS obszaru nazw, zastąpić Program Implementacja klasy następującym kodem:
class Program { /// <summary> /// This function will set the minimum operating system version for a ClickOnce application. /// </summary> /// <param name="args"> /// Command Line Arguments: /// 0 - Path to application manifest (.exe.manifest). /// 1 - Version of OS ///</param> static void Main(string[] args) { string applicationManifestPath = args[0]; Console.WriteLine("Application Manifest Path: " + applicationManifestPath); // Get version name. Version osVersion = null; if (args.Length >=2 ){ osVersion = new Version(args[1]); }else{ throw new ArgumentException("OS Version not specified."); } Console.WriteLine("Desired OS Version: " + osVersion.ToString()); XmlDocument document; XmlNamespaceManager namespaceManager; namespaceManager = new XmlNamespaceManager(new NameTable()); namespaceManager.AddNamespace("asmv1", "urn:schemas-microsoft-com:asm.v1"); namespaceManager.AddNamespace("asmv2", "urn:schemas-microsoft-com:asm.v2"); document = new XmlDocument(); document.Load(applicationManifestPath); string baseXPath; baseXPath = "/asmv1:assembly/asmv2:dependency/asmv2:dependentOS/asmv2:osVersionInfo/asmv2:os"; // Change minimum required operating system version. XmlNode node; node = document.SelectSingleNode(baseXPath, namespaceManager); node.Attributes["majorVersion"].Value = osVersion.Major.ToString(); node.Attributes["minorVersion"].Value = osVersion.Minor.ToString(); node.Attributes["buildNumber"].Value = osVersion.Build.ToString(); node.Attributes["servicePackMajor"].Value = osVersion.Revision.ToString(); document.Save(applicationManifestPath); } }
Polecenie ma dwa argumenty: ścieżka manifest aplikacji (czyli folder proces budowania tworzy w manifeście, zazwyczaj Projectname.publish) i nowej wersji systemu operacyjnego.
Skompiluj projekt.Na budować menu, kliknij przycisk Roztwór budować.
Skopiuj plik .exe do katalogu, takich jak C:\TEMP\ChangeOSVersionVB.exe.
Następnie wywoływać tego polecenia w przypadku post-build do modyfikowania manifest aplikacji.
Aby wywołać post-build zdarzenie, aby zmodyfikować manifest aplikacji
Tworzenie aplikacji systemu Windows dla projektu, które zostaną opublikowane.Z pliku menu, wskaż Nowy, a następnie kliknij przycisk Projekt.
W Nowy projekt okno dialogowe rozwiń Visual C#, kliknij Windows, a następnie kliknij przycisk Aplikacji Windows Forms szablonu.Nazwa projektu CSWinApp.
Z projektem wybranym w Solution Explorer, z Projekt menu, kliknij przycisk Właściwości.
W programie Project Designer zlokalizować Publikuj stronie i ustaw lokalizacji publikowania do C:\TEMP\.
Publikowanie projektu, klikając Teraz publikować.
Zostanie zbudowany i umieścić w pliku manifestu C:\TEMP\CSWinApp_1_0_0_0\CSWinApp.exe.manifest.Aby wyświetlić manifestu, kliknij prawym przyciskiem myszy plik, kliknij przycisk Otwórz za pomocą, wybierz opcję Wybierz program z listy, a następnie kliknij przycisk Notatnik.
Wyszukaj w pliku <osVersionInfo> element.Na przykład wersja może być:
<os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
W projektancie projektu, kliknij przycisk Tworzenie zdarzenia tab, a następnie kliknij przycisk Edytuj Post-build przycisk.
W wiersza polecenia zdarzenia Post-build wpisz następujące polecenie:
C:\TEMP\ChangeOSVersionCS.exe "(TargetPath)$ manifest" 5.1.2600.0
Podczas tworzenia projektu to polecenie zmieni wersji minimalny system operacyjny w manifeście aplikacji 5.1.2600.0.
Ponieważ $(TargetPath) makro wyraża pełną ścieżkę do pliku wykonywalnego, który jest tworzony, $(TargetPath)manifest określa manifest aplikacji utworzonych w katalogu bin.Publikowanie skopiuje ten manifest do publikowania lokalizacji, w której zostanie ustawiona wcześniej.
Ponownie opublikować projekt.Przejdź do Publikuj stronę, a następnie kliknij przycisk Teraz publikować.
Ponownie wyświetlić manifestu.Wyświetlić manifestu, otwórz katalog publikowania, kliknij prawym przyciskiem myszy plik, kliknij przycisk Otwórz z, wybierz opcję Wybierz program z listy, a następnie kliknij przycisk Notatnik.
Teraz należy przeczytać wersji:
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
Zobacz też
Zadania
Jak: określić zdarzenia kompilacji (Visual Basic)
Informacje
Strona zdarzenia kompilacji, Project Designer (C#)
Zdarzenie/występującymi-build zdarzeń wiersza polecenia okno dialogowe Pre-Build