3

CruiseControl と MSBuild バージョン 4 を使用してソリューション ファイルをビルドしようとすると、次のエラーが表示されます。

ASPNETCOMPILER : error ASPRUNTIME: The precompilation target directory

それはどこから来て、どのように回避するのですか?

4

3 に答える 3

5

プリコンパイル ディレクトリの場所を再確認する必要があります。

次のいずれかが必要です。

  • その内容を削除します (「ASPNETCOMPILER: エラーASPRUNTIME: ターゲット ディレクトリが空ではありません」のように)
  • そのパス (Debug.AspNetCompiler.TargetPathまたはRelease.AspNetCompiler.TargetPathソリューション ファイル内) が書き込み可能かどうかを確認します (たとえば、ClearCase の動的ビューのルート ディレクトリに書き込むことはできませんM:\MyView) 。
  • クルーズ コントロールがビューにアクセスできるかどうかを確認します (特に動的ビューの場合)。

「 aspnet_compiler を使用してコマンド ラインから Asp.net Web サイトをビルドおよび公開しようとしている」に示されているように、エラー メッセージは通常、次のようなより完全なものです。

Error: error ASPRUNTIME: The precompilation target directory
(c:\Inetpub\wwwroot\WebsiteOne) 
cannot be in the same tree as the source application directory 
(c:\inetpub\wwwroot\WebsiteOne).

ブログ投稿 " Getting Started with CruiseControl.NET " から:

Web ソリューションの場合、アプリケーションTargetPathDebugおよび/またはReleaseビルドがソース アプリケーション ディレクトリの外にあるように更新します。
そうしないと、次のエラーが表示されます。

ASPNETCOMPILER : error ASPRUNTIME: The precompilation target directory cannot be in the same tree as the source application directory.

これは、ソリューション ファイルで次のように変更することで実行できます。

Debug.AspNetCompiler.TargetPath = “c:\ccnet\PrecompiledWeb\SampleWeb\”
Release.AspNetCompiler.TargetPath = “c:\ccnet\PrecompiledWeb\SampleWeb\”

または、アプリケーションの MSBuild プロパティで見つかった出力の場所を更新することもできます。

更新されたソリューションが次のスケジュールされたビルドで更新されない理由を疑問に思うかもしれません。うまくいくと (そして理にかなっている)、ソース管理に適用される変更のみがビルド ボックスにプルされます。

于 2013-01-15T07:22:32.280 に答える
1

以下の変更により問題を解決しました。

Debug.AspNetCompiler.TargetPath = “c:\ccnet\PrecompiledWeb\SampleWeb\”
Release.AspNetCompiler.TargetPath = “c:\ccnet\PrecompiledWeb\SampleWeb\”
于 2013-01-18T05:38:06.300 に答える
0

ソリューション エクスプローラーで [プロジェクト] を右クリック プロパティ ページを選択 ダイアログ ボックスの左側にある [MSBuild オプション] を選択 OutputFolder のパスを変更 - パスが同じパス ツリーに属していないことを確認

于 2014-10-21T13:45:50.020 に答える