当我尝试通过CruiseControl和MSBuild版本4构建解决方案文件时,收到以下错误

ASPNETCOMPILER : error ASPRUNTIME: The precompilation target directory

它来自哪里,如何避免?

最佳答案

您需要仔细检查预编译目录的位置。

您需要:

  • 删除其内容(如“ ASPNETCOMPILER : error ASPRUNTIME : Target Directory not empty”)
  • 检查其路径(解决方案文件中的Debug.AspNetCompiler.TargetPathRelease.AspNetCompiler.TargetPath)是否可写(例如,您不能在ClearCase中的动态 View 的根目录中写入:M:\MyView)
  • 检查Cruise Control是否可以访问您的 View (尤其是动态 View )

  • 如“Trying to Build and Publish Asp.net website from command line using aspnet_compiler”所示,错误消息通常更完整,类似于:
    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属性中找到的“输出”位置。

    您可能想知道为什么更新的解决方案不会随着下一个计划的构建而更新。随着工作的进行(有意义),仅将应用于源代码管理的更改拉到构建框上。

    关于msbuild - 巡航控制ASPNETCOMPILER:错误ASPRUNTIME:预编译目标目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14332794/

    10-10 17:26