vs2010でC++/CLIプロジェクトを4.0以外のフレームワークに変更する 質問する

vs2010でC++/CLIプロジェクトを4.0以外のフレームワークに変更する 質問する

プロジェクトを Visual Studio 2010 プロジェクト形式にアップグレードしたため、C++/CLI プロジェクトは .net Framework 4.0 を対象としています。

C# プロジェクトからフレームワークのバージョンを別のバージョンに切り替えるのは簡単ですが、C++/CLI プロジェクトでこれを行う方法がわかりません。プロジェクトのプロパティ ページにはこの設定が表示されません。

ベストアンサー1

これは、フレームワークと参照ダイアログで F1 キーを押すと表示されます。

新規プロジェクトの場合、ターゲット フレームワークは既定で .NET Framework 4 に設定されています。IDE ではターゲット フレームワークの変更はサポートされていませんが、手動で変更できます。プロジェクト ファイル (.vcxproj) では、既定のターゲット フレームワークは v4.0 プロパティ要素で表されます。ターゲット フレームワークを変更するには、プロジェクトをアンロードし、テキスト エディターを使用してプロジェクト ファイルを開き、プロパティ要素の値を v4.0 からサーバーにインストールされている別のバージョンに変更します。たとえば、.NET Framework v3.5 を表す v3.5 を指定すると、Visual Studio 2008 SP1 がインストールされている必要がありますファイルを保存して閉じ、プロジェクトを再読み込みし、対象のフレームワークがプロパティ ページに表示されていることを確認します。*

変換されたプロジェクトではそれほど正確ではないので、要素を自分で追加する必要があります<TargetFrameworkVersion>。「Globals」というラベルの付いた PropertyGroup に配置します。

  <PropertyGroup Label="Globals">
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    <others...>
  </PropertyGroup>

VS2012 以降を使用する場合は、状況が異なります。VS の最初のバージョンでは、全般プロパティ ページでプラットフォーム ツールセット設定を取得しました。3.5 をターゲットとする適切なビルドを取得するには、「v90」を選択する必要があります。ただし、その選択を有効にするには、VS のすべての中間バージョンがマシンにインストールされている必要があります。

VS2008 をインストールする必要がある理由については、それ自体で説明が必要です。根本的な問題は、C ランタイム ライブラリ (msvcrt100.dll 以降) に、マネージ コード実行をサポートする .NET コードが含まれていることです。重要な詳細は、C++/CLI コードを使用するプログラムで CRT が正しく初期化されることを保証するモジュール初期化子です。そのコードは常に .NET 4 を対象としており、msvcrt100.dll (以降) にハードベークされているため、常に v4.0.30319 ランタイムに完全に依存します。古い C ランタイムである msvcrt90.dll を使用する場合、純粋な v2.0.50727 依存関係を持つことができます。VS2008 のコンパイラの #include ファイルを使用する場合のみ、msvcrt90.dll 依存関係があることが確実です。

.NET 4 にすぐに移行する必要があるというのは厳しい事実です。移行しないと、このようなビルドの問題に悩まされることになります。それに対する実際的な障害はほとんどありません。.NET 4 は、想像できるすべてのターゲットで無料で広く利用できます。より高いランタイム バージョンへの移行に関連する FUD を克服することが、一般的に唯一の本当の問題です。恐れや疑いの理由はありません。安定しています。

おすすめ記事