Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
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
Medium Priority
?
5,354 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 40

Accepted Solution

by:
Jacques Bourgeois (James Burger) earned 2000 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

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article will show how Aten was able to supply easy management and control for Artear's video walls and wide range display configurations of their newsroom.
Article by: evilrix
Looking for a way to avoid searching through large data sets for data that doesn't exist? A Bloom Filter might be what you need. This data structure is a probabilistic filter that allows you to avoid unnecessary searches when you know the data defin…
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
Progress
Suggested Courses

604 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