Msbuild 为什么aspnet_编译器需要对生成服务器上的临时ASP.NET文件文件夹进行写访问?
我们使用CI服务器(Jenkins)编译ASP.NET项目并部署到web服务器 我希望在部署之前预编译站点以提高性能,因此我在发布配置文件(.pubxml)中设置了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:\
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行为的情况下重定向此连接。