私は最近、PDF を開いて印刷するための単純な C#.NET DLL を作成しました。私の仕事では、COM 経由で Oracle AutoVue (AutoVue.Application) を呼び出そうとする ERP システムを使用しています。私の dll は AutoVue の代わりに登録され、ERP システムとのより良い統合を提供します。
DLL を展開する必要がある 6 つのワークステーションがあり、そのうちの 1 つは私の開発マシンです。Regasm.exe を使用しようとしても無駄であることが判明しました (同じ例外) が、手動でレジストリ エントリを追加すると、6 台のワークステーションのうち 3 台で問題なく動作するようです。数か月前、このワークステーションを他のワークステーションと同じように動作させることができました。DLL を更新しようとすると、ワークステーションに例外があることがわかりました。
6つのワークステーションは、次のように機能しています (または機能していませ
ん
)
。
ERP アプリは例外をスローしません。次の VB.NET アプリを介して呼び出すと、「activex コンポーネントを作成できません」という例外がスローされます。
Dim Obj As Object
Sub Main()
Obj = CreateObject("AutoVue.Application")
'PRINT
'Obj.Execute("WINDOW SHOW")
'Obj.Execute("CHILD SHOW")
'Obj.Execute("FILE OPEN ""S:\****\****\****\****.PDF""")
'Obj.Execute("PAUSE 2000")
'Obj.Execute("PRINT")
'Obj.Execute("CHILD CLOSE")
'OPEN
Obj.Execute("Child NEW")
Obj.Execute("FILE OPEN ""S:\****\****\****\****.PDF""")
Obj.Execute("WINDOW CASCADE")
Obj.Execute("WINDOW SHOW")
Obj.Execute("Child SHOW")
''MsgBox("work?", MsgBoxStyle.OkOnly)
End Sub
以下は、他の 3 台のワークステーションで機能したレジストリ エントリです。
HKCU を使用すると、問題のあるワークステーションで同じ結果が得られました。
REGEDIT4
[HKEY_CLASSES_ROOT\AutoVue.Application]
@="AutoVue.Application"
[HKEY_CLASSES_ROOT\AutoVue.Application\CLSID]
@="{63A20B20-2357-101D-909B-0000C02E4A4A}"
[HKEY_CLASSES_ROOT\CLSID\{63A20B20-2357-101D-909B-0000C02E4A4A}]
@="AutoVue.Application"
[HKEY_CLASSES_ROOT\CLSID\{63A20B20-2357-101D-909B-0000C02E4A4A}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="AutoVue.Application"
"Assembly"="JobBOSS Printing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=88cbab76fd6d8db7"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Install/JobBOSS Printing DLL/JobBOSS Printing.dll"
[HKEY_CLASSES_ROOT\CLSID\{63A20B20-2357-101D-909B-0000C02E4A4A}\InprocServer32\1.0.0.0]
"Class"="AutoVue.Application"
"Assembly"="JobBOSS Printing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=88cbab76fd6d8db7"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Install/JobBOSS Printing DLL/JobBOSS Printing.dll"
[HKEY_CLASSES_ROOT\CLSID\{63A20B20-2357-101D-909B-0000C02E4A4A}\ProgId]
@="AutoVue.Application"
[HKEY_CLASSES_ROOT\CLSID\{63A20B20-2357-101D-909B-0000C02E4A4A}\Implemented Categories\{62C8FE65- 4EBB-45E7-B440-6E39B2CDBF29}]