Hi
I created an installer for my program using kernelcad, but I am having some problems with installaller. Normally I get “KerCADni.ocx failed to register. HRESULT -2147024769. Contact your support personnel.” message
Can anybody suggest anything?
Regards
Ibi
kerncadne is not registering error in application installer
Re: kerncadne is not registering error in application instal
Hi Ibi
I had same problem with another installer. The problem was that when I added a .NET application to a VS setup and deployment project Visual Studio adds automatically KernelCADne.ocx and two wrapper dlls because application depends on them. In addition to that KernelCADne.ocx was installed by the runtime. So there was a duplication. The error comes from the automatically added ocx.
My solution was to delete the automatically added .ocx from the setup project. Visual Studio does not allow doing it directly. So instead of delete I selected the file and in properties selected “Exclude” (I believe it was)
Regards
Nick
I had same problem with another installer. The problem was that when I added a .NET application to a VS setup and deployment project Visual Studio adds automatically KernelCADne.ocx and two wrapper dlls because application depends on them. In addition to that KernelCADne.ocx was installed by the runtime. So there was a duplication. The error comes from the automatically added ocx.
My solution was to delete the automatically added .ocx from the setup project. Visual Studio does not allow doing it directly. So instead of delete I selected the file and in properties selected “Exclude” (I believe it was)
Regards
Nick
Re: kerncadne is not registering error in application instal
Another common problem is that your installer might be missing some dlls or supporting runtime files which KerCADne.ocx depends on so it cannot load to register.
The best way to make sure everything is installed is to run KernelCAD_Runtime_*_*.exe as a prerequisite for the installation.
If you do not want to run the prerequisite you can do everything yourself too. See the Redistribution topic on top in the installed help you can also check what files KernelCAD_Runtime_*_*.exe is installing
Nick
The best way to make sure everything is installed is to run KernelCAD_Runtime_*_*.exe as a prerequisite for the installation.
If you do not want to run the prerequisite you can do everything yourself too. See the Redistribution topic on top in the installed help you can also check what files KernelCAD_Runtime_*_*.exe is installing
Nick
Re: kerncadne is not registering error in application instal
Hi Nick
would you tell me what are those wrapper dlls? Are they part of the explorer? in my case kernelcad works the only element that does not is the explorer. This means the OCX is registered, but may be, i need to re-build the explorer.
my bestr egards
ibi
would you tell me what are those wrapper dlls? Are they part of the explorer? in my case kernelcad works the only element that does not is the explorer. This means the OCX is registered, but may be, i need to re-build the explorer.
my bestr egards
ibi
Re: kerncadne is not registering error in application instal
Hi Ibi
KernelCAD is a native 32 bit COM component from .NET point of view. .NET communicates with COM components using some wrappers to convert incompatible types. This is what contained in the dlls normally called AxInterop.KernCADnet.dll and Interop.KernCADnet.dll. They are thin .NET wrappers for the type library inside KerCADne.ocx
They are generated or updated each time Visual Studio opens a project depending on KerCADne.ocx. Contents of these libraries (after conversion to .NET) appear in the Object browser. AxInterop.KernCADnet.dll is mostly concern with Microsoft’s core COM types. Interop.KernCADnet.dll contains interfaces and types implemented in KernelCAD.
The dlls should be included in installer which uses KerCADne.ocx. This is what Visual Studio does automatically in Setup and Deployment projects. So it is better just leaving them there.
I do not think the problem with your customisation of Explorer is related to this. When explorer option is selected in context menu KerCADne.ocx loads at runtime kcstb32.dll, which is expected to be located in the same folder, and calls an API inside like LaunchExplorer(IModel model, IView view, INotify notify). LaunchExplorer () in turn loads KCEdNnt32.dll and connects the interfaces for communication.
So the explorer is sort of a plug-in. If any dll is not present nothing happens quietly. The explorer project included in KernelCAD has same target KCEdNnt32.dll. If you redistribute your modified KCEdNnt32.dll instead the original one everything should work same way.
If everything works in development environment I would try to install your application and try to debug the explorer by changing the target temporary like .....\MyInstallationDirectory\ KCEdNnt32.dll
Try starting this with the initial explorer code. If it does not work it is our problem. If it does, add small modifications one by one to transform the code to your version. The first failing change will give you/us lots of information.
For completeness: The default KernelCAD explorer implementation has little different code for various reasons. So on screen behaviour is little different, but both versions are supported. We hope to unify this in the next version.
Regards
Nick
KernelCAD is a native 32 bit COM component from .NET point of view. .NET communicates with COM components using some wrappers to convert incompatible types. This is what contained in the dlls normally called AxInterop.KernCADnet.dll and Interop.KernCADnet.dll. They are thin .NET wrappers for the type library inside KerCADne.ocx
They are generated or updated each time Visual Studio opens a project depending on KerCADne.ocx. Contents of these libraries (after conversion to .NET) appear in the Object browser. AxInterop.KernCADnet.dll is mostly concern with Microsoft’s core COM types. Interop.KernCADnet.dll contains interfaces and types implemented in KernelCAD.
The dlls should be included in installer which uses KerCADne.ocx. This is what Visual Studio does automatically in Setup and Deployment projects. So it is better just leaving them there.
I do not think the problem with your customisation of Explorer is related to this. When explorer option is selected in context menu KerCADne.ocx loads at runtime kcstb32.dll, which is expected to be located in the same folder, and calls an API inside like LaunchExplorer(IModel model, IView view, INotify notify). LaunchExplorer () in turn loads KCEdNnt32.dll and connects the interfaces for communication.
So the explorer is sort of a plug-in. If any dll is not present nothing happens quietly. The explorer project included in KernelCAD has same target KCEdNnt32.dll. If you redistribute your modified KCEdNnt32.dll instead the original one everything should work same way.
If everything works in development environment I would try to install your application and try to debug the explorer by changing the target temporary like .....\MyInstallationDirectory\ KCEdNnt32.dll
Try starting this with the initial explorer code. If it does not work it is our problem. If it does, add small modifications one by one to transform the code to your version. The first failing change will give you/us lots of information.
For completeness: The default KernelCAD explorer implementation has little different code for various reasons. So on screen behaviour is little different, but both versions are supported. We hope to unify this in the next version.
Regards
Nick