1

私の構成は、Windows Server 2003 (管理者権限でログインしています)、office 2003、vtso ランタイム 2005 se です。アドインをインストールした後、すべてのレジストリ キーが正しい場所にあり、caspol.exe を使用してアセンブリに完全な信頼を与えました。私のアドインはアプリケーション レベルのアドインです。

regmon と filemon を実行して Excel を実行すると、Excel がアドインのレジストリ キーを読み取ることがわかりますが、filemon にロードされている AddinLoader.dll は表示されません。ランタイムが起動していないように見えるため、vsto からエラーは発生しません。msdn のほとんどすべての vsto doco、特にアプリケーション アドイン アーキテクチャと vsto ランタイムの概要、およびトピックに関する他のさまざまな記事とディスカッションを読みました。ランタイムがターミナル サーバーにロードされない理由はまだわかりません。

これを XP マシンにインストールすると、すべて正常に動作し、毎回アドインが読み込まれます。

vsto ランタイムの読み込みを妨げている原因を知っている人はいますか?

4

2 に答える 2

1

64 ビット Windows の Outlook 2007 でも同様の問題がありました。この登録キーを追加すると、機能しました:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Common\General] "EnableLocalMachineVSTO"=dword:00000001

Office 2007 を最新のサービス パック (現在 3 つ) に更新することを忘れないでください。

于 2012-01-26T13:31:25.013 に答える
0

結局、いくつかのレジストリキーが欠落していることに気づきました。今それが機能するようになりました。

同様の問題に対する答えを探している人は、2003VSTOアドインをすべてのユーザーにロードするために必要なレジストリキーは次のようになります。

[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

もちろん、GUIDとパスを適切な値に変更する必要があります。現在のユーザーではなくローカルマシンの下にアドインキーを配置することにより、Excelを初めて実行した後、インストールを修復しなくても、すべてのユーザーに対してアドインが機能します。また、これは、アドインが存在し、それをロードする必要があることをOfficeアプリケーションに通知するだけです。これは、システムでのアセンブリの信頼を与えるものではありません。これを行うには、Caspol.exeを使用する必要があります。これを行うには、SetSecurtyに関するmsdnの記事を読んでくださいhttp://msdn.microsoft.com/en-us/library/bb332052.aspx

于 2009-11-20T07:18:24.363 に答える