2009-11-19 7 views
1

내 구성은 Windows 2003 (관리자 권한으로 로그인했습니다), office 2003, vtso runtime 2005 se입니다. 내 addin을 설치 한 후 모든 레지스트리 키가 올바른 위치에 있으며 caspol.exe를 사용하여 어셈블리에 fulltrust를 부여했습니다. 내 추가 기능은 응용 프로그램 수준의 추가 기능입니다.VSTO Excel 추가 기능이 터미널 서버에로드되지 않습니다.

regmon과 filemon을 실행하면서 Excel을 실행하면 Excel에서 addin의 레지스트리 키를 읽지 만 filemon에 AddinLoader.dll이로드되지 않습니다. 런타임이 시작된 것처럼 보이지 않기 때문에 vsto에서 오류가 발생하지 않습니다. 나는 msdn에서 거의 모든 vsto doco를 읽었습니다. 특히 애플리케이션 추가 기능 아키텍처 및 vsto 런타임 개요뿐만 아니라 다양한 다른 기사와 토픽에 대한 토론이있었습니다. 터미널 서버에 런타임이로드되지 않는 이유는 아직 알 수 없습니다.

XP 기계에 이것을 설치할 때 모든 것이 잘 작동하고 매번 addin이로드됩니다.

vsto 런타임이로드되지 못하게 할 수있는 사람은 누구입니까?

답변

0

전혀 신경 쓰지 마 결국 일부 레지스트리 키가 누락되었음을 발견했습니다. 지금 일하고있어. 물론

[HKEY_CLASSES_ROOT\CLSID\{MY-EXCEL-ADDIN-GUID}] 
@="MyExcelAddin -- an addin created with VSTO technology" 

[HKEY_CLASSES_ROOT\CLSID\{MY-EXCEL-ADDIN-GUID}\InprocServer32] 
@="Is vsdrvtEnvironmentString value type with "%CommonProgramFiles%\Microsoft Shared\VSTO\8.0\AddinLoader.dll" as its value" 
"ManifestLocation"="C:\\Path\\To\\MyExcelAddin\\" 
"ManifestName"="MyExcelAddin.dll.manifest" 
"ThreadingModel"="Both" 

[HKEY_CLASSES_ROOT\CLSID\{MY-EXCEL-ADDIN-GUID}\ProgID] 
@="MyExcelAddin" 

[HKEY_CLASSES_ROOT\CLSID\{MY-EXCEL-ADDIN-GUID}\Programmable] 

[HKEY_CLASSES_ROOT\CLSID\{MY-EXCEL-ADDIN-GUID}\VersionIndependentProgID] 
@="MyExcelAddin" 

[HKEY_CLASSES_ROOT\MyExcelAddin] 
@="" 

[HKEY_CLASSES_ROOT\MyExcelAddin\CLSID] 
@="{MY-EXCEL-ADDIN-GUID}" 

[HKEY_CURRENT_USER\Software\Classes\MyExcelAddin] 
@="" 

[HKEY_CURRENT_USER\Software\Classes\MyExcelAddin\CLSID] 
@="{MY-EXCEL-ADDIN-GUID}" 

[HKEY_CURRENT_USER\Software\Classes\CLSID\{MY-EXCEL-ADDIN-GUID}] 
@="MyExcelAddin -- an addin created with VSTO technology" 

[HKEY_CURRENT_USER\Software\Classes\CLSID\{MY-EXCEL-ADDIN-GUID}\InprocServer32] 
"ThreadingModel"="Both" 
@="Is vsdrvtEnvironmentString value type with "%CommonProgramFiles%\Microsoft Shared\VSTO\8.0\AddinLoader.dll" as its value" 
"ManifestLocation"="C:\\Path\\To\\MyExcelAddin\\" 
"ManifestName"="MyExcelAddin.dll.manifest" 

[HKEY_CURRENT_USER\Software\Classes\CLSID\{MY-EXCEL-ADDIN-GUID}\ProgID] 
@="MyExcelAddin" 

[HKEY_CURRENT_USER\Software\Classes\CLSID\{MY-EXCEL-ADDIN-GUID}\Programmable] 

[HKEY_CURRENT_USER\Software\Classes\CLSID\{MY-EXCEL-ADDIN-GUID}\VersionIndependentProgID] 
@="MyExcelAddin" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Excel\Addins\MyExcelAddin] 
"Description"="MyExcelAddin -- an addin created with VSTO technology" 
"LoadBehavior"=dword:00000003 
"FriendlyName"="MyExcelAddin" 
"CommandLineSafe"=dword:00000001 

당신이 필요합니다 :

유사한 문제에 대한 답을 찾고있는 사람들을위한

다음 레지스트리 키를 사용하면 다음과 비슷한 모습이 될 것입니다 모든 사용자에 대해 2003 VSTO 추가 기능로드를 만들 필요가 GUID 및 경로를 적절한 값으로 변경합니다. Addin 키를 현재 사용자가 아닌 로컬 시스템에두면 처음 실행할 때마다 Excel을 다시 설치하지 않고도 모든 사용자가 사용할 수 있습니다. 또한 이것은 단지 사무실 응용 프로그램이 addin이 있다는 것을 알게하고로드하려고 시도해야합니다. 이것은 어셈블리 신뢰를 시스템에 제공하지 않으므로 Caspol.exe를 사용해야합니다. 이렇게하려면 SetSecurty에 대한 msdn 기사를 읽어보십시오. http://msdn.microsoft.com/en-us/library/bb332052.aspx.

1

64 비트 Windows에서 Outlook 2007과 비슷한 문제가있었습니다. 나는이 등록 키를 추가하고 일했다 :

[HKEY_LOCAL_MACHINE \ 소프트웨어 \ 마이크로 소프트 \ 사무소 \ 12.0 \ 공통 \ 일반 \ Wow6432Node] 는 "EnableLocalMachineVSTO"= DWORD를 : 00000001

명심 Office를 업데이트 할 수 2007 년 최신 서비스 팩 (현재 3 개)

+1

혼란스럽지 않습니까? 32 비트 OS/32 비트 사무실에서는 HKLM \ Software \ Microsoft \ Office \ 12.0 \ Common \ General이 필요합니다. 64 비트 OS/64 비트 오피스의 경우에도 똑같습니다. 그러나 64 비트 OS/32 비트 Office의 경우 레이는 정확합니다 - 레지스트리 리디렉션 때문에 – MJB

관련 문제