Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Visual Basic buildeseményei szkriptek, makrók vagy egyéb műveletek futtatására használhatók a fordítási folyamat részeként. Az összeállítás előtti események a fordítás előtt következnek be; összeállítás utáni események a fordítás után következnek be.
A build előtti és utáni események megadása
A Visual Basic .NET Core vagy .NET 5 és újabb projektek buildeseményeinek megtekintéséhez vagy módosításához kattintson a jobb gombbal a projektcsomópontra, majd válassza a Tulajdonságok lehetőséget (vagy nyomja le a Alt+Enterkombinációt), majd lépjen a Fordítás>Eseményekfülre. Adja meg a kívánt parancssort. A munkakönyvtár a kimeneti könyvtár.
.NET-keretrendszer-projektek esetén kövesse az alábbi lépéseket:
Ha a Megoldáskezelőkijelölt egy projektet, kattintson a Project menü Tulajdonságokparancsára.
Kattintson a Kompatibilizálás fülre.
Kattintson az Események összeállítása gombra az Események összeállítása párbeszédpanel megnyitásához.
Adja meg az összeállítás előtti vagy utáni művelet parancssori argumentumait, majd kattintson OKgombra.
A Build események a Build Events párbeszédpanelen vannak megadva, amely a Fordítás lapján érhető el a Project Designer-ben.
A build előtti és utáni események megadása
Egy buildesemény megadása
Ha a Megoldáskezelőkijelölt egy projektet, kattintson a Project menü Tulajdonságokparancsára.
Kattintson a Kompatibilizálás fülre.
Kattintson az Események összeállítása gombra az Események összeállítása párbeszédpanel megnyitásához.
Adja meg az összeállítás előtti vagy utáni művelet parancssori argumentumait, majd kattintson OKgombra.
Jegyzet
Adjon hozzá egy utasítást call
a fájlokat futtató .bat
összes összeállítás utáni parancs elé. Például call C:\MyFile.bat
vagy call C:\MyFile.bat call C:\MyFile2.bat
.
Jegyzet
Ha az előre elkészített vagy a buildelés utáni esemény nem fejeződik be sikeresen, a buildet úgy állíthatja le, hogy az eseményművelet a nullától (0) eltérő kóddal lép ki, ami sikeres műveletet jelez.
A szkriptekben hivatkozhat "makrókra" (valójában MSBuild tulajdonságnevekre). Tulajdonságra való hivatkozáshoz használja a szintaxist $(PropertyName)
, amelyet az eseményszkript végrehajtásakor a tulajdonságértékkel helyettesít. A gyakran használt értékek listájáért lásd az MSBuild common properties című dokumentumot. A projektfájlban, bármely importált fájlban, a környezeti változókban vagy a parancssori build során a parancssorban az MSBuild kapcsolóval -p
megadott parancssori buildek során más tulajdonságok is meghatározhatók.
Példa: Jegyzékadatok módosítása a buildelés utáni eseményekkel
Az alábbi eljárás bemutatja, hogyan állíthatja be az operációs rendszer minimális verzióját az alkalmazásjegyzékben egy .exe
buildelés utáni eseményből (a .exe.manifest
projektkönyvtárban található fájlból) hívott paranccsal. Az operációs rendszer minimális verziója egy négyrészes szám, például 4.10.0.0. Ehhez a parancs módosítja a jegyzék <dependentOS>
szakaszát:
<dependentOS>
<osVersionInfo>
<os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
</osVersionInfo>
</dependentOS>
.exe parancs létrehozása az alkalmazásjegyzék módosításához
Hozzon létre egy konzolalkalmazást a parancshoz. A Fájl menüben kattintson az Újelemre, majd a Projectelemre.
Az Új projekt párbeszédpanel Visual Basic csomópontján válassza Windows, majd a Konzolalkalmazás sablont. Nevezze el a projekt
ChangeOSVersionVB
.A Module1.vbadja hozzá a következő sort a fájl tetején található többi
Imports
utasításhoz:Imports System.Xml
Adja hozzá a következő kódot a
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 Sub
A parancs két argumentumot használ. Az első argumentum az alkalmazásjegyzék elérési útja (vagyis az a mappa, amelyben a buildelési folyamat létrehozza a jegyzékfájlt, általában <ProjectName>.publish). A második argumentum az operációs rendszer új verziója.
A Build menüben kattintson Megoldás létrehozásaelemre.
Másolja a .exe fájlt egy könyvtárba, például C:\TEMP\ChangeOSVersionVB.exe.
Ezután hívja meg ezt a parancsot egy build utáni eseményben az alkalmazásjegyzék módosításához.
Build utáni esemény meghívása az alkalmazásjegyzék módosításához
Hozzon létre egy Windows-alkalmazást a közzéteendő projekthez. A Fájl menüben kattintson az Újelemre, majd a Projectelemre.
Az Új projekt párbeszédpanel Visual Basic csomópontjában válassza Windows Desktop, majd a Windows Forms Alkalmazás sablont. Nevezze el a projekt
VBWinApp
.Ha a projekt Megoldáskezelőbenvan kiválasztva, kattintson a Projekt menü Tulajdonságokparancsára.
Az Project Designeroldalon lépjen a Közzététel oldalra, és állítsa a közzétételi helyet a következőre: C:\TEMP.
A projekt közzétételéhez kattintson a Közzétételgombra.
A jegyzékfájl C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifestlesz létrehozva és elhelyezve. A jegyzékfájl megtekintéséhez kattintson a jobb gombbal a fájlra, aztán kattintson a Megnyitás amenüponttal lehetőségre, majd válassza a Program kiválasztása a listábólopciót, és végül kattintson a Jegyzettömbprogramra.
Keresse meg a fájlban a
<osVersionInfo>
elemet. A verzió például a következő lehet:<os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
A Project Designerlapon lépjen a Összeállítás lapra, és kattintson a Felépítési események gombra a Felépítési események párbeszédpanel megnyitásához.
A Build utáni esemény parancssor mezőbe írja be a következő parancsot:
C:\TEMP\ChangeOSVersionVB.exe "$(TargetPath).manifest" 5.1.2600.0
A projekt létrehozásakor ez a parancs az alkalmazásjegyzékben szereplő minimális operációsrendszer-verziót 5.1.2600.0-ra módosítja.
A
$(TargetPath)
makró a létrehozandó végrehajtható fájl teljes elérési útját fejezi ki.$(TargetPath).manifest
Ezért a bin könyvtárban létrehozott alkalmazásjegyzéket adja meg. A közzététel ezt a jegyzékfájlt a korábban beállított közzétételi helyre másolja.Tegye közzé ismét a projektet. Lépjen a Közzététel oldalra, és kattintson most a Közzétételgombra.
Tekintse meg újra a jegyzékfájlt. A jegyzék megtekintéséhez nyissa meg a közzétételi könyvtárat, kattintson a jobb gombbal a fájlra, és kattintson a Megnyitás parancsra, majd Válassza ki a programot egy listából, majd kattintson Jegyzettömbparancsra.
A verziónak most a következőt kell olvasnia:
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />