我们使用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 \ TempBuildDir ASPNETCOMPILER:错误ASPRUNTIME:当前标识(JenkinsUser)对“C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files”没有写访问权限。
请注意,这不是Web站点将部署到的计算机,它只是一个构建服务器。我可以授予当前标识(JenkinsUser)访问Temporary ASP.NET文件夹的权限,但我不想在只充当愚笨Jenkins从属的盒子上搞乱文件系统权限。
有什么解决方法吗?为什么aspnet_compiler尝试将站点写入Temporary ASP.NET文件夹,是否有任何方法使其使用其他临时目录,如%TEMP%?
我想在部署之前预编译站点以提高性能,因此我在发布配置文件(.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 \ TempBuildDir ASPNETCOMPILER:错误ASPRUNTIME:当前标识(JenkinsUser)对“C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files”没有写访问权限。
请注意,这不是Web站点将部署到的计算机,它只是一个构建服务器。我可以授予当前标识(JenkinsUser)访问Temporary ASP.NET文件夹的权限,但我不想在只充当愚笨Jenkins从属的盒子上搞乱文件系统权限。
有什么解决方法吗?为什么aspnet_compiler尝试将站点写入Temporary ASP.NET文件夹,是否有任何方法使其使用其他临时目录,如%TEMP%?