VSTO 2010 Outlook Ribbon (Designer) does not show up in Outlook 2007 - c#

I have a VSTO 2010 Ribbon (Designer) which works in Outlook 2010.
My add-in also loads in Outlook 2007, I see a command bar that I have made and it does what I expect it to. For some reason the ribbons on the Read mail and New mail inspectors do not show up in Outlook 2007.
What am I missing that would prevent these from loading? From what I understand, as long as the Tab names match the ribbon controls file tab names in both 2007 and 2010 it should be fine?
Notes:
The add-in is for sure loading in outlook 2007
Works perfect in outlook 2010
Not talking about the ribbon in the main UI
I would prefer to just have the ribbon files like for outlook 2010 but I can do whatever as long as it works
If there is a duplicate question which solves my issue that would be great but I can't seem to find one that works

From what I know developing for multiple Office versions with VSTO can be a pain and is not directly supported by VSTO:
This of course is the advantage of using the old "shared add-in"
project types – you can build one add-in that targets all versions of
all Office apps that support COM add-ins (ie, 2000 onwards). The
question is, can you do something similar with VSTO add-ins? The
answer is "No, not in any supported way".
The answer can be found here:
http://blogs.msdn.com/b/andreww/archive/2007/06/15/can-you-build-one-add-in-for-multiple-versions-of-office.aspx
There are alternatives to VSTO for Office development, that help you develop for multiple versions: NetOffice, Addin Express.

Related

Developing Outlook Add-In which Outlook Add-In version should I select in VS?

I am developing my first Outlook Add-In in C#. In Visual Studio I have the options to develop an "Outlook 2010 Add-in" or "Outlook 2013 Add-in" or probably an "Outlook 2016 Add-in".
This Add-In should work on one PC which runs currently Outlook 2010 but which I could upgrade to a newer version.
If I start to develop an "Outlook 2010 Add-in" will this also work in Outlook 2013 and 2016? Do I have to do something to make it work with different versions of Outlook?
My Add-In will check some details of the mails and depending on the details it will sort these mails. I guess that should work in all versions.
Is there a clear advantage of an 2013 or 2016 Add-In compared to 2010?
As mentioned in comments by #penleychan, targeting the latest version is a good thought. I did the same when I develop my VSTO addin. Most of the time I have used the common features of the Outlook and developed the addin with template version similar to the installed office (on my machine). Its easy to debug.
If the addin is going use specific feature(s) of a version of Office, then we should use that version template.
You may like to refer this link.
You can run your Office 2010 based solution in later Office versions. You just need to choose the right target .net version. Read more about that in the Running Solutions in Different Versions of Microsoft Office article.
Is there a clear advantage of an 2013 or 2016 Add-In compared to 2010?
The only benefit you get in that case - the PIAs version corresponding to the target Office version. That means you will get access to objects, methods, properties and events available in later Office versions. Anyway, at runtime you still can use the late-binding technology which allows accessing missed members at design-time. See Type.InvokeMember for more information.

Late binding for Outlook PIA

I have been working with Outlook PIA . I have used early binding and added reference to Outlook PIA 2010 that works fine with Outlook 2013 as well Outlook 2010.
But What i need is if Outlook is 2013 then used Outlook PIA for 2013and if Outlook is 2010 then use Outlook 2010 PIA.
Is their any way to do this?
Or
I have gone through forums suggesting Late binding for Outlook to make it version independent.
And when to use late binding?
At the installation time you can check which Outlook version is installed in the system and deploy only the corresponding interop libraries.
But a widely spread solution is to use the lowest interop version. Thus, you will be sure that methods and properties supported in Outlook 2010 are used in the code, so your solution can be easily run in the lowest Outlook version. When required, you can use the late-biding technology for accessing properties and methods not listed in interop assemblies (see Type.InvokeMember for more information).
Finally, you may find all things explained in the Supporting several Office versions in an add-in. Interop assemblies and late binding. article.

Create Outlook 2007/2003 add-in in Visual Studio 2012 Professional

Is there any way to create add-in for Outlook 2007/2003 in Visual Studio 2012 (C#)?
So far I found that it should be possible and I just need to remove references from build-in 2010 add-in. Also tried to download some packages for older VS without success. After many attempts, during adding .dll file to Outlook 2007, I am still receiving error, that it is not add-in for Outlook 2007.
After all, I doubt a lot that I can do some add-in for old Outlook 2003 if I am not able to do it for 2007. It would enough for this time to force 2007 add some add-in with only MessageBox on startup.
You can try to use this library NetOffice. I'm using it and is very good.
Even if it does not fits your needs you can dig a little in the code and try to understand how they do it. They have nice examples.
BTW, If you are using VS express edition you cannot develop Office add-ins without a library like NetOffice.

convert an Excel 2010 addin to a 2007 addin (both VSTO)

I am currently working on an Excel 2010 add-in which formerly was an Excel 2007 add-in.
Somewhere in the process of switching computers, the add-in was converted i think.
Some of my customers stated that the add-in wasn't working on Excel 2007 anymore so I tried to debug it in a VirtualBox with Excel 2007 and Visual Studio 2010 installed.
Now I get the Error Message:
You cannot debug or run this project, because the required version of the Microsft Office application is not installed.
I started a new Excel 2007 add-in project and tried to find what the differences are and came up with the idea that it somewhat has to do with the dll's so I changed my 2010 addin until it looked like an 2007 addin.
I still get the error message stating that my project can't be debugged.
Is there anything I could've forgotten to change.
Writing a completely new addin is unfortunately not an option.
These questions haven't helped me so far:
Excel Addin that works on Excel 2007 and 2010
Deploying Office 2010 addin
To get VS 2010 working with Office 2007 modify the project file (.csproj) so that it will open in Office 2007 and not look for Office 2010 when run (hence the error message above).
Here is the project settings change (Excel example):
Source XPath:
//Project/ProjectExtensions/VisualStudio/FlavorProperties/ProjectProperties/#DebugInfoExeName
Old Value (Office 2010):
DebugInfoExeName="#Software\Microsoft\Office\14.0\Excel\InstallRoot\Path#excel.exe"
New Value (Office 2007):
DebugInfoExeName="#Software\Microsoft\Office\12.0\Excel\InstallRoot
\Path#excel.exe"
After changing this project setting, when you fire up the debugger (F5) it will load the Excel 2007 application instead of looking for Excel 2010.
Typically, when I am developing against multiple versions of Office with VSTO Add-ins, I have a project for each version of Office I am targeting. I put all common code between the projects into a single project (typically the oldest project) and use linked files, I add the common files to the newer projects. This allows me to write one set of common core code, abstracted from the requirements of each version of Office. This means I am no longer fighting the different ways VSTO is compiled for each version of Office. This can be made easier with shared folders and virtual machines, so I can develop and test without multiple computers. It is by no means graceful, but it works well for me. This should allow you to develop your VSTO Add-in against both Office 2007 and Office 2010 without much issue.

Office development with Visual Studio 2010 (VSTO), things to consider

I'm still confused by the different versions of VSTO and in which way they are compatible to office 2007/2010. I know there is a nice table for comparisons on wikipedia, but I still don't get it. My focus lies on PowerPoint.
Okay, so I have the Visual Studio 2010 Professional Edition that provides two templates for PowerPoint: a 2007 Add-In template and a 2010 Add-In template. What exactly is the difference here, is it just the version of the underlying VSTO? Apart form that, is there a difference between VSTO 4.0 and VSTO 2010? Wikipedia uses both terms.
I want the Add-In to work with both PowerPoint 2007 and 2010. Should I chose the 2007 Add-in project type or the 2010 add-in project type?
Wikipedia says: "Office 2007 applications can also use the VSTO 2010 runtime"
and it also says
"VSTO solutions developed against newer Office versions will not work in older Office versions as they lack the necessary Primary Interop Assemblies (PIAs)".
Isn't that some kind of contradiction?
below image should be helpful
A VSTO project will work only with the selected version and later i.e. a 2007 add-in will work with Office 2007 and 2010, whereas a 2010 add-in will work with only 2010.
When deciding which version to choose for an add-in, choose the version of the oldest Office version you want to support.

Categories