Felsöka .NET Framework målfel
Gäller för: Visual Studio
Det här avsnittet beskriver MSBuild-fel som kan uppstå på grund av referensproblem och hur du kan lösa dessa fel.
Referera till ett projekt eller en sammansättning som riktar sig mot en annan version av .NET
Du kan skapa program som refererar till projekt eller sammansättningar som är avsedda för olika versioner av .NET. Du kan till exempel skapa ett program som riktar sig mot .NET 6 men refererar till en sammansättning som riktar sig mot .NET Core 3.1. Du kan dock inte ange en referens i ett projekt som riktar sig mot en tidigare version av .NET till ett projekt eller en sammansättning som riktar sig mot .NET 6. Här är ett exempel på felet som du kan se i det här fallet:
error NU1201: Project ClassLibrary-NET6 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Project ClassLibrary-NET6 supports: net6.0 (.NETCoreApp,Version=v6.0)
2>Done building project "ClassLibrary-NET31.csproj" -- FAILED.
Lös felet genom att se till att programmet har en .NET-version som är kompatibel med den version som är mål för de projekt eller sammansättningar som programmet refererar till.
Rikta om ett projekt till en annan version av .NET
Om du ändrar målversionen av .NET för ditt program ändrar Visual Studio några av referenserna, men du kan behöva uppdatera vissa referenser manuellt. Ett av de tidigare nämnda felen kan till exempel inträffa om du ändrar ett program till mål för .NET Core 3.1 och programmet har referenser, resurser eller inställningar som är beroende av .NET 6.
Uppdatera referenser i app.config
Följ dessa steg för att kringgå programinställningar i .NET Framework program:
- Öppna Solution Explorer.
- Välj Visa alla filer och redigera sedan denapp.config filen i XML-redigeraren i Visual Studio.
- Ändra versionen i inställningarna så att den matchar lämplig version av .NET. Du kan till exempel ändra versionsinställningen från 4.0.0.0 till 2.0.0.0.
På samma sätt följer du dessa steg för ett program som har lagt till resurser:
- Öppna Solution Explorer.
- Välj Visa alla filer.
- Expandera Mitt projekt (Visual Basic) eller Egenskaper (C#) och redigera sedan filen Resources.resx i XML-redigeraren i Visual Studio.
- Ändra versionsinställningen från 4.0.0.0 till 2.0.0.0.
Uppdatera resurser
Om ditt program har resurser som ikoner eller bitmappar eller inställningar, till exempel dataanslutningssträngar, kan du också lösa felet genom att ta bort alla objekt på sidan Inställningar i Project Designer och sedan läsa de nödvändiga inställningarna.
Du omdirigerar ett projekt till en annan version av .NET och referenser matchas inte
Om du omdirigerar ett projekt till en annan version av .NET kanske dina referenser inte kan matchas korrekt i vissa fall. Explicita fullständigt kvalificerade referenser till sammansättningar orsakar ofta det här problemet, men du kan lösa det genom att ta bort de referenser som inte matchar och sedan lägga till dem i projektet igen. Alternativt kan du redigera projektfilen för att ersätta referenserna. Ta först bort referenser i följande formulär:
<Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
Ersätt dem sedan med det enkla formuläret:
<Reference Include="System.ServiceModel" />
Obs!
När du har stängt och öppnat projektet igen bör du även återskapa det så att alla referenser matchas korrekt.