Udostępnij za pośrednictwem


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

  1. W Solution Explorer, wybierz projekt, dla którego chcesz określić zdarzenia kompilacji.

  2. Na Projekt menu, kliknij przycisk Właściwości.

  3. Wybierz Tworzenie zdarzenia kartę.

  4. 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.

  5. 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.

  6. 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

  1. Tworzy aplikację konsoli dla polecenia.Z pliku menu, wskaż Nowy, a następnie kliknij przycisk Projekt.

  2. W Nowy projekt okno dialogowe rozwiń Visual C#, kliknij przycisk Windows, a następnie kliknij przycisk Aplikacji konsoli szablonu.Nazwa projektu ChangeOSVersionCS.

  3. W plik Program.cs, należy dodać następujący wiersz do drugiej using sprawozdań na początku pliku:

    using System.Xml;
    
  4. 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.

  5. Skompiluj projekt.Na budować menu, kliknij przycisk Roztwór budować.

  6. 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

  1. Tworzenie aplikacji systemu Windows dla projektu, które zostaną opublikowane.Z pliku menu, wskaż Nowy, a następnie kliknij przycisk Projekt.

  2. W Nowy projekt okno dialogowe rozwiń Visual C#, kliknij Windows, a następnie kliknij przycisk Aplikacji Windows Forms szablonu.Nazwa projektu CSWinApp.

  3. Z projektem wybranym w Solution Explorer, z Projekt menu, kliknij przycisk Właściwości.

  4. W programie Project Designer zlokalizować Publikuj stronie i ustaw lokalizacji publikowania do C:\TEMP\.

  5. 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" />
    
  6. W projektancie projektu, kliknij przycisk Tworzenie zdarzenia tab, a następnie kliknij przycisk Edytuj Post-build przycisk.

  7. 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.

  8. 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

Inne zasoby

Kompilowanie aplikacji w Visual Studio