Automation error: "the specified module could not be found"

P

Pau Larsen

Hi,

I am trying to automat Word 2003 SP1 from a C# application.

When instantiating Word I am getting an error saying: “the specified module
could not be found".

I have added the Microsoft Word Object Library as a reference for my project
and set the following include statement: “using Word =
Microsoft.Office.Interop.Word;â€.

I have tried two different approaches to get the Word instance. Both found
on the internet from working examples:

From http://blogs.msdn.com/duncanma/archive/2003/05/11/6862.aspx:
-------------------------
Word.ApplicationClass oWord = new Word.ApplicationClass();
-------------------------

From http://support.microsoft.com/kb/316384/EN-US/:
-------------------------
Word._Application oWord;
oWord = new Word.Application();
-------------------------

Everything compiles fine but in both cases the error occurs in the line of
code trying to create the Word instance.

I have been searching the web like crazy without finding any useful info. I
have tried to lower my macro security settings but that did not change a
thing (I did not really expect that anyway).

Any suggestions for what to try are very welcome.

/Pau Larsen
 
P

Pau Larsen

I can now add some more information to my list of experiences:

I have tried the same approach in both C# and VB.NET and I have tried to
compile with the .NET 1.1 SP1 framework using VS.NET 2003 and with the .NET
2.0 beta framework using VS.NET 2005 beta – same result everytime.

I have reinstalled Microsoft scripting components without that solving
anything after reading this
http://www.experts-exchange.com/Pro...nguages/Visual_Basic/Q_20970348.html#10938546

Then I found this article suggesting the use of VB.NET “CreateObject†to
initialize Word
http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20910583.html

It focused on the second parameter in the “CreateObject†call being set to
“localhost†as the solution.

I managed to use the same approach in C# using the following code:
-----------------
using Word = Microsoft.Office.Interop.Word;

….

Word.ApplicationClass word;
System.Type t = Type.GetTypeFromProgID("Word.Application", "localhost");
word = (Word.ApplicationClass)(Activator.CreateInstance(t));
----------------

I am partly happy now as I can move on. But the million dollar question
still remains unanswered in all the articles I have found. Why is the normal
way of initializing the Word instance not working on the machines I have
tested on? I am considering it “the normal way†as all code examples I have
found is using that.

I anyone have suggestions I will gladly test them?

/Pau Larsen
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top