使用XML文档部署Web API项目时,构建服务器上的"访问被拒绝"

may*_*lle 14 xml msbuild visual-studio asp.net-web-api asp.net-web-api-helppages

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

但是,当我签入时,我在构建服务器上收到以下错误:

CSC:生成XML文档文件'c:\ Builds\3 ...\Sources\CurrentVersion ...\ProjectName\App_Data\XmlDocument.xml'时出错('访问被拒绝.')

我不确定为什么会这样,因为它无论如何都会为每个构建创建一个新目录.我搜索了这个问题并搜索了Stack Overflow,但我找到的唯一解决方案是删除XML文档文件(这违背了使用Web API帮助页面的目的).我该如何解决这个问题?

Isa*_*110 17

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

解决方案是:a)使用构建脚本修改文件属性并使其成为读写b)删除签入到TFS的xml文件,以便构建能够轻松生成XML.

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


Ale*_*ild 5

从源代码管理中删除文件没有为我修复,Team Server仍然试图访问它.

我能够通过构建定义中的Cloaking App_Data来解决它.