views:

21

answers:

1

Hi,

I have a legacy delphi dll. I created a class library that imports the dll and registered it for COM interop. I have an experimental Silvelight 4 application that calls the COM object and it works. The problem is: how do I deploy the COM component (and dependent delphi dll) and register the COM object on a client machine?

+1  A: 

The COM component will need to be installed explicitly on the client machine. The standard Silverlight deployment does not (by design) support installation of COM components.

Typically, the COM interop in Silverlight is really intended to work with System COM routines that already exist on the system - if you're doing native code interop with native code deployment, normally, you'd just use a full desktop application developed with WPF.

Reed Copsey
Thanks. Only a small number of users need the COM object functionality. I was hoping to make the major part of the system as cross platform as possible (silverlight) and only provide access to the legacy code to specific users.
Wouter Roux
@Wouter: You can always try to create the COM object, and if it fails, you know that component doesn't exist... That way, users who need the functionality can install the component in advance, and other user don't need to bother.
Reed Copsey
@Reed: Thanks. Sounds like a feasible solution. I was planning to install the component at the point when users request the functionality and the COM object creation fails. I will look for examples of how to accomplish this.
Wouter Roux

related questions