В VisualStudio 2017 я создал библиотеку классов, предназначенную для .net 4.0 (для поддержки устаревших приложений на win XP) и среды 4.6.1.Я сделал это, используя новый формат .csproj, который позволяет указывать несколько целевых платформ, как показано ниже.
<PropertyGroup>
<TargetFrameworks>net40;net472</TargetFrameworks>
</PropertyGroup>
Сборка библиотеки для обеих платформ работает отлично.Я получаю две мои папки, net40 и net472, которые содержат dll для конкретной целевой структуры.
В моем решении у меня теперь есть еще два проекта.Одно приложение WinForms, которое ссылается на мою библиотеку, и приложение WPF, которое также ссылается на него.Приложение WinForms должно использовать версию моей библиотеки для net40 и WPF net472.
Когда я добавляю ссылку на проект в библиотеку в моем приложении WinForms, она использует версию net40.Все хорошо.
Но когда я ссылаюсь на проект библиотеки классов на свое приложение WPF (которое строит для net472), оно также использует net40 dll.Но я хочу, чтобы мое приложение WPF использовало версию библиотеки net472.
Есть ли возможность выбрать целевую среду при обращении к библиотеке многоцелевых классов в качестве ссылки на проект в VS2017?
Обновление: Когда я собираю многоцелевой пакет nuget из библиотеки и использую этот пакет для ссылки на него, все в порядке.Приложение WPF автоматически использует net472 и WinForms net40.