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


Eszközjegyzékek a gyökérmappában

A .NET már nem keres helyi eszközjegyzékfájlokat a Windows gyökérmappájában, kivéve, ha felül van bírálva a DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT környezeti változón keresztül. Ez a módosítás nem érinti a Linuxot vagy a macOS-t.

Előző viselkedés

Korábban a .NET SDK helyi eszközei ellenőrizték a gyökérmappát minden platformon, amikor eszközjegyzéket keresnek. A keresés az aktuális könyvtártól a könyvtárfától a gyökérmappáig folytatódott, amíg nem talált jegyzékfájlt. A .NET minden szinten megkeresi a dotnet-tools.json nevű eszközjegyzéket egy .config almappában. Windows rendszeren, ha nem található más eszközjegyzék, az SDK végül keresett egy eszközjegyzéket a C:\.config\dotnet-tools.json.

Új viselkedés

A .NET alapértelmezés szerint nem keres az aktuális könyvtárfa gyökérmappájában Windows rendszeren, kivéve, ha felül van bírálva a DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT környezeti változón keresztül. DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT alapértelmezés szerint be false van állítva.

Bevezetett verzió

  • .NET SDK 7.0.3xx
  • .NET SDK 7.0.1xx
  • .NET SDK 6.0.4xx
  • .NET SDK 6.0.3xx
  • .NET SDK 6.0.1xx
  • .NET SDK 3.1.4xx

A kompatibilitástörő változás típusa

Ez a változás viselkedésbeli változás.

A változás oka

Ez a módosítás egy biztonsági probléma megoldása érdekében történt. Mivel minden felhasználó létrehozhat fájlokat és mappákat a Windows C:\ könyvtárában, az alacsony jogosultságú támadók eltéríthetik a C:\.config\dotnet-tools.json fájlt. Amikor egy rendszergazda eszközparancsot dotnet futtat, az eszköz rosszindulatú konfigurációs információkat olvashat a fájlból, és rosszindulatú eszközöket tölthet le és futtathat.

Az új viselkedés letiltásához állítsa a környezeti változót a DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT következőre true : vagy 1.

Lásd még