views:

9628

answers:

7

Our ClickOnce application is reporting "Unable to install or run the application. The application requires stdole Version 7.0.3300.0 in the GAC" when one user tries to run the application.

It's interesting to note that the GAC (c:\windows\asssembly) does not have stdole installed in it. Any ideas how to get it there?

We are using .NET 3.5 and it has been installed on this computer.

+4  A: 

Try going to the Publish tab in the project properties and then select the Application Files button. Then set the following properties:

  • File Name of stdole.dll
  • Publish status to Include
  • Download Group to Required

After that you need to republish your application.

If the reference has CopyLocal=true, then the reference will be published with the application. If the reference has CopyLocal=false then the reference will be marked as a prerequisite. This means the assembly must be installed in the client's GAC before the ClickOnce application will install.

There are some assemblies that are installed into the GAC because of the Visual Studio install, not the .NET Framework install. This could be your situation.

Darin Dimitrov
This scenario did not work for me. I now receive the error "Application Validation did not succeed. Unable to continue." After clicking the "details" button, I get "Strong name signature not valid for this assembly stdole.dll". I'm assuming this is because it's a .NET framework Dll.
proudgeekdad
A: 

Hi,

I had the same problem with a click once deployment.

I solved the problem by going to the 'Publish' tab in the project properties and then selecting the 'Application Files' button.

I then selected the options: 'File Name' of 'stdole.dll' 'Publish status' to 'Include' and 'Download Group' to 'Required'.

This fixed my problem when I re-published.

I hope this help you :D

rpf
+4  A: 

So it turns out that the .NET files were copied to c:\Program Files\Microsoft.NET\Primary Interop Assemblies\, however, they were never registered in the GAC.

I ended up manually dragging the files in c:\Program Files\Microsoft.NET\Primary Interop Assemblies to c:\windows\assembly and the application worked on that problem machine. you could also do this programatically with gacutil.

So it seems that something happened to .NET during the install, but this seems to correct the problem. Hope that helps someone else out!

proudgeekdad
A: 

Well, you can't install to the GAC using ClickOnce. This is documented in this MSDN article.

Magnus Johansson
Magnus, thanks for the article. However, the install of .NET was bad and the core .NET Dlls were not in the GAC as they should have been. If the .NET install is bad, ClickOnce will not work.
proudgeekdad
Ok, cannot install stdole.dll in GAC using ClickONce. but any installer for install stdole.dll ?? thx
alhambraeidos
A: 

Check if you're really using EnvDTE reference. If not, remove it and recompile.

A: 

Interesting, I didn't have any references to stdole in my project, but I had a user still receiving the error. I had to add the reference, then change the setting to include. Hopefully that will work.

Mike
A: 

mae mae very thanks i really need this information...

rkrdo