문제

웹 API 프로젝트의 웹 API 도움말 페이지를 사용하여 XML 설명서를 생성하려면 프로젝트 속성의 "빌드"섹션에서 "XML 문서 파일"옵션을 확인해야했습니다.이것은 내가 로컬로 빌드 할 때 설명서를 올바르게 생성합니다.

그러나 체크인하면 빌드 서버에서 다음 오류가 발생합니다.

CSC : XML 문서 파일 생성 오류 'C : \ Builds \ 3 ... \ 소스 \ currentVersion ... \ projectname \ app_data \ xmldocument.xml' ( '액세스가 거부됨')

이는이 이유가 있는지 모르겠습니다. 어쨌든 각 빌드에 대한 새 디렉토리를 만듭니다.나는이 문제를 훑어보고 스택 오버플로를 수색했지만, 내가 발견 한 유일한 솔루션은 XML 문서 파일 (웹 API 도움말 페이지 사용 목적을 패배시킨다)을 제거하는 것이 었습니다.어떻게 해결할 수 있습니까?

도움이 되었습니까?

해결책

XML 파일이 TFS에 체크인 된 경우 TFS가 빌드 서버의 작업 공간에 파일을 가져 오면 파일과 관련된 "읽기 전용 속성"이 있습니다.이제 빌드가 새 XML 파일을 생성하면 읽기 전용 속성이 있으므로 이전 XML 파일을 덮어 쓸 수 없습니다.

해결책은 다음과 같습니다. a) 빌드 스크립트를 사용하여 파일 속성을 수정하고 읽기 - 쓰기 만듭니다. b) XML 파일을 TFS로 제거하여 빌드가 XML을 쉽게 생성 할 수 있도록합니다.

update : 솔루션 B를 사용하는 경우 파일이 PATTER 파일의 일부인 경우 CSPROJ 파일에서 파일을 제거하는지 확인하십시오.

다른 팁

소스 컨트롤에서 파일을 제거했는데, 팀 서버가 여전히 액세스하려고 시도했습니다.

빌드 정의에 app_data를 클로킹하여 해결할 수있었습니다.

각 빌드에 대해 새 디렉토리를 만들지 만이 디렉토리는 빌드 출력만을위한 것입니다. 해당 디렉토리에서 빌드가 실제로 발생하지 않으며 서버의 TFS 작업 공간에서 발생하고 빌드 출력 GET가 새 디렉토리에 복사됩니다. 액세스 거부 오류는 빌드 서버 작업 공간에서 TFS에서 액세스 할 때만 읽는 파일에서만 읽을 수 있으므로 빌드 중에 파일을 다시 생성 할 수 없습니다.

XML 문서 출력 경로를 bin 폴더로 변경 하여이 문제를 해결했습니다.

그래서 프로젝트 -> 빌드 -> 출력 출력 경로 : bin \ XML 문서 파일 : bin / xmldocument.xml

프로젝트 -> 빌드, 구성 드롭 다운 메뉴 -> 모든 구성 선택에 대한 모든 빌드 구성에 대해이 작업을 수행합니다.

프로젝트 -> 영역 / 헬프 페이지 / app_start / helpPageConfig.cs 변경 Config.setDocumentationProvider "~ / bin / xmldocument.xml"

모든 빌드

에 대해 다시 생성되기 때문에 소스 컨트롤에서 XMLDocument.xml 파일을 제거하는 것을 잊지 마십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top