I'm trying to develop an MS Office Addin in C# .Net and I don't have access to Visual Studio. Instead I'm using SharpDevelop as my IDE, (but my question is equally relevant to anyone developing using any other IDE or compiling from the command line...)
I've done a bit of searching for guides on how to develop AddIns, but they all seem to require Visual Studio and follow these steps:
- Install the Interop Assemblies
- Create a Visual Studio .Net Project (I'm unable to do this bit)
- Extend the VS ThisAddIn template
What I've managed to do is to:
- Install the Interop Assemblies
- Create a C# empty SharpDevelop project
- Add a GAC reference to Microsoft.Office.Interop.Outlook
- Add a COM reference to Microsoft Office 12.0 Object Library
- add the line
using Outlook = Microsoft.Office.Interop.Outlook;
- and the line
using Office = Microsoft.Office.Core;
- Look at some example code and realise that they all refer to VS templates and VSTO libraries (Microsoft.Office.Tools) which I don't have.
Where do I go from here? Is there a guide/tutorial I've missed, or can someone provide some pointers?
NetOffice (http://netoffice.codeplex.com or https://osdn.net/projects/netoffice/) is a great set of version-independent interop assemblies for Office. This is all you need to make add-ins using SharpDevelop, and the project has a bunch of tutorials and samples too, including some for Outlook.
If you're making an add-in for Excel using Excel-DNA (which you need to expose user-defined worksheet functions from .NET), NetOffice still gives you a complementary set of libraries for accessing the Excel COM automation interfaces from your Excel-DNA add-in, so they work together well.
For both NetOffice and Excel-DNA, you'll also be able to use the free Visual Studio Express editions (with some small tricks needed to get debugging working). Visual Studio Express does not include VSTO at all. SharpDevelop also has many more features than the Express editions, like built-in refactoring and VB.NET <-> C# translation tools, so there are good reasons to prefer SharpDevelop as your free IDE.
EDIT: I missed the reference to Outlook, my apolgies.
For Outlook, look here. Outlook Redemption is useful.
I'm not a Word Expert, but there are plenty of tutorials on the web.
For Excel I'd suggest you actually look at ExcelDNA
Plenty of SO questions on this topic. See Exposing .net methods as Excel functions? for example as additional advice on where to start and what your options are.