2017-03-28 15 views
19

Próbuję utworzyć bibliotekę klas, która obejmuje wiele celów zarówno w środowiskach .NET 4.5.1, jak i .NET Standard 1.3. Według the documentation, byłbym w stanie to zrobić:Wykonywanie błędów podczas kierowania na wiele w pliku csproj

<PropertyGroup> 
    <TargetFrameworks>net451;netstandard1.3</TargetFrameworks> 
</PropertyGroup> 

Jednak gdy próbuję budować, mam te dziwne błędy:

Nie można wywnioskować TargetFrameworkIdentifier i/lub TargetFrameworkVersion z TargetFramework =” net451 ". Muszą być wyraźnie określone.

MSB3645 Nie znaleziono programu .NET Framework v3.5 z dodatkiem Service Pack 1. Aby kierować reklamy na ".NETFramework, Version = v1.3", musi być zainstalowany .NET Framework v3.5 Service Pack 1 lub nowszy.

MSB3644 Zespoły referencyjne dla szkieletu ".NETFramework, Version = v1.3" nie zostały odnalezione. Aby rozwiązać ten problem, zainstaluj pakiet SDK lub pakiet kierowania dla tej wersji szkieletowej lub przekaż aplikację ponownie do wersji frameworka, dla której zainstalowano pakiet SDK lub pakiet kierowania. Zauważ, że złożenia zostaną usunięte z pamięci podręcznej Global Assembly Cache (GAC) i będą używane w miejscu zestawów referencyjnych. Dlatego twoje zgromadzenie może nie być prawidłowo ukierunkowane na ramy, które zamierzasz.

Gdybym podać identyfikatory ramowych docelowego ręcznie, buduje dobrze:

<PropertyGroup> 
    <TargetFrameworks>net451;netstandard1.3</TargetFrameworks> 
</PropertyGroup> 
<PropertyGroup Condition="'$(TargetFramework)' == 'net451'"> 
    <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier> 
</PropertyGroup> 
<PropertyGroup Condition="'$(TargetFramework)' == 'netstandard1.3'"> 
    <TargetFrameworkIdentifier>.NETStandard</TargetFrameworkIdentifier> 
</PropertyGroup> 

Używam Visual Studio 2017 Wspólnotę. Czy robię coś złego tutaj?

+2

Możesz podzielić się całą .csproj? mam net451; netstandard1.3 I buduje dobrze w VS 2017 Enterprise. –

+2

Powinieneś użyć końcówki "s" tagu. Więc nie TargetFramework, musi to być TargetFramework ** s ** – user3107888

Odpowiedz

50

Napisałeś na pewno <TargetFrameworks>net451;netstandard1.3</TargetFrameworks>, a nie <TargetFramework>net451;netstandard1.3</TargetFramework>?

byłem coraz ten sam błąd, aż Dodałem brakujące s

+4

Taka subtelna różnica! Dlaczego MS ?! – gregsdennis

+0

Dokonywanie zmian za pośrednictwem właściwości projektu UI w visual studio wydaje się przywracać do . coś, na co trzeba uważać. –

+1

Komunikat o błędzie poprawiony w wersji Core 2.0 - zobacz https://github.com/dotnet/sdk/pull/1274 –

Powiązane problemy