我们使用 CI 服务器 (Jenkins) 编译 ASP.NET 项目并部署到我们的 Web 服务器。
我想在部署之前预编译站点以提高性能,因此我PrecompileBeforePublish
在发布配置文件 (.pubxml) 中设置了该属性。
但是,当 Jenkins 运行构建时,AspNetPreCompile
任务失败并出现以下错误:
AspNetPreCompile:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe
-v /
-pc:\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 Files”的写入权限。
请注意,这不是将网站部署到的机器,它只是一个构建服务器。我可以授予当前身份 (JenkinsUser) 对Temporary ASP.NET Files 文件夹的访问权限,但我宁愿不必在只是充当愚蠢的 Jenkins 从属的盒子上弄乱文件系统权限。
有没有办法解决?为什么 aspnet_compiler 试图将站点写入Temporary ASP.NET Files 文件夹,有没有办法让它使用不同的临时目录,例如%TEMP%
?