Целевой.NET 3.5 C++/CLI в Visual Studio 2010 Beta 2

У кого-нибудь был успех в преобразовании проекта VS 2008 C++/CLI (vcproj) в проект VS 2010 (vcxproj), при этом поддерживая.NET 3.5 в качестве целевой платформы? Я не смог сделать это и заставить проект успешно построить. Проект прекрасно компилируется в VS2008 как.NET 3.5, и хорошо в VS2010 как.NET 4.0, но я не могу настроить таргетинг на.NET 3.5 в 2010 году. В IDE, похоже, не предусмотрена такая возможность, и изменение файла vcxproj добавляя

<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>

приводит к сбою компиляции с ошибкой:

Error   1   error C1001: An internal error has occurred in the compiler.

По этой ссылке, очевидно, есть некоторые различия в компиляторах, используемых между VS2008 и 2010, но ручное редактирование файла проекта все еще предлагалось в качестве решения. У кого-нибудь есть идеи по этому поводу?

4 ответа

Решение

Спасибо за совет по TargetFrameworkVersion. Это сработало для меня, но это, к сожалению, не помогает вам.

Легко получить "внутреннюю ошибку компилятора", если у вас есть старые файлы (файлы PCH, объектные файлы), созданные для другой версии компилятора C++. Вы чистили все, когда меняли версию инструментов?

Когда вы ориентируетесь на.Net framework v3.5 и строите с использованием VS2010, иногда вы можете вызвать ошибку компоновщика C1001 из-за того, что VS2010 автоматически добавляет ссылку на System.Core при компиляции. Это не явно и не будет отображаться в ваших ссылках, а будет сделано во время компиляции. Вы можете указать VS не добавлять сборки, добавив этот элемент в свою группу глобальных свойств:

<AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>

Вау, ответ на сообщение об ошибке Brickner является разрушительным - таргетинг 3.5 не поддерживается и не будет исправлен!

Мои собственные странные переживания сбоев заключаются в том, что они были исправлены путем включения предварительно скомпилированных заголовков, что еще более странно, потому что stdafx.h был пуст, поэтому я не знаю, что они делают.

Установите это исправление, и ваши проблемы, вероятно, исчезли: http://support.microsoft.com/kb/976656

Другие вопросы по тегам