2

2008年以降、VisualStudioで別の.NETFrameworkターゲットに切り替えることができます。

プロジェクトがあり、そのプロジェクトの2つの異なるターゲットフレームワークアセンブリを構築したいと思います。ターゲットフレームワークが2.0の場合、コードをビルドし、別のターゲットフレームワークに切り替えるときに、新しい関数を使用するために別のコードフラグメントをビルドする必要があります。

今、私はどこでも手動でコードにコメントを付けたりコメントを外したりする必要があります。これを動的に行うためにいくつかのプリコンパイルシンボルを使用できるかどうか疑問に思います。好き:

#if Framework3
<do something>
#else
<do something else>
#endif

できますか?

4

3 に答える 3

2

はい、MiscUtilでこれを行います。ターゲットフレームワークの選択は現在の構成を無視するプロパティページにあるため、VisualStudioで直接実行できるかどうかはわかりません。ただし、プロジェクトファイルを直接編集して、適切な構成の適切なターゲットフレームワークを取得できます。特に、.NET 2.0を対象とする場合は、.NET3.5参照がないことを確認する必要があります。詳細については、メインプロジェクトファイル(MiscUtil.csproj)をご覧ください。

プリプロセッサシンボルの部分は簡単です。.NET2.0のビルド構成を取得したら、VisualStudioでプリプロセッサシンボルを直接追加できます。

于 2009-12-16T07:00:19.533 に答える
1

フレームワークのバージョンごとにコンパイルする前に、ビルドオプションで1つ定義するだけです。

  1. Framework3を追加
  2. .NETFramework3.5用にコンパイル
  3. Framework2への変更
  4. .NETFramework2.0用にコンパイル

これはまだあなたが望むほど自動化されていませんが、私の意見では、たくさんの行のコメントを外すよりはましです。

于 2009-12-16T06:06:54.253 に答える
0

はい、プロジェクトのプロパティで定義された定数を設定できます。これを管理する最良の方法、imhoは、コードを共有するが、定義された定数が異なる個別のプロジェクトファイルを用意することです。したがって、mycode_Framework1.csproj、mycode_Framework2.csprojなどです。同じソリューションに含めることも、含まないこともできますが、そうすると、一度にすべてを構築するのが少し簡単になります。

于 2009-12-16T06:12:09.813 に答える