1

バックグラウンド

私は以下を利用しています:

  • VS 2012
  • MVC4 アプリ、C# ドメイン アプリ、NUnit プロジェクトを含む .NET 4.5 アプリ。
  • カスタム MSBuild ファイル
  • ビルド サーバーで実行されている CruiseControl.NET

次のビルド ターゲットがあります。

  • Clean: buildartifacts ディレクトリを削除します
  • 初期化: 空の buildartifacts ディレクトリを作成します
  • コンパイル: ソリューションをコンパイルします
  • テスト: NUnit テストを実行します
  • パッケージ: デプロイ用の ZIP パッケージを作成します
  • 展開: パッケージをリモート IIS サーバーに展開します。

問題

  • ローカル マシンからビルドを実行すると、完全にパッケージ化およびデプロイされます。
  • CCNet が同じビルド ターゲットを実行すると、ファイルがデプロイされたように見える

試みられた解決策/潜在的なリード

  • 両方のマシンから PowerShell で同じターゲットを実行しましたが、どちらにもエラーや警告は表示されませんでした。
  • ビルド サーバーにコピーした .NET 4.5 ファイルを指すようにフレームワークをオーバーライドするように CCNEt に指示したため、MSBuild を実行するときにローカル マシンが同じファイルを指すようにしましたが、ローカル ビルドは引き続き動作し、展開されました。
  • Visual Studio では、すべてのコンテンツ ファイルが「コンテンツ」のビルド アクションと「常にコピー」の出力へのコピー設定でマークされていることを確認しました。

コード

4

1 に答える 1

3

結局のところ、これはまったく無関係の問題でした。

両方のビルド ログの比較を行った後、ビルド サーバーの作業コピーに、存在しない古いファイルが含まれていることに気付きました。これにより、リポジトリが更新されていないことが問題であることがわかりました。

CCNet は、エラーとして登録されていないサブバージョン エラーを受信して​​いました。その結果、リポジトリの最新バージョンを取得できず、すべてのファイルが破損していました。

このエラーは、tortoisesvn を使用して更新しようとしたときの sqlite エラーに関するこの StackOverflow questionに関連しています。私の場合の解決策は、ビルド サーバーの作業コピーを削除し、フォルダーを再作成して、svn チェックアウトを実行することでした。

于 2012-12-11T18:02:15.060 に答える