Подтвердить что ты не робот

Построить ошибки при мультитаргетинге в файле csproj

Я пытаюсь создать библиотеку классов, которая многоцелектирует как .NET 4.5.1, так и .NET Standard 1.3. Согласно документации, я должен быть в состоянии сделать это:

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

Однако, когда я пытаюсь построить, я получаю эти нечетные ошибки:

Нельзя вывести TargetFrameworkIdentifier и/или TargetFrameworkVersion из TargetFramework = 'net451'. Они должны быть указаны явно.

MSB3645.NET Framework v3.5 с пакетом обновления 1 не найден. Чтобы настроить ".NETFramework, Version = v1.3", необходимо установить .NET Framework v3.5 с пакетом обновления 1 или более поздней версии.

MSB3644 Ссылочные сборки для фреймворка ".NETFramework, Version = v1.3" не найдены. Чтобы решить эту проблему, установите пакет SDK или Targeting Pack для этой версии фреймворка или перенастройте приложение на версию фреймворка, для которого установлен пакет SDK или Targeting Pack. Обратите внимание, что сборки будут решены из глобального сборочного кэша (GAC) и будут использоваться вместо ссылочных сборок. Поэтому ваша сборка может быть неправильно настроена для рамки, которую вы планируете.

Если я укажу идентификаторы целевой структуры вручную, он строит штраф:

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

Я использую сообщество Visual Studio 2017. Я здесь что-то не так?

4b9b3361

Ответ 1

Вы определенно написали <TargetFrameworks>net451;netstandard1.3</TargetFrameworks>, а не <TargetFramework>net451;netstandard1.3</TargetFramework>?

Я получал ту же ошибку, пока не добавил отсутствующий s