2012-09-26 4 views
2

.Net 4.0 (x86) Office 2007 (32 비트) Outlook 플러그인을 만들었습니다. 플러그인을 만드는 것이 쉬운 부분이었고 설치 프로그램을 조금 더 지루하게 만들었습니다..Net 4.0 Office 2007 플러그인 MSI 설치

VSTO에 대한 몇 가지 연구와이를 위해 MSI를 만드는 방법 (난 다른 검증 된 개발자 2 명)은 "Deploying a Visual Studio 2010 Tools for Office Solution Using Windows Installer"을 수동으로 확인한 후 "Deploying a VSTO 2010 solution for Office 2007/2010 using Windows Installer"을 수동으로 확인했습니다. 나는 또한 "How do you assign the Assembly Location of an Excel VSTO Installation?" 등의 테스팅과 같은 연구를했는데, 모든 것을 기억하지 못합니다.

모든 필수 종속성이 처리되었으며 .vsto 파일을 수동으로 두 번 클릭하면 성공적으로 설치되고 사용자가 사용할 수 있습니다. (프로세스 모니터에서 보면 SideBySide 설치를 사용하는 것으로 보이지만 Microsoft 지침에 따라 동일한 레지스트리 키를 사용할 수 없습니다.)

그러나 MSI 설치는 여전히 작동하지 않습니다. 그것은 잘 설치하고 레지스트리 키를 예상대로 등록하지만 Outlook 시작시 플러그인이로드되지 않습니다.

VSTO registry keys은 설명서에 따라 올바르게 작성되었습니다. 플러그인은 Outlook (트러스트 센터)에 등록 된 것으로 보이며 수동으로 활성화 할 수 있습니다. 그러나 수동으로 활성화 한 후에 Outlook을 다시 시작할 때 LoadBehavior 레지스트리 키가 3 (로드 됨, 시작시로드)에서 0 (언로드 됨, 자동으로로드되지 않음)으로 변경됩니다. 어떤 시점에서도 플러그인이 등록됩니다 (툴바 + 버튼을 등록해야합니다).

MSI는 어떻게 작동합니까?

왜 가이드가 작동하지 않습니까? (.Net 4.0의 변경 사항? Office 2007과 호환되지 않음? 그냥 일반 오류가 있습니까?)

실제로 잘못되어있는 것을 어떻게 디버깅 할 수 있습니까? 이벤트 로그에서 유용한 정보를 찾을 수 없습니다.

(PS! 수동 설치를 선택할 수 없습니다. 파일이 자동으로 컴퓨터의 큰 집합에 배포해야합니다.)

+0

** Manifest ** 키의 값은 무엇입니까? 이 키를 추가 할 레지스트리의 정확한 경로를 공유하십시오. 'outlook.exe' 프로세스에 디버거를 붙여서 어떤 예외가 발생하는지 확인해야합니다. LoadBehavior는 플러그인이 충돌 할 경우 ** 3 ** (* Loaded *)에서 ** 0 ** (* Unloaded *)로 변경됩니다. – SliverNinja

+0

매니페스트 키가 포함되어 있습니다 :'C : \ Program Files (x86) \ Company \ Company.OutlookPlugin \ Company.OutlookPlugin.Outlook2007Plugin.vsto | vstolocal'. Outlook에 Visual Studio를 연결해도 관리되는 코드 예외는 공개되지 않습니다. –

+0

매니페스트 키가 괜찮아 보이는가 -이 매니페스트 키를 레지스트리 (* 레지스트리 하이브 *)에 어디에 두는가? – SliverNinja

답변

0

나는 내가 VSTO를 설치하는 침묵 플래그 vstoinstaller을 실행 NSIS 설치 프로그램을 만들기까지했다. 또한 유효한 인증서를 사용하여 바이너리에 서명하고 vstoinstall이 -300 오류 코드를 무시하기 전에 설치 단계에서 신뢰할 수있는 저장소에 인증서를 추가합니다 (프로그래밍 방식으로).

+0

그냥 sidenote, 우리는 나중에 모든 .. VSTO 쓰레기를 처리 http://www.add-in-express.com/를 사용하여 끝났다. 잘됐다. –