6

Visual Studio 2010 (サーバーにもインストールされています) と共に TFS 2010 をインストールしています。C# プロジェクトのビルド定義を作成しました。ビルドは成功しますが、ドロップ フォルダーに .exe ファイルがありませんが、dll を見つけることができます。

以前に同じ問題を経験した人はいますか?

4

3 に答える 3

6

これは、ビルドする構成に問題がある可能性があります。

ソリューション エクスプローラーでソリューションを右クリックし、[構成マネージャー] を選択します。これにより、ソリューション内のすべてのプロジェクトのリストが表示されます。「EXE」を作成するプロジェクトはおそらく「x86」に設定され、「DLL」を作成するプロジェクトは「AnyCPU」に設定されている可能性があります。

これらのそれぞれの「プラットフォーム」に加えて、すべてのプロジェクトをビルドする「混合プラットフォーム」の「プラットフォーム」が必要です。

ビルド定義をチェックインします。プロセスタブを見て、「ビルドするアイテム」設定を見て、「リリース|混合プラットフォーム」をビルドしていることを確認してください。ビルド出力に dll のみが表示される場合は、ビルドが "Release|AnyCPU" に設定されていると思われます。

于 2012-07-23T15:35:46.517 に答える
1

新しいビルドとセットをキューに入れると、TFS ビルドの全体の流れを確認できます。Verbosity = diagnostic
ビルドが終了したら、それを開いて [ログの表示] を選択します。

ABinariesDirectoryは 内でその値を取得しますInitialize Binaries Directory
という名前の別の変数は、 に基づく何かに基づいて、OutputDirectory内でその値を取得します。MSBuild は結果を this にドロップします。最後に、以下のすべてがドロップ場所にコピーされます。これを行うアクティビティは、拡張子に焦点を当てていません。ディレクトリ全体をコピーするだけです。Initialize OutputDirectoryBinariesDirectory
OutputDirectory
Copy Files to Drop LocationBinariesDirectory

Microsoft.TeamFoundation.Build.Workflow.Activities.CopyDirectory

報告内容を体験するには、既定以外のビルド プロセス テンプレート XAML を使用しているか、MSBuild 引数が何らかの形で変更されているか、*exe-csproj にハードコーディングされた出力パスが含まれている可能性があります。
いずれにせよ、上記のようにビルドログをたどれば、犯人を突き止めることができるはずです。
幸運を!

于 2012-07-23T09:24:22.787 に答える
1

返信ありがとうございます。それがまさに問題でした。3 つのプロジェクトの 1 つが「AnyCPU」ではなく「x86」に設定されていました。見にくい) 投稿を使用: http://lajak.wordpress.com/2011/05/07/customize-binaries-folder-in-tfs-team-build/.

問題は解決しました。ご協力いただきありがとうございます。良い一日をお過ごしください。

于 2012-07-24T07:17:49.910 に答える