Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zdarzenia kompilacji w Visual Basic mogą służyć do uruchamiania skryptów, makr lub innych akcji w ramach procesu kompilacji. Zdarzenia przed kompilacją są wykonywane przed kompilacją. Zdarzenia po kompilacji występują po kompilacji.
Jak określić zdarzenia przed kompilacją i po kompilacji
Aby wyświetlić lub zmienić zdarzenia kompilacji dla programu Visual Basic .NET Core lub .NET 5 lub nowszego projektu, kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję Właściwości (lub naciśnij Alt+Enter), a następnie przejdź do pozycji Kompiluj zdarzenia>. Wprowadź żądany wiersz polecenia. Katalog roboczy jest katalogem wyjściowym.
W przypadku projektów programu .NET Framework wykonaj następujące kroki:
Po wybraniu projektu w eksploratorze rozwiązań w menu Project kliknij pozycję Właściwości.
Kliknij kartę Kompiluj.
Kliknij przycisk Zdarzenia kompilacji, aby otworzyć okno dialogowe Zdarzenia kompilacji.
Wprowadź argumenty wiersza polecenia dla akcji przed kompilacją lub po kompilacji, a następnie kliknij przycisk OK.
Zdarzenia kompilacji są określone w oknie dialogowym zdarzenia kompilacji, dostępnym na stronie Kompilacja w Projektancie projektów .
Jak określić zdarzenia przed kompilacją i po kompilacji
Aby określić zdarzenie kompilacji
Po wybraniu projektu w eksploratorze rozwiązań w menu Project kliknij pozycję Właściwości.
Kliknij kartę Kompiluj.
Kliknij przycisk Zdarzenia kompilacji, aby otworzyć okno dialogowe Zdarzenia kompilacji.
Wprowadź argumenty wiersza polecenia dla akcji przed kompilacją lub po kompilacji, a następnie kliknij przycisk OK.
Notatka
Dodaj instrukcję call przed wszystkimi poleceniami po kompilacji, które uruchamiają .bat pliki. Na przykład call C:\MyFile.bat lub call C:\MyFile.bat call C:\MyFile2.bat.
Notatka
Jeśli zdarzenie przed kompilacją lub po kompilacji nie zakończy się pomyślnie, możesz zakończyć kompilację, kończąc akcję zdarzenia z kodem innym niż zero (0), co oznacza pomyślną akcję.
W skryptach można odwoływać się do "makr" (w rzeczywistości nazw właściwości MSBuild). Aby odwołać się do właściwości, użyj składni $(PropertyName), która jest zastępowana wartością właściwości podczas wykonywania skryptu zdarzenia. Aby uzyskać listę często używanych wartości, zobacz MSBuild common properties (Typowe właściwości programu MSBuild). Mogą istnieć inne właściwości, zdefiniowane w pliku projektu, w zaimportowanych plikach do projektu, w zmiennych środowiskowych lub przekazane w wierszu poleceń za pomocą przełącznika MSBuild podczas kompilacji wiersza poleceń.
Przykład: Jak zmienić informacje o manifeście przy użyciu zdarzenia po kompilacji
Poniższa procedura pokazuje, jak ustawić minimalną wersję systemu operacyjnego w manifeście aplikacji przy użyciu .exe polecenia wywoływanego ze zdarzenia po kompilacji ( .exe.manifest pliku w katalogu projektu). Minimalna wersja systemu operacyjnego to czteroczęściowy numer, taki jak 4.10.0.0. W tym celu polecenie spowoduje zmianę sekcji <dependentOS> manifestu:
<dependentOS>
<osVersionInfo>
<os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
</osVersionInfo>
</dependentOS>
Aby utworzyć polecenie .exe w celu zmiany manifestu aplikacji
Utwórz aplikację konsolową do polecenia. W menu Plik kliknij pozycję Nowy, a następnie kliknij pozycję Projekt.
W oknie dialogowym New Project w węźle Visual Basic wybierz pozycję Windows, a następnie szablon aplikacji konsoli . Nadaj projektowi nazwę
ChangeOSVersionVB.W Module1.vbdodaj następujący wiersz do innych instrukcji
Importsna górze pliku:Imports System.XmlDodaj następujący kod w
Sub Main:Sub Main() Dim applicationManifestPath As String applicationManifestPath = My.Application.CommandLineArgs(0) Console.WriteLine("Application Manifest Path: " & applicationManifestPath.ToString) 'Get version name Dim osVersion As Version If My.Application.CommandLineArgs.Count >= 2 Then osVersion = New Version(My.Application.CommandLineArgs(1).ToString) Else Throw New ArgumentException("OS Version not specified.") End If Console.WriteLine("Desired OS Version: " & osVersion.ToString()) Dim document As XmlDocument Dim namespaceManager As XmlNamespaceManager namespaceManager = New XmlNamespaceManager(New NameTable()) With namespaceManager .AddNamespace("asmv1", "urn:schemas-microsoft-com:asm.v1") .AddNamespace("asmv2", "urn:schemas-microsoft-com:asm.v2") End With document = New XmlDocument() document.Load(applicationManifestPath) Dim baseXPath As String baseXPath = "/asmv1:assembly/asmv2:dependency/asmv2:dependentOS/asmv2:osVersionInfo/asmv2:os" 'Change minimum required OS Version. Dim node As XmlNode 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) End SubPolecenie przyjmuje dwa argumenty. Pierwszym argumentem jest ścieżka do manifestu aplikacji (czyli folder, w którym proces kompilacji tworzy manifest, zazwyczaj <ProjectName>.publish). Drugim argumentem jest nowa wersja systemu operacyjnego.
W menu Kompilacja kliknij pozycję Kompiluj rozwiązanie.
Skopiuj plik .exe do katalogu, takiego jak C:\TEMP\ChangeOSVersionVB.exe.
Następnie wywołaj to polecenie w zdarzeniu po kompilacji, aby zmienić manifest aplikacji.
Aby wywołać zdarzenie po kompilacji w celu zmiany manifestu aplikacji
Utwórz aplikację systemu Windows dla projektu do opublikowania. W menu Plik kliknij pozycję Nowy, a następnie kliknij pozycję Projekt.
W oknie dialogowym New Project w węźle Visual Basic wybierz pozycję Windows Desktop, a następnie szablon Windows Forms App. Nadaj projektowi nazwę
VBWinApp.Po wybraniu projektu w Eksploratorze rozwiązań , w menu Projekt kliknij Właściwości.
W Project Designer przejdź do strony publikowanie i ustaw lokalizację publikowania, aby C:\TEMP.
Opublikuj projekt, klikając Opublikuj teraz.
Plik manifestu zostanie skompilowany i umieszczony w C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifest. Aby wyświetlić manifest, kliknij prawym przyciskiem myszy plik i kliknij Otwórz za pomocą, a następnie kliknij Wybierz program z listy, a następnie kliknij Notatnik.
Wyszukaj w pliku element
<osVersionInfo>. Na przykład wersja może być:<os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />W Project Designer przejdź do karty Compile i kliknij przycisk Build Events (Zdarzenia kompilacji), aby otworzyć okno dialogowe Build Events (Zdarzenia kompilacji).
W wiersza polecenia zdarzenia po kompilacji wprowadź następujące polecenie:
C:\TEMP\ChangeOSVersionVB.exe "$(TargetPath).manifest" 5.1.2600.0Podczas kompilowania projektu to polecenie zmienia minimalną wersję systemu operacyjnego w manifeście aplikacji na 5.1.2600.0.
Makro
$(TargetPath)wyraża pełną ścieżkę do tworzonego pliku wykonywalnego.$(TargetPath).manifestW związku z tym określa manifest aplikacji utworzony w katalogu bin. Publikowanie kopiuje ten manifest do ustawionej wcześniej lokalizacji publikowania.Ponownie opublikuj projekt. Przejdź do strony Publikowanie i kliknij Opublikuj teraz.
Ponownie wyświetl manifest. Aby wyświetlić manifest, przejdź do katalogu publikowania, kliknij prawym przyciskiem myszy plik i kliknij Otwórz za pomocą, a następnie Wybierz program z listy, a następnie kliknij Notatnik.
Wersja powinna teraz wyglądać następująco:
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />