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 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:
- Hozzon létre egy saját nuget.config fájlt a projektkönyvtárban. További információkért tekintse meg a jelen cikk későbbi részében található gyakori NuGet-konfigurációkat és nuget.config különbségeket .
- Használjon
dotnet nugetolyan parancsokat, mint adotnet nuget add source.
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ó:
-
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. -
Ez a beállítás Visual Studio specifikus, és nem vonatkozik .NET. .NET nem
packages.configfájlt használ, hanem<PackageReference>elemeket használ a NuGet-csomagokhoz. -
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.
PROJECTegy 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.SOLUTIONegy 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.FILEa 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-x64a 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|--runtimebeá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
dotnetparancsban, amely egy másikdotnetparancs kimenetétől függ, például a használatdotnet build --no-restoreésdotnet 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-serversKé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-parallelLetiltja több projekt párhuzamos visszaállítását.
--forceMinden 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-evaluateAz ö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-sourcesCsak akkor figyelmeztessen a sikertelen forrásokra, ha vannak olyan csomagok, amelyek megfelelnek a verziókövetelménynek.
-
--interactiveLehető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-modeNe engedélyezze a projekt zárolási fájljának frissítését.
--no-dependenciesProjekt 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-cacheTiltsa le a HTTP-gyorsítótárazást a csomagokhoz.
--osA 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-x64a 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-runtimeHasználja az aktuális futtatókörnyezetet cél futtatókörnyezetként.
--use-lock-fileLehető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.onkihagyja a környezetellenőrzést, és engedélyezi a terminálnaplózást.offkihagyja 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ők
q[uiet]: ,m[inimal],n[ormal]d[etailed]ésdiag[nostic]. Az alapértelmezett értékminimal. További információ: LoggerVerbosity. -
-?|-h|--helpA 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 restoreA projekt függőségeinek és eszközeinek visszaállítása az
app1adott ú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\myotherpackagesA 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.