Косвенная зависимость — .NET2.0 — WMP.dll

После установки Visual Studio 2017 RC у меня есть код, который не удается собрать. Я сузил его до WMP и .NET Framework 2 (работает под Framework 4)

Самая базовая тестовая установка — это 2 проекта:

Проект 1:

  • Приложение Windows Forms
  • .NET Framework 2.0
  • Пространство имен WMPClient
  • Ссылка добавлена ​​в wmp.dll (пробовали и system32, и syswow64)
  • В Form1.cs добавлен проигрыватель Windows Media.

Проект 2:

  • Библиотека классов (.NET Framework)
  • .NET Framework 2.0
  • Пространство имен WMPLib
  • Ссылка добавлена ​​в WMPClient

Оба проекта строятся.

При добавлении using WMPClient; в Class1.cs (проект 2) происходит сбой сборки:

13 строк ошибок типа System.Windows.Forms, mscorlib, System

warning MSB3258: The primary reference "C:\WMPClient\bin\Debug\WMPClient.exe" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.

1 строка ошибки, как это:

error CS0246: The type or namespace name 'WMPClient' could not be found (are you missing a using directive or an assembly reference?)

Тот же код больше не работает под VS2013, но работал до установки VS2017.


person Johnny S    schedule 01.02.2017    source источник
comment
Возможно, есть способ установить конкретную цель для System.Windows.Form версии 2.0.0.0?   -  person Johnny S    schedule 01.02.2017
comment
Свойства для каждой системной ссылки показывают Runtime Version = v2.0.50727 - это касается обоих проектов.   -  person Johnny S    schedule 01.02.2017


Ответы (1)


он говорит, что ваш «WMPClient.exe» имеет более высокую версию 4.0 .net framework. И в принципе нельзя добавлять библиотеки более высоких версий или пространства имен в проект более низкой версии .NET. Итак, либо создайте «WMPClient.exe» с 2.0, либо обновите свой проект Forms до 4.0.

person Fadia Jabeen    schedule 01.02.2017
comment
Для обоих проектов установлена ​​платформа Framework 2.0 в свойствах/приложении csproj: ‹TargetFrameworkVersion›v2.0‹/TargetFrameworkVersion› - person Johnny S; 01.02.2017
comment
При удаче? Я столкнулся с такой же проблемой при переходе с VS2017 на VS2019 (на новой машине). - person Terry; 05.04.2019
comment
В .NET framework v3.5 это не работает. Я обновил свое приложение до .NET framework v4.0 в настройках проекта, и это сработало для меня. - person Григорий; 08.02.2020