Wpis z mikrobloga

Mam problem z połączeniem po COM z AutoCADem. Oto prosty skrypt PowerShell:

[Reflection.Assembly]::LoadFile("C:\Program Files\Autodesk\AutoCAD 2015\Autodesk.AutoCAD.Interop.dll")
[Reflection.Assembly]::LoadWithPartialName("Autodesk.AutoCAD.Interop.Common")
$acad_app = New-Object -ComObject Autodesk.AutoCAD.Interop.AcadApplication

Niestety zarówno w 64 jak i 32bitowej wersji PowerShella dostaję błąd:

New-Object : Pobranie fabryki klasy COM dla składnika o identyfikatorze CLSID {00000000-0000-0000-0000-0000
00000000} nie powiodło się z powodu następującego błędu: 80040154 Klasa niezarejestrowana. (Wyjątek od HRES
ULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
At line:4 char:13
+ $acad_app = New-Object -ComObject Autodesk.AutoCAD.Interop.AcadApplic ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [New-Object], COMException
+ FullyQualifiedErrorId : NoCOMClassIdentified,Microsoft.PowerShell.Commands.NewObjectCommand

Ktoś wie jak sobie z tym poradzić?
#powershell #autocad #dotnet
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Belic: Tylko AutoCAD jest na pewno 64bit. Uruchamiałem x86 tylko dlatego, żeby wykluczyć, że to problem z architekturą. Bo to chyba nie możliwe, żeby aplikacja x64 miała 32-bitowy COM?
I wygląda na to, że to PowerShell w ogóle nie ładuje assembly, bo nie jest w stanie pobrać CLSID.
  • Odpowiedz