CruiseControl と MSBuild バージョン 4 を使用してソリューション ファイルをビルドしようとすると、次のエラーが表示されます。
ASPNETCOMPILER : error ASPRUNTIME: The precompilation target directory
それはどこから来て、どのように回避するのですか?
CruiseControl と MSBuild バージョン 4 を使用してソリューション ファイルをビルドしようとすると、次のエラーが表示されます。
ASPNETCOMPILER : error ASPRUNTIME: The precompilation target directory
それはどこから来て、どのように回避するのですか?
プリコンパイル ディレクトリの場所を再確認する必要があります。
次のいずれかが必要です。
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 ソリューションの場合、アプリケーション
TargetPath
のDebug
および/または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 プロパティで見つかった出力の場所を更新することもできます。
更新されたソリューションが次のスケジュールされたビルドで更新されない理由を疑問に思うかもしれません。うまくいくと (そして理にかなっている)、ソース管理に適用される変更のみがビルド ボックスにプルされます。
以下の変更により問題を解決しました。
Debug.AspNetCompiler.TargetPath = “c:\ccnet\PrecompiledWeb\SampleWeb\”
Release.AspNetCompiler.TargetPath = “c:\ccnet\PrecompiledWeb\SampleWeb\”
ソリューション エクスプローラーで [プロジェクト] を右クリック プロパティ ページを選択 ダイアログ ボックスの左側にある [MSBuild オプション] を選択 OutputFolder のパスを変更 - パスが同じパス ツリーに属していないことを確認