Let me start by saying that I am no great shakes as a developer!
Anyway, I have written a dinky little application that is used at the place where I work (I'm not employed as a developer....)
The application is deployed via Clickonce to one of the servers here. All users have a shortcut to the application on their
desktops. The other day I made some changes to the application for the first time in a long time. I republished it, and when
users tried to start it they got a message saying :
unable to install or run the application. the application requires that assembly microsoft.office.interop.outlookviewctl
version 22.214.171.124 be installed in the global assembly cache (GAC) first
I assume this is because when I first developed the application I had Office 2003 on my PC, but before I started changing the
application I had upgraded to Office 2007.
So my questions are :
1) Seeing as how all the other users here are still on Office 2003, I assume that the microsoft.office.interop.outlookviewctl
is not really needed because it is an Office 2007 control. Is this correct? If I somehow manage to work out how to distribute
microsoft.office.interop.outlookviewctl with my application, am I going to break all the Office 2003 installations?
2) I removed the reference to this control from my VB project by going into Project Properties/references, highlighting it and
then clicking Remove. I then republished the application. After I did this, SOME users got the error message above when running
my application, and some didn't. Howcome this would only affect some users?
3) Seeing as how the application has already been installed on all computers here, should I also remove the reference to the
Microsoft Office 11 Object Library before I try publishing again?
4) The only 'office' function my application performs is to open a blank email. It does this with this statement -
System.Diagnostics.Process.Start("mailto:" & username) ie it doesn't really integrate with Office at all, so why does my
application have references to ANY Office DLLs?
5) If I move my development environment back to a PC with Office 2003, will this problem go away?
As you can see, I am quite confused. I can only be described as a 'hobbyist' developer, but this experience is making me thing
seriously about taking up a new hobby!!
Re: Office Assembly
You are correct that the Microsoft Interop Office 12 is for 2007.
If you are not using any office products or calling any tools that they use (example - I have a csv app that requires the Microsoft Interop Office Excel 12 reference for creating a spreadsheet) then you should be safe to remove all references.
If you are wanting to launch an email in the default browser try this code:
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "mailto:firstname.lastname@example.org?subject=hello&body=love my body";