3

ターゲットフレームワークとして.NET3.5を維持しながら、VS 2008 C ++ / CLI(vcproj)プロジェクトをVS 2010プロジェクト(vcxproj)に変換することに成功した人はいますか?私はこれを行うことができず、プロジェクトを正常にビルドすることができませんでした。プロジェクトは、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 を使用してビルドしている場合、コンパイル時に VS2010 が System.Core への参照を自動的に追加するため、リンカ エラー C1001 が発生することがあります。これは明示的ではなく、参照には表示されませんが、コンパイル時に行われます。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 に答える