Visual Studio 2010を使用して、x86とx64の両方のターゲットを持つC#プロジェクトを作成しています。 IDEを使用してビルドすると、x64およびx86ターゲットの正しい結果が得られます。ビルドx64 C#プロジェクトとmsbuildの結果が32ビットターゲット
コマンドラインでmsbuildを使用すると、x64をコマンドラインで指定しても、すべてがx86でビルドされています。
.Net 4.0から.Net 4.5にアップグレードするまでは、この問題はありませんでした。
.Net 4.0では、コマンドラインでx86を指定してもx64ターゲットを取得できました。
.Net 4.0環境でビルドした後、.Net 4.5環境で別のビルドを行い、出力をログファイルにパイプしました。私は、ログファイル内のいくつかの違いに気づいたが、私は、これは私の問題を引き起こしているものだと思う:
.NET 4.0では私はログファイルに次の行を参照してください。
/参照:C:\ WINDOWS \マイクロソフト。ネット\アセンブリ\ GAC_MSIL \ Microsoft.CSharp \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ Microsoft.CSharp.dll
の.Net 4.5で私は、ログファイルに次の行を参照してください。 /R: "C:\プログラムファイル(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ Microsoft.CSharp.dll "
アイデア?縫い目.Net 4.5はx86固有のパスを使用しています。
msbuildを実行するのにどのコマンドラインを使用しますか? slnまたはcsprojファイルをビルドしますか?どのように特定の設定をパスしますか? – Lanorkin
msbuild project.sln/p:プラットフォーム= "x64"/t:クリーン;再構築/ p:構成=デバッグ – Tony
この行の設定はログ 'ビルドソリューション構成"の最初の部分に正しいですか?その結果が間違っていることをどう理解していますか?どの出力ディレクトリが作成されますか? 'bin \ x86 \ Debug'または' bin \ x64 \ Debug'ですか? – Lanorkin