C# には、コンパイル時に x86 (Win32) 用にコンパイルしているか x64 (Win64) 用にコンパイルしているかを知ることができる #define がありますか?
質問する
3695 次
3 に答える
6
デフォルトでは、これを行う方法はありません。その理由は、C# コードが CLR で実行されるため、特定のプラットフォームをターゲットにするように設計されていないためです。
ただし、これを手で転がすことは可能です。Visual Studio のプロジェクト構成設定を使用して、独自の定数を定義できます。または、もう少し合理化したい場合は、.csproj を自分で編集して、さまざまな定義を持つ構成をいくつか手動でロールバックできます。
たとえば、プロジェクト ファイルを次のようにすることができます。x86/amd64 情報を明確にするために、一部の情報を削除しました。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<!-- ... -->
<DefineConstants>TRACE;DEBUG;X86</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|amd64' ">
<!-- ... -->
<DefineConstants>TRACE;DEBUG;AMD64</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
これを .csproj ファイルに追加すると、プロジェクトに 2 つの新しいプラットフォーム構成ができます。
于 2009-02-07T21:04:39.117 に答える
1
私の知る限り、VisualStudioはDEBUG定数とTRACE定数のみを定義します。プロジェクト構成でこのような定数を手動で宣言する代わりに、NANTを使用してプロジェクトをビルドできます。コンパイル時にビルドプラットフォームを決定し、それに応じてカスタムディレクティブを定義できます。
于 2009-02-07T18:05:39.683 に答える
0
私が知っていることではありません。さまざまなプロジェクト構成で独自に宣言する必要があります。
于 2009-02-07T17:57:09.417 に答える