Visual Studio 2010 Больше не может создавать .NET v3.5

У меня есть проект 2010 года, предназначенный для .NET v3.5. По необъяснимым причинам я больше не могу строить проекты v3.5. В проекте нет ЛЮБЫХ ссылок. Он даже не позволит мне добавить ссылку на System.Core, поскольку она добавлена ​​системой сборки.

предупреждение CS1685: предопределенный тип 'System.Func' определен в несколько сборок в глобальном псевдоним; используя определение из 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll'

IFilter.cs(82,49): ошибка CS0433: Тип 'System.Func' существует в обоих файлах c:\Program Files (X86)\Ссылка Сборки \Microsoft\Framework\v3.5\System.Core.dll" а также 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll'

Похоже, что что-то хватит на 4.0, но я не совсем уверен, как это исправить. Кто-нибудь еще сталкивается с этим?

У Коллегера была такая же проблема. Для исправления проблемы потребовалась переустановка Windows

Я открыл ошибку на этом: https://connect.microsoft.com/VisualStudio/feedback/details/558245/warning-cs1685-when-compiling-a-v3-5-net-application-in-visual-studio-2010

Если компилятор настроен на подробный, я вижу следующее:

FrameworkPathOverride = C:\Windows\Microsoft.NET\Framework\v4.0.30319

который определяется как:

Определяет местоположение mscorlib.dll и microsoft.visualbasic.dll. Эта параметр эквивалентен /sdkpath для vbc.exe компилятор.

Некоторые другие интересные лакомые кусочки: я создал новый проект вместе и не могу построить v3.5 вообще. Я могу создать 2.0, 3.0, 3.5 Client Profile, 4.0 и 4.0 Client Profile без проблем. VB.NET может создавать v3.5, но С# не может. Я пробовал переустановить .NET 3.5, 4.0 и Visual Studio 2010 без успеха. Журналы отладки Visual Studio не показали ничего интересного, и безопасный режим не работает.

Попытка избежать переустановки Windows...

EDIT: Я понял, что другие сталкиваются с этой проблемой. Ссылка, Ссылка, Ссылка


Переустановлено несколько раз. Удаленные объекты Visual Studio не очищаются после себя. Я развернул виртуальную машину для разработки, пока у меня не будет возможности переустановить основную ОС.

Ответы

Ответ 1

Проблема была вызвана изменениями, сделанными в этом сообщении . Это вызвало проблему с загрузкой последней версии CLR. Будьте осторожны!

Ответ 2

Маленький чит: Открытые свойства проекта VS210 страницы ob build advanced check не ссылаются на mscorlib.dll. Затем в текстовом редакторе откройте файл проекта и добавьте в ссылки:

<Reference Include="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

Bye

Ответ 3

Здесь предложение :

  • Очистите решение и повторите попытку. Если не удастся выполнить шаг 2.
  • Разгрузите проект, щелкнув его правой кнопкой мыши и выбрав запись "Выгрузить проект"
  • Снова щелкните правой кнопкой мыши и выберите "Изменить проект"
  • Убедитесь, что ваш проект нацелен на правильную версию рамочной версии и устанавливает значение следующего тега:
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  1. Проверьте список ссылок вашего проекта:
<ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.CSharp" />
    ...
</ItemGroup>

Убедитесь, что нет двойной ссылки.

Надеюсь, это поможет.

Если нет, создайте резервную копию файлов проекта, удалите проект и повторно добавьте его в новый проект. Это, скорее всего, будет работать.

Ответ 4

Я думаю, что может быть ссылка на фреймворк 4.0 в файле проекта или решения - возможно, существуют разные элементы TargetFrameworkVersion. Или, возможно, некоторые из файлов в папке bin или obj не синхронизированы.

Попробуйте очистить решение или даже вручную удалить содержимое папки bin и obj. Если это не помогает, просто сравните текущую версию с последней рабочей версией в Subversion или с какой бы системой управления версиями вы не использовали, и вы должны увидеть, произошли ли изменения.

Ответ 5

Per этот пост в Microsoft Connect, вы можете решить эту проблему, добавив строку в ваше решение или файл проекта, устанавливая ToolPath для AspNetCompiler должен быть "C:\Windows\Microsoft.NET\Framework\v2.0.50727".

Ответ 6

Я видел эту проблему много раз - обходной путь может быть очень простым.

В моем случае оскорбительный проект VS содержал множество виртуальных каталогов (20).

Как только это снова ударит, я удаляю все Virtuals Dirs, а затем воссоздал по одному и каждый раз восстанавливал проект при поиске этого erorr.

Когда я добавил две виртуальные машины назад, с компиляцией NO, ошибка снова появилась.

Решение было удалить последний VDir, затем перестроить, восстановить Vdirs и затем перестроить. Просто из-за этих причудливых причудливых вещей, найденных путем методичного повторения процесса, который может стать "timevamp" или "sunktime", который принимает ваш день, вечер, позднюю ночь и, возможно, доступ к хорошему пиву на местном пивоваренном заводе.