Visual Studio 2010 больше не может собирать .NET v3.5 - PullRequest
13 голосов
/ 11 мая 2010

У меня есть проект 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, но C # не может. Я попытался переустановить .NET 3.5, 4.0 и Visual Studio 2010 безуспешно. В журналах отладки Visual Studio ничего интересного нет, а безопасный режим не работает.

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

РЕДАКТИРОВАТЬ: Я пришел к выводу, что другие сталкиваются с этой проблемой также. Ссылка , Ссылка , Ссылка


Переустанавливал несколько раз. Деинсталляции Visual Studio не убирают за собой. Я развернул виртуальную машину для разработки, пока у меня не будет возможности переустановить основную ОС.

Ответы [ 6 ]

7 голосов
/ 17 июня 2010

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

1 голос
/ 26 сентября 2010

Небольшой обманщик: откройте страницу свойств проекта VS210 и не проверяйте mscorlib.dll.Затем в текстовом редакторе откройте файл проекта и добавьте в ссылки:

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

Пока

0 голосов
/ 15 марта 2013

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

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

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

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

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

0 голосов
/ 16 января 2012

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

0 голосов
/ 11 мая 2010

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

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

0 голосов
/ 11 мая 2010

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

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

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

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

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

...