Felsöka målfel för .NET Framework
Gäller för: Visual Studio
I det här avsnittet beskrivs 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 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 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 riktar in sig på 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 att rikta in sig på .NET Core 3.1 och programmet har referenser, resurser eller inställningar som förlitar sig på .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 filen app.config 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, bitmappar eller inställningar, till exempel data anslutningssträng, kan du också lösa felet genom att ta bort alla objekt på sidan Inställningar i Projektdesignern och sedan läsa de nödvändiga inställningarna.
Du riktar om ett projekt till en annan version av .NET och referenser matchas inte
Om du åter riktar ett projekt mot en annan version av .NET kanske dina referenser inte löser sig 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 löser problemet 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 för 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" />
Kommentar
När du har stängt och öppnat projektet igen bör du även återskapa det för att säkerställa att alla referenser matchar korrekt.