Hello,
I need fresh ideas.
I have a very hard question (more than one year haunting me).
I developed a COM-visible assembly in C#.
This assembly contains computing functions intended to be used in Excel-VBA.
I also created a setup program to install the assembly on user's machine.
It works perfectly on my development box where VS is installed.
When installed on many machines at home or by friends, it also worked perfectly.
Unfortunately, it doesn't work perfectly when installed on any machine at work.
This problem can be reproduced with a very small test assembly.
This Excel-VBA snippet works on all machine:
Function test(str As String)
Set obj = New netcom2vba.netcom2vba
test = obj.myLen(str)
End Function
While this snippet works everywhere but not at work:
Function test(str)
Set obj = New netcom2vba.netcom2vba
test = obj.myLen(str)
End Function
At work, it returns the following error message observed when debugging:
*** Class does not support Automation or does not support expected interface ***
This suggests clearly that at work something is missing.
The missing piece makes Excel-VBA unable to make the necessary type conversions automatically.
It works only when the type of the parameter needs no conversion.
You can't imagine the time I spent to try to find out the missing piece or any obstacle.
For example, I used procmon to observe file access and registry accesses, but I could not pinpoint something useful.
I also used the Fusion Logs Viewer to observe any assembly binding problems, but saw no useful difference between successful machines and failing machines.
How could you help me?
I am now short of ideas.
So, I need fresh ideas.
Ideas about where to look, questions to ask myself, tests to be done.
Maybe some reading you remember or some experience that may put me on track.
Thanks for your suggestions,
Michel
I need fresh ideas.
I have a very hard question (more than one year haunting me).
I developed a COM-visible assembly in C#.
This assembly contains computing functions intended to be used in Excel-VBA.
I also created a setup program to install the assembly on user's machine.
It works perfectly on my development box where VS is installed.
When installed on many machines at home or by friends, it also worked perfectly.
Unfortunately, it doesn't work perfectly when installed on any machine at work.
This problem can be reproduced with a very small test assembly.
This Excel-VBA snippet works on all machine:
Function test(str As String)
Set obj = New netcom2vba.netcom2vba
test = obj.myLen(str)
End Function
While this snippet works everywhere but not at work:
Function test(str)
Set obj = New netcom2vba.netcom2vba
test = obj.myLen(str)
End Function
At work, it returns the following error message observed when debugging:
*** Class does not support Automation or does not support expected interface ***
This suggests clearly that at work something is missing.
The missing piece makes Excel-VBA unable to make the necessary type conversions automatically.
It works only when the type of the parameter needs no conversion.
You can't imagine the time I spent to try to find out the missing piece or any obstacle.
For example, I used procmon to observe file access and registry accesses, but I could not pinpoint something useful.
I also used the Fusion Logs Viewer to observe any assembly binding problems, but saw no useful difference between successful machines and failing machines.
How could you help me?
I am now short of ideas.
So, I need fresh ideas.
Ideas about where to look, questions to ask myself, tests to be done.
Maybe some reading you remember or some experience that may put me on track.
Thanks for your suggestions,
Michel