Solved

The application requires that assembly Microsoft.Vbe.Interop Version 14.0.0.0 be installed in the GAC

Posted on 2014-04-10
6
4,096 Views
Last Modified: 2014-04-25
I have scoured the internet.

I wrote a simple Winforms application that has worked perfectly for 2 years.  I just made some updates and I am getting the "Application requires that assembly Microsoft.Vbe.Interop Version 14.0.0.0 be installed in the GAC"  

The remote PCs....do not have Office on them.  I am using a access database, but they did not have access.  I have not upgraded anything on my machine and still using the same version as I did when I wrote the original code.  

I wrote the app in VS2005.  I did upgrade to VS 2010 and that is where I got the problem.  I went back to old machine and try to make the simple bug changes on 2005 and republish and still get the error on the remote machines.

I have looked at quite a few things...but can't figure this out.
0
Comment
Question by:bobnields
  • 2
  • 2
  • 2
6 Comments
 
LVL 35

Expert Comment

by:Bembi
ID: 39992672
I have the feeling, that your old application installed an assembly and while you installed VS 2010, the reference for your application is updated to a newer version. Now you try to run the solution and the client can not find the newer assembyly in the GAL.

So either you have to change your code back to the old assembly (the reference to the assembly in the source code), which was used before and which is possibly installed on the clients, or your have to distribute the new assembly to your clients.
0
 

Author Comment

by:bobnields
ID: 39992745
However, I did not install VS2010 on one of my machines.  It still has just VS2005.   I agree with what you are saying on a newer machine.  But I thought just to get through this, I would go back to my old machine and just create a new published load there.  But I still got the message.  And that definitely confused me.
0
 
LVL 35

Expert Comment

by:Bembi
ID: 39992875
Would lead me to roaming profiles? VS usually puts everything into the profile by default. So if your project is stored there, you may have overwritten some settings in the project by VS 2010-

But nevertheless just check inside your project, to which assemblies you reference there and then check, if these referenced assemblies are present on your clients.
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 40

Accepted Solution

by:
Jacques Bourgeois (James Burger) earned 500 total points
ID: 39993183
The Microsoft.Vbe.Interop is installed on users computers when they install Office.

With older versions of Visual Studio, such as 2005, it was required on the user computer. Since you do not have the right to redistribute it, users needed to have Office installed.

In newer versions of Visual Studio (starting in 2010), you can embed the portions of the interop that you use into your application itself. This way it does not need to be installed on the user's computer.

However, when you migrate an application from an older version of Visual Studio to a newer one, the switch to the new mechanism is not made, so you still need the interop on the user's computers.

In order to correct the situation, go to your References window, click on each of the references for Office and Office applications, and while the reference in selected, look a the Properties window and set the Embed Interop Types properties to True.
0
 

Author Comment

by:bobnields
ID: 39994108
Thanks I will try.

The odd thing is that this worked forever.  It just now does not work.  

The client computers never had office installed on them and they still don't.
0
 
LVL 40
ID: 39994233
Another thing, while rereading. You are dealing with Access.

Is it possible that you changed the compilation target to 64-bit? This causes problems with a lot of stuff, and Access is one of these. You should usually target x86 when dealing with Access.
0

Featured Post

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now