Как мне создать библиотеку для .NET Framework 4.5.1 и .NET Standard 1.3 в VS 2017 RC?

Я впервые пробую что-то, что нацелено не только на .NET Framework. Кажется, я не могу сделать это из графического интерфейса. Я пробовал тип проекта «Библиотека классов (переносимая)» и тип проекта «Библиотека классов (.NET Standard)». Я могу изменить «Библиотеку классов (переносную)» на таргетинг на .NET Standard, но тогда я не могу выбрать что-либо еще. Я не уверен, стоит ли мне пытаться изменить .csproj из «Библиотеки классов (.NET Standard)» или project.json из «Библиотеки классов (переносной)», мне просто нужно то, что наиболее надежно в будущем.


person user1676558    schedule 25.01.2017    source источник
comment
Откройте csproj и добавьте еще один тег целевой платформы. Зайдите в блог .NET в блогах MSDN и прочтите его последние новости.   -  person Lex Li    schedule 25.01.2017
comment
Похоже, это не сработало, несмотря на то, что msdn.microsoft.com/en-us/ журнал / mt791801 говорит. Может я что-то делаю не так, но распознается только одна из целей. Но я попробовал другой синтаксис, и он, похоже, работает: ‹TargetFrameworks› net451; netstandard1.3 ‹/TargetFrameworks›. Кто-нибудь знает, что происходит?   -  person user1676558    schedule 25.01.2017
comment
Потому что SDK быстро развивается. Если вы установите последнюю версию (например, RC4), вы сможете все заработать, github.com/dotnet/cli (прокрутите вниз до раздела загрузки на этой странице).   -  person Lex Li    schedule 26.01.2017


Ответы (1)


Несколько дней назад .csproj был упрощен, а его использование улучшилось. В последней версии VS 2017 RC я создаю такую ​​библиотеку, создав новую «Библиотеку классов (.NET Standard)», которая имеет этот .csproj по умолчанию:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard1.4</TargetFramework>
  </PropertyGroup>
</Project>

И я редактирую его вручную (я не вижу способа сделать это через пользовательский интерфейс), чтобы он был таким:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>netstandard1.3;net452</TargetFrameworks>
  </PropertyGroup>
</Project>

Выпадающее меню «Целевая платформа» под панелью свойств проекта становится серым. Создавая, вы можете проверить отдельные папки netstandard1.3 и net452 в bin \ Debug. Помните о следующей проблеме, если вы создаете пакет NuGet при сборке, которая может ввести вас в заблуждение, заставив думать, что вы сделали что-то неправильно: https://github.com/NuGet/Home/issues/4289.

person user1676558    schedule 02.02.2017
comment
Тонкая буква "s" в TargetFramework = ›TargetFrameworks части ответа меня поразила. Только когда я попытался построить и получил ошибку «... для многоцелевого использования вместо свойства targetframeworks», я увидел это. :) - person Gregg L; 15.04.2019