Целевой .NET 3.5 C ++ / CLI в Visual Studio 2010 Beta 2 - PullRequest
3 голосов
/ 21 января 2010

У кого-нибудь был успех в преобразовании проекта 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 ]

13 голосов
/ 06 мая 2010

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

<AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
3 голосов
/ 17 июля 2010

Ничего себе, ответ на Отчет об ошибках Brickner разрушителен - нацеливание 3.5 не поддерживается и не будет исправлено!

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

1 голос
/ 02 марта 2013

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

0 голосов
/ 29 января 2010

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

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

...