部署包含XML文档的Web API项目时,生成服务器上的“访问被拒绝”

为了使用Web API帮助页为我的Web API项目生成XML文档,我必须检查项目属性“Builds”部分下的“XML文档文件”选项。当我在本地构建时,这将正确地生成文档

但是,当我签入时,生成服务器上出现以下错误:

CSC:生成XML文档文件时出错
‘c:\Builds\3…\Sources\CurrentVersion…\ProjectName\App\u Data\XmlDocument.xml’
(“访问被拒绝”。)

我不知道为什么会发生这种情况,因为它会为每个构建创建一个新的目录。我用谷歌搜索了这个问题并搜索了堆栈溢出,但我找到的唯一解决方案是删除XML文档文件(这违背了使用Web API帮助页的目的)。我如何解决这个问题

如果XML文件签入到TFS,那么当TFS将文件拿到构建服务器上的工作区时,它将具有与该文件关联的“只读属性”。现在,当构建生成新的XML文件时,它将无法覆盖旧的XML文件,因为它具有只读属性

解决办法是:
a) 使用生成脚本修改文件属性并使其为读写
b) 删除签入TFS的xml文件,以便build能够轻松生成xml

更新:如果您使用的是解决方案b,如果该文件是项目文件的一部分,请确保也从csproj文件中删除该文件

发表评论