3

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

ASPNETCOMPILER : error ASPRUNTIME: The precompilation target directory

它来自哪里以及如何避免它?

4

3 回答 3

5

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

您需要:

  • 删除其内容(如“ ASPNETCOMPILER:错误ASPRUNTIME:目标目录不为空”)
  • 检查其路径(Debug.AspNetCompiler.TargetPathRelease.AspNetCompiler.TargetPath在解决方案文件中)是否可写(例如,您不能在 ClearCase 中的动态视图的根目录中写入M:\MyView:)
  • 检查巡航控制是否可以访问您的视图(特别是如果它是动态视图)

如“尝试使用 aspnet_compiler 从命令行构建和发布 Asp.net 网站”中所示,错误消息通常更完整,类似于:

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).

来自博客文章“ 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 选项更改输出文件夹的路径 - 确保您的路径不属于同一路径树

于 2014-10-21T13:45:50.020 回答