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


NETSDK1005 és NETSDK1047: Az eszközfájlból hiányzik a cél

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

Amikor a .NET SDK hibát okoz NETSDK1005 vagy NETSDK1047, a projekt eszközfájlja hiányzik az egyik célkeret adataiból. A NuGet egy project.assets.json nevű fájlt ír az obj mappába, és a .NET SDK arra használja, hogy információkat kapjon a csomagokról a fordítóba való továbbításhoz. A .NET 5-ben a NuGet hozzáadott egy új, elnevezett TargetFrameworkAliasmezőt, így az MSBuild vagy a NuGet korábbi verziói létrehoznak egy objektumfájlt az új mező nélkül. További információ: NETSDK1005 hiba.

Íme néhány olyan művelet, amely megoldhatja a hibát:

  • Győződjön meg arról, hogy az MSBuild 16.8-es vagy újabb verzióját, valamint a NuGet 5.8-at vagy újabb verzióját használja, és az eszközök frissítése után állítsa vissza a projektet (futtassa dotnet restore). Ha a NuGet 5.8-es vagy újabb verzióját használja, a Visual Studio 2019 16.8-os vagy újabb verzióját, az MSBuild 16.8-es vagy újabb verzióját, valamint a .NET 5 SDK-t vagy újabb verziót kell használnia.

  • Ha a 16.8-es verzió telepítése vagy a projekt célkeretének módosítása után először a Visual Studio 2019-ben egy projekt létrehozásakor jelenik meg a hiba, akkor készítsen egy második projektet.

  • A projekt létrehozása előtt törölje az obj mappát.

  • Győződjön meg arról, hogy a hiányzó célérték szerepel a TargetFrameworks projekt tulajdonságában.

  • Ha Docker-rendszerképet készít, győződjön meg arról, hogy a .dockerignore fájl figyelmen kívül hagyja a tároló - és obj-könyvtárakat . További információ: GitHub pull request dotnet/docs #29530.

  • Ha Egy Maui-alkalmazást próbál futtatni egy Android-szimulátoron, nyissa meg az Android SDK-kat és -eszközöket, és adja hozzá a hiányzó platformokat a Platformok és az Eszközök lap alatt.