dotnet restore

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

Név

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

Szinopszis

dotnet restore [<PROJECT>|<SOLUTION>|<FILE>]
  [-a|--arch <ARCHITECTURE>] [--artifacts-path <ARTIFACTS_DIR>] [--configfile <FILE>]
  [--disable-build-servers] [--disable-parallel] [-f|--force] [--force-evaluate]
  [--ignore-failed-sources] [--interactive] [--lock-file-path <LOCK_FILE_PATH>]
  [--locked-mode] [--no-dependencies] [--no-http-cache]
  [--os <OS>] [--packages <PACKAGES_DIRECTORY>]
  [-r|--runtime <RUNTIME_IDENTIFIER>] [-s|--source <SOURCE>]
  [--tl:[auto|on|off]] [--ucr|--use-current-runtime] [--use-lock-file]
  [-v|--verbosity <LEVEL>]

dotnet restore -h|--help

Leírás

A .NET-projektek általában a NuGet csomagban lévő külső kódtárakra hivatkoznak, amelyek további funkciókat biztosítanak. Ezekre a külső függőségekre a projektfájl (.csproj vagy .vbproj) hivatkozik. A dotnet restore parancs futtatásakor a .NET parancssori felület 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 befejezése után a projekt által igényelt összes függőség elérhető egy helyi gyorsítótárban, és a .NET parancssori felület 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 egy alapértelmezett konfigurációs fájl jön létre. További hírcsatornák megadásához tegye az alábbiak egyikét:

Ezzel a beállítással felülbírálhatja a -s 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 /home/user1 Linuxon vagy C:\Users\user1 a Windows.

Project-specifikus 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 globalPackagesFolderpé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 <PackageReference> elemekkel, és .NET csak a NuGet-csomagok <PackageReference> elemeit támogatják.

  • megoldás

    Ez a beállítás Visual Studio specifikus, és nem vonatkozik .NET. .NET nem packages.config fájlt használ, hanem <PackageReference> elemeket használ a NuGet-csomagokhoz.

  • trustedSigners

    Az 5.0.100 SDK .NET támogatja a platformfüggetlen csomagok aláírásának ellenőrzését.

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

PROJECT | SOLUTION | FILE

A projekt- vagy megoldás- vagy C# (fájlalapú alkalmazás) fájl, amelyen működni szeretne. Ha nincs megadva fájl, az MSBuild az aktuális könyvtárban keres egy projektet vagy megoldást.

  • PROJECT egy C#, F# vagy Visual Basic projektfájl elérési útja és fájlneve, vagy egy C#, F# vagy Visual Basic projektfájlt tartalmazó könyvtár elérési útja.

  • SOLUTION egy megoldásfájl elérési útja és fájlneve (.sln vagy .slnx kiterjesztés), vagy egy megoldásfájlt tartalmazó könyvtár elérési útja.

  • FILE a 10 .NET argumentum. Egy fájlalapú alkalmazás elérési útja és fájlneve. A fájlalapú alkalmazások egyetlen fájlban találhatók, amelyek egy megfelelő projektfájl (.csproj) nélkül vannak létrehozva és futtatva. További információ: Fájlalapú C#-alkalmazások létrehozása.

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 --arch x86van advawin-x86: . Ha ezt a lehetőséget használja, ne használja a -r|--runtime beállítást. .NET 7. előzetes verzió óta érhető el.

  • --artifacts-path <ARTIFACTS_DIR>

    A végrehajtott parancs összes buildkimeneti fájlja a megadott elérési út alatti almappákba kerül, projekt szerint elválasztva. További információ: Artifacts Kimeneti elrendezés. Ezt a lehetőséget és a megadott értéket explicit módon kaszkádoltnak kell lennie minden olyan dotnet parancsban, amely egy másik dotnet parancs kimenetétől függ, például a használat dotnet build --no-restore és dotnet publish --no-builda . .NET 8 SDK óta érhető el.

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

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

  • --no-http-cache

    Tiltsa le a HTTP-gyorsítótárazást a csomagokhoz.

  • --os

    A cél operációs rendszer (OS) 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 --os linuxvan advalinux-x64: .

    Bevezetés .NET SDK 10.0.100-ban

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

  • --ucr|--use-current-runtime

    Használja az aktuális futtatókörnyezetet cél futtatókörnyezetként.

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

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

    Megadja, hogy a terminálnaplózót használni kell-e 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 .NET 8-tól érhető el.

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

  • -?|-h|--help

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

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 8. .NET dotnet restore tartalmazza a NuGet biztonsági naplózását. 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.

A biztonságirés-adatok lekéréséhez a 9. .NET kezdve a packageSources mellett auditSources is használható. Ha nincs megadva naplózási forrás, dotnet restore inkább csomagforrásokat használ. A NuGet minden forrást naplóz, amíg a forrás biztosítja az erőforrástVulnerabilityInfo.

A NuGet.org naplózási forrásként való listázásához adja meg a következőket a nuget.config fájlban:

<configuration>
    <auditSources>
        <clear />
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    </auditSources>
</configuration>

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

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