2011-09-16 5 views
2

Hudson CI를 통해 Visual Studio 패키지 프로젝트를 작성하려고합니다. 이것은 Visual Studio 2010 프로젝트입니다. 프로젝트는 내 개발자 박스에서 제대로 빌드되지만 어떤 이유로 든 Hudson에서 빌드 할 때만 다음 오류가 발생합니다.VSIX 매니페스트 파일을 읽는 중 오류가 발생했습니다 ... 지정한 파일을 찾을 수 없습니다.

C : \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ VSSDK \ Microsoft.VsSDK.targets (378,5) : 오류 : VSIX 매니페스트 파일 "obj \ Release \ extension.vsixmanifest"를 읽는 동안 오류가 발생했습니다. 시스템이 지정된 파일을 찾을 수 없습니다. (HRESULT에서 예외 : 0x80070002가) [C : \ 허드슨 \ 작업 공간 \ MyProject_Daily_Compilation \ 소스 \ MyProject.VisualStudio \ MyProject.VisualStudio.csproj]

나는 파일이 다음 위치에 디스크에 존재하는 것을 확인했습니다 :

C : \ Hudson \ workspace \ MyProject_Daily_Compilation \ Source \ MyProject.VisualStudio \ obj \ Release \ extension.vsixmanifest

이 문제의 원인은 무엇입니까?

답변

2

저는 허드슨을 서비스로 생각하고 있습니다. 그렇다면 "0x80070002 - 시스템이 지정된 파일을 찾을 수 없습니다"는 사용자가 hudson을 실행하는 데 사용 중이므로 액세스 권한이 없기 때문일 수 있습니다.

"빠른 로그온"사용자는 Hudson 서비스가 일반 계정으로 변경됩니다.

+0

허드슨을위한 새로운 컴퓨터 관리자 계정을 생성하고이를 허드슨 서비스의 로그온 사용자로 사용하여 실제로 해결했습니다. 그렇지만 이것은 거의 아이디어입니다. –

+0

누구나 * 왜 이런 일이 일어나고 있는지 말할 수 있습니까? TeamCity에서 거의 동일한 경험. –

8

빌드를 실행하는 사용자에게 관리 권한이없는 경우 이러한 오류가 발생할 수 있습니다.

1) 관리자 권한으로 빌드를 (서버를 구축) 실행

그래서이 개 솔루션이 있습니다.

또는 당신이 정말로 사용자가 변경할 수없는 경우 빌드 서버가

2에서 실행)와 실제로 빌드 서버 자체에 VS 확장을 배포 할 필요가 없습니다은에 DeployExtension 속성을 설정하여 * .csproj 파일을 false로 설정하십시오.

Microsoft.VsSDK.targets 사실

<DeployExtension Condition="'$(DeployExtension)' == ''">true</DeployExtension> 

기본적으로이 속성을 설정하지만 당신은 로컬로 확장을 배포 할 필요가없는 경우 (오히려 얻기 위해 선호하는 것 * 당신에게 할 수 내장 된 번들은 .vsix 안전하게 배포 경로를 얻을 수있는 시도가 빌드에서 어떤 점에서 실패와 성공 VSIX 패키지 생성을 방해하기 때문에 원래 오류는 기본적으로 무슨 일이 일어나고

<PropertyGroup> 
    <DeployExtension>false</DeployExtension> 
</PropertyGroup> 

을 넣어. false로 빌드 속성을 설정하려고 시도하지 않습니다 확장 프로그램을 로컬에 배포하십시오. (하지만 유효한 * .vsix가 생성됩니다.)

+1

실제 프로젝트를 편집 할 필요가 없습니다. 그것은 프로젝트의 속성입니다. 그러나 이것은 TeamCity로 내 문제를 해결했습니다. –

관련 문제