2012-02-16 3 views
8

사용자가 엑셀 스프레드 시트에서 특정 정보를 가져올 수있는 기능이 추가되었습니다 (모든 사용자는 이미 Office 2007을 사용하고있을 것입니다).빌드 컴퓨터에 Microsoft Office 2007이 설치되어 있어야합니까?

개발 컴퓨터에는 Office 2007이 있고 개발자는 Microsoft.Office.Interop.Excel에 대한 참조를 추가했습니다. 모두 좋았습니다.

그러나 빌드 컴퓨터에는 Office 2007이 설치되어 있지 않습니다. 빌드 컴퓨터에서 빌드를 실행하면 빌드 오류가 발생합니다. "Office"유형 또는 네임 스페이스 이름이 'Microsoft'네임 스페이스에 없습니다 (어셈블리 참조가 누락 되었습니까?) "

I Office 2007 Primary Interop Assemblies redistributable을 다운로드했습니다. 그러나 빌드 머신에서 msi를 실행하면 "이 제품을 설치하기 전에 Microsoft Office 2007을 설치하십시오."라는 메시지가 나타납니다.

빌드 컴퓨터에 Office 2007을 설치해야합니까? 이것 주위에 다른 방법이 있습니까?

+1

Microsoft.Office.Interop.Excel이 소스 코드에 체크인되어 있고 VS 프로젝트가 GAC가 아닌 원본 트리에서 참조하고 있습니까? –

+2

@DavidePiras - 그게 답이었습니다! 일단 참조를 GAC에서 소스 트리로 변경하면 빌드가 작동합니다. .net 탭을 사용하지 않고 프로젝트에서 파일을 참조하지만, 디스크에서 찾아보기 및 선택하십시오. 답변으로 제안을 추가하면 받아 들일 것입니다. 감사! –

답변

11

Microsoft.Office.Interop.Excel 어셈블리가 소스 코드로 체크인되어 있고 VS 프로젝트가 소스 트리에서 참조하고 있지 않고 GAC이 아니라는 것을 확인하십시오.

그런 다음에는 반드시 MS Office를 빌드 컴퓨터에 설치할 필요는 없지만 응용 프로그램을 실행하려면 Microsoft Office가 필요합니다.

-1

예, 앱을 실행하려는 모든 컴퓨터에 Excel이 설치되어 있어야합니다.

+2

하지만 빌드 머신에서 내 앱을 실행하고 싶지는 않습니다. 빌드 만하고 싶습니다. –

+1

아니요, Excel을 설치할 필요가 없습니다. 위의 DavidePiras 응답을 참조하십시오. –

1

모든 DLL 종속성을 확인하려면 devs에게 문의하십시오. 이것은 "내 컴퓨터에서 작동합니다"라는 명확한 경우입니다. 개발자가 어디서 작동하지 않는지에 대한 개발자를 끌어 올 필요가 있으며 "의존성 부서"에 설명서가 없다는 것을 지적합니다. 소스 코드에 액세스 할 수 있거나 어셈블리에서 ILSpy를 실행할 수있는 경우이를 수동으로 추적 할 수 있습니다.

그냥 Excel을 설치하는 것이 안전하지만, 이것은 슬레지 해머로 문제가되는 것입니다. devs는 실제로 필요한 것이 무엇인지 알아야합니다 .....

관련 문제