Megosztás a következőn keresztül:


dotnet-visszaállítás

Ez a cikk a következőre vonatkozik: ✔️ .NET Core 3.1 SDK és újabb verziók

Név

dotnet restore – Visszaállítja egy projekt függőségeit és eszközeit.

Szinopszis

dotnet restore [<ROOT>] [--configfile <FILE>] [--disable-build-servers]
    [--disable-parallel]
    [-f|--force] [--force-evaluate] [--ignore-failed-sources]
    [--interactive] [--lock-file-path <LOCK_FILE_PATH>] [--locked-mode]
    [--no-cache] [--no-dependencies] [--packages <PACKAGES_DIRECTORY>]
    [-r|--runtime <RUNTIME_IDENTIFIER>] [-s|--source <SOURCE>]
    [--tl:[auto|on|off]] [--use-current-runtime, --ucr [true|false]]
    [--use-lock-file] [-v|--verbosity <LEVEL>]

dotnet restore -h|--help

Leírás

A .NET-projektek általában olyan Külső kódtárakra hivatkoznak NuGet-csomagokban, amelyek további funkciókat biztosítanak. Ezekre a külső függőségekre a projektfájl (.csproj vagy .vbproj) hivatkozik. A parancs futtatásakor a dotnet restore .NET CLI a NuGet használatával keresi meg ezeket a függőségeket, és szükség esetén letölti őket. Emellett biztosítja, hogy a projekt által igényelt függőségek kompatibilisek legyenek egymással, és ne legyenek ütközések közöttük. A parancs végrehajtása után a projekt által igényelt összes függőség elérhető egy helyi gyorsítótárban, és a .NET CLI használható az alkalmazás létrehozásához és futtatásához.

A legtöbb esetben nem kell explicit módon használnia a dotnet restore parancsot, mivel ha NuGet-visszaállításra van szükség, a következő parancsok implicit módon futtatják:

Előfordulhat, hogy kényelmetlen lenne az implicit NuGet-visszaállítás futtatása ezekkel a parancsokkal. Egyes automatizált rendszereknek, például a buildrendszereknek például explicit módon kell meghívniuk dotnet restore , hogy szabályozhassák a visszaállítást, hogy szabályozhassák a hálózathasználatot. Az implicit NuGet-visszaállítás megakadályozása érdekében használhatja a --no-restore jelölőt ezen parancsok bármelyikével.

Feljegyzés

A visszaállítási műveletek során aláírt csomagellenőrzéshez szükség van egy főtanúsítvány-tárolóra, amely érvényes a kódaláírásra és az időbélyegzésre is. További információ: NuGet aláírt csomag ellenőrzése.

Hírcsatornák megadása

A függőségek visszaállításához a NuGetnek szüksége van azokra a hírcsatornákra, ahol a csomagok találhatók. A hírcsatornák általában a nuget.config konfigurációs fájlon keresztül érhetők el . A .NET SDK telepítésekor a rendszer egy alapértelmezett konfigurációs fájlt ad meg. További hírcsatornák megadásához tegye az alábbiak egyikét:

Ezzel a beállítással -s felülbírálhatja a nuget.config hírcsatornákat.

A hitelesített hírcsatornák használatáról további információt a csomagok hitelesített hírcsatornákból való felhasználásával kapcsolatban talál.

Globális csomagok mappa

Függőségek esetén megadhatja, hogy a visszaállított csomagok hol legyenek elhelyezve a visszaállítási művelet során az --packages argumentum használatával. Ha nincs megadva, a rendszer az alapértelmezett NuGet-csomaggyorsítótárat használja, amely a .nuget/packages felhasználó kezdőkönyvtárában található az összes operációs rendszeren. Például a /home/user1 linuxos vagy a C:\Users\user1 windowsos.

Projektspecifikus eszközhasználat

Projektspecifikus eszközök esetében először visszaállítja azt a csomagot, dotnet restore amelyben az eszköz be van csomagolva, majd a projektfájlban megadott módon visszaállítja az eszköz függőségeit.

nuget.config különbségek

A parancs viselkedésére dotnet restore hatással vannak a nuget.config fájl beállításai, ha vannak ilyenek. A nuget.config beállításával globalPackagesFolder például a visszaállított NuGet-csomagok a megadott mappába lesznek helyezve. Ez egy másik lehetőség a --packages parancson található beállítás megadására dotnet restore . További információkért lásd a nuget.config referenciát.

Három konkrét beállítás dotnet restore figyelmen kívül hagyható:

  • bindingRedirects

    A kötésátirányítások nem működnek az elemekkel, <PackageReference> és a .NET csak a NuGet-csomagok elemeit támogatja <PackageReference> .

  • megoldás

    Ez a beállítás a Visual Studio-specifikus, és nem vonatkozik a .NET-re. A .NET nem használ fájlokat packages.config , hanem nuGet-csomagok elemeit használja <PackageReference> .

  • trustedSigners

    A platformfüggetlen csomagok aláírás-ellenőrzésének támogatása a .NET 5.0.100 SDK-ban lett hozzáadva.

Számítási feladatjegyzék letöltése

A parancs futtatásakor a rendszer elindítja a számítási feladatok hirdetési jegyzékeinek aszinkron háttérletöltését. Ha a letöltés a parancs befejeződésekor is fut, a letöltés leáll. További információ: Hirdetési jegyzékek.

Argumentumok

  • ROOT

    A visszaállítandó projektfájl nem kötelező elérési útja.

Beállítások

  • -a|--arch <ARCHITECTURE>

    A célarchitektúra megadása. Ez egy rövidített szintaxis a futtatókörnyezet azonosítójának (RID) beállításához, ahol a megadott érték az alapértelmezett RID-vel van kombinálva. Egy gépen például win-x64 a RID beállítása a következőre win-x86van adva--arch x86: . Ha ezt a lehetőséget használja, ne használja a -r|--runtime beállítást. Elérhető a .NET 6 7. előzetes verziója óta.

  • --configfile <FILE>

    A használni kívánt NuGet-konfigurációs fájl (nuget.config). Ha meg van adva, a rendszer csak a fájlból származó beállításokat használja. Ha nincs megadva, a rendszer az aktuális könyvtárból származó konfigurációs fájlok hierarchiáját használja. További információ: Common NuGet Configurations.

  • --disable-build-servers

    Kényszeríti a parancsot az állandó buildkiszolgálók figyelmen kívül hagyására. Ez a beállítás konzisztens módot biztosít a buildek gyorsítótárazásának letiltására, ami az alapoktól kényszeríti a buildeket. A gyorsítótárakra nem támaszkodó buildek akkor hasznosak, ha a gyorsítótárak valamilyen okból sérültek vagy helytelenek. A .NET 7 SDK óta érhető el.

  • --disable-parallel

    Letiltja több projekt párhuzamos visszaállítását.

  • --force

    Minden függőséget feloldani kell, még akkor is, ha az utolsó visszaállítás sikeres volt. A jelölő megadása megegyezik a project.assets.json fájl törlésével.

  • --force-evaluate

    Az összes függőség újraértékelésére kényszeríti a visszaállítást, még akkor is, ha már létezik zárolási fájl.

  • -?|-h|--help

    A parancs használatának leírását nyomtatja ki.

  • --ignore-failed-sources

    Csak akkor figyelmeztessen a sikertelen forrásokra, ha vannak olyan csomagok, amelyek megfelelnek a verziókövetelménynek.

  • --interactive

    Lehetővé teszi, hogy a parancs leálljon, és várja meg a felhasználói bemenetet vagy műveletet. Például a hitelesítés befejezéséhez.

  • --lock-file-path <LOCK_FILE_PATH>

    Kimeneti hely, ahol a projektzárfájl meg van írva. Alapértelmezés szerint ez PROJECT_ROOT \packages.lock.json.

  • --locked-mode

    Ne engedélyezze a projekt zárolási fájljának frissítését.

  • --no-cache

    Meghatározza, hogy ne gyorsítótárazza a HTTP-kéréseket.

  • --no-dependencies

    Projekt projektközi (P2P) hivatkozásokkal történő visszaállításakor a gyökérprojektet állítja vissza, nem pedig a hivatkozásokat.

  • --packages <PACKAGES_DIRECTORY>

    A visszaállított csomagok könyvtárát adja meg.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    A csomag-visszaállítás futtatókörnyezetét adja meg. Ez a .csproj fájl címkéjében <RuntimeIdentifiers> kifejezetten nem szereplő futtatókörnyezetek csomagjainak visszaállítására szolgál. A futtatókörnyezet-azonosítók (RID-k) listáját a RID-katalógusban találja.

  • -s|--source <SOURCE>

    Megadja a visszaállítási művelet során használni kívánt NuGet-csomagforrás URI-ját. Ez a beállítás felülbírálja a nuget.config fájlokban megadott összes forrást. A beállítás többszöri megadásával több forrás is megadható.

  • --tl:[auto|on|off]

    Megadja, hogy a terminálnaplózót kell-e használni a buildkimenethez. Az alapértelmezett érték az auto, amely először ellenőrzi a környezetet a terminálnaplózás engedélyezése előtt. A környezet ellenőrzi, hogy a terminál képes-e modern kimeneti funkciókat használni, és nem használ átirányított szabványos kimenetet az új naplózó engedélyezése előtt. on kihagyja a környezetellenőrzést, és engedélyezi a terminálnaplózást. off kihagyja a környezetellenőrzést, és az alapértelmezett konzolnaplózót használja.

    A terminálnaplózó megjeleníti a visszaállítási fázist, majd a buildelési fázist. Az egyes fázisok során az éppen épülő projektek a terminál alján jelennek meg. Az épület összes projektje az MSBuild-célt és a célra fordított időt is kimeneteli. Ebben az információban további információt talál a buildről. Amikor egy projekt befejeződött, egyetlen "befejezett build" szakasz lesz megírva, amely rögzíti a következőt:

    • Az épített projekt neve.
    • A cél-keretrendszer (ha több-célzott).
    • A build állapota.
    • A build elsődleges kimenete (amely hivatkozásra van hivatkozva).
    • A projekthez létrehozott diagnosztikák.

    Ez a beállítás a .NET 8-tól érhető el.

  • --use-current-runtime, --ucr [true|false]

    Beállítja a RuntimeIdentifier platformot hordozhatóra RuntimeIdentifier az egyik gépe alapján. Ez implicit módon történik olyan tulajdonságok esetében, amelyekhez RuntimeIdentifierpéldául SelfContained, PublishAot, , PublishSelfContainedPublishSingleFileés PublishReadyToRun. Ha a tulajdonság értéke hamis, az implicit feloldás már nem fog bekövetkezni.

  • --use-lock-file

    Lehetővé teszi a projektzárolási fájl létrehozásának és visszaállításának használatát.

  • -v|--verbosity <LEVEL>

    A parancs részletességi szintjét állítja be. Az engedélyezett értékek a következőkq[uiet]: , m[inimal], n[ormal]d[etailed]és diag[nostic]. Az alapértelmezett érték minimal. További információ: LoggerVerbosity.

Példák

  • A projekt függőségeinek és eszközeinek visszaállítása az aktuális könyvtárban:

    dotnet restore
    
  • A projekt függőségeinek és eszközeinek visszaállítása az app1 adott útvonalon található:

    dotnet restore ./projects/app1/app1.csproj
    
  • Állítsa vissza a projekt függőségeit és eszközeit az aktuális könyvtárban a forrásként megadott fájl elérési útján:

    dotnet restore -s c:\packages\mypackages
    
  • Állítsa vissza a projekt függőségeit és eszközeit az aktuális könyvtárban a forrásként megadott két fájlútvonal használatával:

    dotnet restore -s c:\packages\mypackages -s c:\packages\myotherpackages
    
  • A projekt függőségeinek és eszközeinek visszaállítása az aktuális könyvtárban, részletes kimenettel:

    dotnet restore --verbosity detailed
    

Biztonsági rések naplózása

A .NET 8-tól dotnet restore kezdve a NuGet biztonsági naplózást is tartalmaz. Ez a naplózás jelentést készít a biztonsági résekről az érintett csomag nevével, a biztonsági rés súlyosságával és a tanácsadásra mutató hivatkozással további részletekért.

A biztonsági naplózás letiltásához állítsa be az <NuGetAudit> MSBuild tulajdonságot false a projektfájlba.

Az ismert biztonságirés-adatkészlet lekéréséhez győződjön meg arról, hogy a NuGet.org központi beállításjegyzéket a csomagforrások egyikeként definiálta:

<packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>

Az MSBuild tulajdonság beállításával konfigurálhatja azt a szintet, amelyen a <NuGetAuditLevel> naplózás sikertelen lesz. A lehetséges értékek a következőklow: , moderatehighés critical. Ha például csak mérsékelt, magas és kritikus fontosságú tanácsokat szeretne látni, beállíthatja a tulajdonságot a következőre moderate: .

A .NET 9-től kezdve a NuGet alapértelmezés szerint a közvetlen és a tranzitív csomaghivatkozásokat is naplóz. A .NET 8-ban csak a közvetlen csomaghivatkozások naplózása történik. A módot úgy módosíthatja, hogy az <NuGetAuditMode> MSBuild tulajdonságot a következőre vagy értékre direct allállítja.

További információ: Csomagfüggőségek naplózása biztonsági rések esetén.