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:
- 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 nuget
olyan parancsokat, mint adotnet nuget add source
.
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ó:
-
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>
. -
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>
. -
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őrewin-x86
van 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óraRuntimeIdentifier
az egyik gépe alapján. Ez implicit módon történik olyan tulajdonságok esetében, amelyekhezRuntimeIdentifier
példáulSelfContained
,PublishAot
, ,PublishSelfContained
PublishSingleFile
ésPublishReadyToRun
. 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ők
q[uiet]
: ,m[inimal]
,n[ormal]
d[etailed]
ésdiag[nostic]
. Az alapértelmezett értékminimal
. 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
: , moderate
high
é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.