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.
Ez a cikk áttekintést nyújt a build testreszabási lehetőségeiről, és útmutatást nyújt arról, hogy mikor érdemes használni az egyes megközelítéseket. A lehetőségek összetettségi sorrendben jelennek meg, a parancssori argumentumoktól a rendszerszintű testreszabásokig.
Előfeltételek
- Az MSBuild projektfájl-struktúrájának ismerete (
.csproj.vbprojvagy hasonló) - Az MSBuild tulajdonságainak és céljainak alapszintű ismerete
Áttekintés
A standard buildelési folyamatot használó MSBuild-projektek (a Microsoft.Common.props és a Microsoft.Common.targets importálása) számos bővíthetőségi kampóval rendelkeznek, amelyekkel testre szabhatja a buildelési folyamatot.
Számos testre szabható buildelési műveletet tulajdonságok vezérelnek. Fontos tudni, hogyan és hol állíthat be tulajdonságértéket a kívánt hatás elérése érdekében. A tulajdonságokat beállíthatja a parancssorban (és a válaszfájlokban), a speciális fájlokban, például a Directory.Build.props fájlban, az importált fájlokban vagy a projektfájlban. Fontos tudni, hogy hol használják, állítják be vagy módosítják a tulajdonságot, valamint az importált fájlok sorrendjét, beleértve az olyan SDK-kból származó implicit importálásokat is, mint a .NET SDK.
A tulajdonságok listáját az MSBuild gyakori tulajdonságai című témakörben találja.
A testreszabási beállítások megismerés
Az alábbi testreszabási lehetőségek a növekvő összetettség és a hatás hatóköre érdekében jelennek meg. Javasoljuk, hogy használja a legkevésbé összetett testreszabási lehetőséget, amely a célnak megfelel, a lista tetejétől kezdve.
| Testreszabási lehetőség | Description |
|---|---|
| Argumentumok hozzáadása az MSBuild parancssorhoz | Olyan globális tulajdonságokat állíthat be, amelyek hatással vannak az összes függő projekt fő projektjének felépítésére és buildjeire. |
| Testreszabja a buildet egyetlen projektre | Adjon hozzá tulajdonságokat a .props vagy .targets fájlokhoz a build beállítások testreszabásához. |
| A létrehozási folyamat során létrehozott fájlok kezelése | Győződjön meg arról, hogy a létrehozott fájlok megfelelően szerepelnek a buildben. |
| Egy vagy több projekt buildjének testreszabása | Adjon hozzá tulajdonságokat a Directory.Build.props szolgáltatáshoz, vagy adjon hozzá tulajdonságokat és célokat a Directory.Build.targets fájlhoz , hogy testre szabja a buildet a mappában lévő összes projekthez. Ez a technika hasznos az SDK által beállított vagy használt tulajdonságok beállításához, valamint a testreszabások hatókörének meghatározásához, hogy azok hatással legyenek egy mappában vagy almappában lévő összes projektre. |
| A helyi build testreszabása | Módosítsa a buildet csak a helyi gépen anélkül, hogy hatással van a megosztott forrásfájlokra. |
| A megoldás buildjének testreszabása | Testre szabhatja a buildelési viselkedést a megoldás szintjén, az egyes projekt buildek előtt és után. |
| Az összes .NET-build testreszabása | A build testreszabása rendszerszintű hatókörrel a .NET-buildekhez. |
| C++ buildek testreszabása | Testre szabhatja a C++ buildet, amely egy projektre, megoldásra, mappára vagy az MSBuild egy rendszeren való telepítése által szabályozott összes buildre terjed ki. |
Argumentumok hozzáadása a projekt parancssori MSBuild hívásaihoz
A parancssorban beállíthatja a globális tulajdonságokat. A globális tulajdonságok az összes projekt buildre hatással vannak, beleértve a függőségeket is. Ne feledje, hogy egy projekt létrehozása automatikusan elindít egy lehetséges buildet az összes projektfüggőséghez. Az MSBuild normál viselkedése az elavult függő projektek létrehozása. Ezek a függő projekt buildek az eredeti projekttel megegyező globális tulajdonságbeállításokkal indulnak el a parancssorból.
A forráskönyvtárban vagy felette lévő Directory.Build.rsp fájl a projekt parancssori buildjeire lesz alkalmazva. További részletekért tekintse meg az MSBuild válaszfájljait.
Válasszon a tulajdonságok hozzáadása között: .props fájl vagy .targets fájl
Az MSBuild importálási sorrendtől függ, és a tulajdonság (vagy UsingTask célkitűzés) utolsó definíciója lesz alkalmazva.
Explicit importálás használatakor bármikor importálhat egy .props vagy .targets fájlból. Íme a széles körben használt konvenció:
.propsfájlokat az importálási sorrend korai szakaszában importálja..targetsa fájlok a buildelési sorrendben késve lesznek importálva.
Ezt a konvenciót importálással <Project Sdk="SdkName"> kényszerítik ki (vagyis az Sdk.props importálása az első, a fájl teljes tartalma előtt, majd az Sdk.targets a fájl teljes tartalma után az utolsó).
Amikor eldönti, hogy hol helyezze el a tulajdonságokat, használja az alábbi általános irányelveket:
Sok tulajdonság esetében nem számít, hogy hol vannak definiálva, mert nincsenek felülírva, és csak végrehajtáskor olvashatók.
Az egyes projektekben testre szabható viselkedéshez állítsa be az alapértelmezett értékeket a fájlokban
.props.Kerülje a függő tulajdonságok beállítását a fájlokban
.propsegy esetleg testre szabott tulajdonság értékének beolvasásával, mert a testreszabás csak akkor történik meg, ha az MSBuild be nem olvassa a felhasználó projektjét.Függő tulajdonságokat állíthat be a fájlokban
.targets, mert egyéni projektek testreszabását is átveszik.Ha a tulajdonságok módosítására van szüksége, végezze ezt el egy
.targetsfájlban, miután az összes felhasználó-projekt testreszabása végrehajtásra került. Legyen óvatos, ha származtatott tulajdonságokat használ; a származtatott tulajdonságokat is felül kell bírálni.Elemek belefoglalása fájlokba
.props(tulajdonságra kondicionált). Minden tulajdonságot minden elem előtt figyelembe kell venni, így a felhasználó-projekt tulajdonság testreszabásai fel lesznek véve, és ha importált elemeket a fájlokban.props, akkor a felhasználó projektje lehetőséget biztosít az importálás által behozott elemekreRemovevagyUpdateelemekre.Célértékek definiálása fájlokban
.targets. Ha azonban a.targetsfájlt egy SDK importálja, ne feledje, hogy ez a forgatókönyv megnehezíti a cél felülbírálását, mert a felhasználó projektjének nincs helye alapértelmezés szerint felülbírálni.Ha lehetséges, inkább testre szabja a tulajdonságokat a kiértékelési időpontban, mint a célon belüli tulajdonságok módosítása. Ez az útmutató megkönnyíti a projekt betöltését és annak megértését, hogy mit csinál.