Новый проект .NET 2.0 C ++ / CLI имеет неявную зависимость от mscorlib v4?

Я создал новый проект C ++ / CLI в Visual Studio 2012, выбрав .NET 2.0 в качестве основы на странице создания проекта. Я подтвердил, что «Внешние зависимости» (mscorlib.dll, System.Data.dll, System.dll и System.XML.dll) показывают «Путь» какc:\Windows\Microsoft.NET\Framework\v2.0.50727\*.

При добавлении ссылки на этот проект из проекта C # .NET 2.0 в том же решении во время сборки компилятор не может связать мою библиотеку C ++ со следующей ошибкой:

Предупреждение 2 Не удалось разрешить первичную ссылку «D: \ GIT \ EasyBCD \ Release \ Win32Interop.dll», поскольку она косвенно зависит от сборки .NET Framework »mscorlib, Версия = 4.0.0.0, Культура = нейтральная, PublicKeyToken = b77a5c561934e089 ", которая имеет более высокую версию" 4.0.0.0 ", чем версия" 2.0.0.0 "в текущей целевой структуре. C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.Targets 1578

Однако, как я уже сказал, ссылки в проекте «Win32Interop» ясно указывают на то, что была использована версия 2.0, а сам файл проекта содержит<TargetFrameworkVersion>v2.0</TargetFrameworkVersion> как это должно.

Почему Visual Studio 2012 доставляет мне такие трудности?

РЕДАКТИРОВАТЬ

Тайна углубляется. При попытке удалить все и затем снова добавить ссылки .NET в проект C ++ / CLI, это то, что показывает:

Как видите, вверху написано «Таргетинг: .NET Framework 2.0», а в столбце «Версия» указано, что я выбираю версию «2.0.0.0».

Тем не менее, после нажатия OK, вот как выглядит список ссылок:

Целевая структура остается ".NETFramework, Version = v2.0", но каждая из отдельных ссылок указывает, что используется версия "4.0.0.0" (вместе с токенами открытого ключа для этой версии файла).

Тем не менее, диалог свойств при выборе каждой ссылки абсолютно подтверждает, что файл v2.0 используется. Кому верить? Что делать?

Ответы на вопрос(1)

Ваш ответ на вопрос