Msbuild 为什么aspnet_编译器需要对生成服务器上的临时ASP.NET文件文件夹进行写访问?

Msbuild 为什么aspnet_编译器需要对生成服务器上的临时ASP.NET文件文件夹进行写访问?,msbuild,aspnet-compiler,microsoft-web-deploy,Msbuild,Aspnet Compiler,Microsoft Web Deploy,我们使用CI服务器(Jenkins)编译ASP.NET项目并部署到web服务器 我希望在部署之前预编译站点以提高性能,因此我在发布配置文件(.pubxml)中设置了precompilebeforepublich属性 但是,当Jenkins运行构建时,AspNetPreCompile任务失败,出现以下错误: AspNetPreCompile: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet\u compiler.exe -v/ -p c:\

我们使用CI服务器(Jenkins)编译ASP.NET项目并部署到web服务器

我希望在部署之前预编译站点以提高性能,因此我在发布配置文件(.pubxml)中设置了
precompilebeforepublich
属性

但是,当Jenkins运行构建时,
AspNetPreCompile
任务失败,出现以下错误:

AspNetPreCompile:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet\u compiler.exe
-v/
-p c:\jenkins\workspace\DeployJob\MyProject\obj\Release\aspnetcompiler\Source
-c
c:\jenkins\workspace\DeployJob\MyProject\obj\Release\aspnetcompiler\tempbuildir

ASPNETCOMPILER:错误ASPRUNTIME:当前标识(JenkinsUser) 没有对的写入权限 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET 文件'

请注意,这不是部署网站的机器,它只是一个构建服务器。我可以授予当前身份(JenkinsUser)对临时ASP.NET文件文件夹的访问权,但我不想在一个只充当哑Jenkins从机的盒子上乱动文件系统权限


这有什么办法吗?为什么aspnet_编译器试图将站点写入临时ASP.NET文件文件夹,是否有任何方法使其使用不同的临时目录,例如
%TEMP%

我想您可以尝试一下:

  <AspNetCompiler ToolPath="C:\Windows\Microsoft.NET\Framework\v2.0.50727"  VirtualPath="temp"  PhysicalPath="$(ProjectDir)\..\Web" /> 

但你必须给~一些目录权限


这只是其中一个“随它而活”的东西………我关于设置CI机器的说明文档中有您解释的“授予asp.net目录的权限”。

不知道为什么,但这是默认行为。除了放置ntfs连接,不知道如何在不更改机器上的标准ASP.NET行为的情况下重定向此连接。