3

有没有人成功地将 VS 2008 C++/CLI (vcproj) 项目转换为 VS 2010 项目 (vcxproj),同时保持 .NET 3.5 作为目标框架?我无法做到这一点并使项目成功构建。该项目在 VS2008 中作为 .NET 3.5 编译良好,在 VS2010 中作为 .NET 4.0 编译良好,但我无法在 2010 年以 .NET 3.5 为目标。IDE 似乎没有为它提供选项,并修改 vcxproj 文件通过增加

<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>

导致编译失败并出现以下错误:

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

根据此链接,VS2008 和 2010 之间使用的编译器显然存在一些差异,但仍建议手动编辑项目文件作为解决方案。有人对此有任何想法吗?

4

4 回答 4

13

当您以 .Net framework v3.5 为目标并使用 VS2010 构建时,有时会触发链接器错误 C1001,因为 VS2010 在您编译时会自动添加对 System.Core 的引用。这不是明确的,不会出现在您的引用中,而是在编译时完成。您可以通过在 Globals PropertyGroup 中添加此元素来告诉 VS 不要添加程序集:

<AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
于 2010-05-06T00:42:44.100 回答
3

哇,对Brickner 的错误报告的回应是毁灭性的 - 不支持目标 3.5,也不会修复!

我自己对崩溃的奇怪经历是通过打开预编译的头文件来修复它们,更奇怪的是因为 stdafx.h 是空的,所以我不知道它们在做什么。

于 2010-07-17T15:33:24.983 回答
1

安装此修补程序,您的麻烦可能就消失了:http: //support.microsoft.com/kb/976656

于 2013-03-02T09:17:30.437 回答
0

感谢您提供有关 TargetFrameworkVersion 的提示。它对我有用,但不幸的是这对你没有帮助。

如果您有一些为另一个版本的 C++ 编译器制作的旧文件(PCH 文件、目标文件),很容易出现“内部编译器错误”。更改工具版本时是否已清理所有内容?

于 2010-01-29T11:42:38.590 回答