2011-11-15 8 views
1

TFS 2010ビルドで作成されたパッケージには、バイナリではなくソースが含まれています。これがIISに(自動的に)展開されると、ビルドプロセス中に作成されたDLLが見つからないため、サイトは実行されません。TFSBuild 2010パッケージにはバイナリではなくソースのみが含まれています

VS2010で作成されたWebプロジェクトがあります。 VSの右クリックから "Build Deployment Package"を選択すると、完全ビルドサイトを含むobj \ Release \ Packageフォルダにzipファイルが作成されます。しかし

、私たちのTFSを追加することにより、パッケージを作成するプロセスを構築せれば「/ Pを:CreatePackageOnPublish =真/ P:DeployOnBuild = true」をMSBuildの引数に(他の場所hereの中でお勧めのように)私たちはzipファイルを取得します_PublishedWebsites \ _Package \ .zipにはソースのみが含まれています。

CopyAllFilesToSingleFolderForPackageが間違った場所からファイルを取得していると推測します。

私は同様の問題をここで尋ねました - TFS 2010 and creating a package - 多くの場合、彼の回避策は適切ではありませんが、私は推測します。

MSBuild/TFSの機能は組み込まれていますが、文書化されていないことが懸念されています。動作しないと、荒野の中で少しです。

+0

同じ問題を抱えている人がMSDNフォーラムから喜んでいないことに気付きました。 - http://social.msdn.microsoft.com/Forums/en-GB/tfsbuild/thread/314b6c8e-780e-48ec-8d55 -ed409cb4ff42 –

+2

VSはプロジェクトディレクトリにバイナリを作成するが、TFSはそれらを別々の "バイナリ"フォルダにビルドするためだと思う。私はなぜ多くの人々がこの問題にぶつかるように思わないのかと思う。 –

答えて

1

deployOnBuildは、各プロジェクトで「パッケージ」のようなターゲットを実行しているようです。プロジェクトを別のディレクトリ(既定ではデフォルトのTFS 2010ビルドが行う)にビルドした場合、パッケージはコンパイルされたファイルを取得しません。

解決策の1つは、TFSビルドワークフロー内のMSBuildコマンドのカスタム出力フォルダを取り除くことです。これにより、コンパイルされたファイルがその場に配置され、パッケージに含まれます。

残りのTFSワークフローでは、ファイルを出力ディレクトリから転送する予定があり、そこには存在しないため、いくつかの変更が必要です。

関連する問題