【发布时间】:2013-11-03 10:15:59
【问题描述】:
我们使用 CI 服务器 (Jenkins) 编译 ASP.NET 项目并部署到我们的 Web 服务器。
我想在部署前预编译站点以提高性能,因此我在发布配置文件 (.pubxml) 中设置了 PrecompileBeforePublish 属性。
但是,当 Jenkins 运行构建时,AspNetPreCompile 任务失败并出现错误:
AspNetPreCompile:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe
-v /
-p c:\jenkins\workspace\DeployJob\MyProject\obj\Release\AspnetCompileMerge\Source
-c
c:\jenkins\workspace\DeployJob\MyProject\obj\Release\AspnetCompileMerge\TempBuildDirASPNETCOMPILER : 错误 ASPRUNTIME: 当前身份 (JenkinsUser) 没有写入权限 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET 文件”。
请注意,这不是网站将被部署到的机器,它只是一个构建服务器。我可以授予当前身份 (JenkinsUser) 对 Temporary ASP.NET Files 文件夹的访问权限,但我宁愿不必在只是充当愚蠢 Jenkins 的盒子上弄乱文件系统权限奴隶。
有没有办法解决这个问题?为什么 aspnet_compiler 试图将站点写入 Temporary ASP.NET Files 文件夹,有没有办法让它使用不同的临时目录,例如 %TEMP%?
【问题讨论】:
-
不知道为什么,但这是默认行为。除了放置一个 ntfs 连接之外,不知道如何在不改变机器上标准 ASP.NET 行为的情况下重定向它。
标签: msbuild aspnet-compiler microsoft-web-deploy