C# VSTO Project change from Excel 2010 to Excel 2007 - c#

I have a solution in VS2010 that was developed as an Excel 2007 add-in. Unfortunately something happened with my profile and since then VS runs the solution with Excel 2010. Somehow my profile got corrupted and my VS solution got corrupted too changing the Office library from 2007 to 2010. I tried changing the library back to 2007 but every time I open the VS solution VS changes it. Anyone has an idea how to fix this problem?

You must have installed Office 2010 which forces VS.NET to use the Office 14 PIAs. You can still deploy your add-in to Office 2007, you just have to be sure you don't use any Office 2010 specific features.
Also see related SO post .

Related

VSTO Excel 2007 c# how to select Ribbon TAB?

UPDATE: okey seems it's all about using Office PIA 2007 and Office PIA 2010. How to migrate to PIA 2010 for users who have Office 2007 office? I removed 2007 PIA and added 2010, checked on few clients Office 2013+ versions it's working. But on Office 2007 add-in doesn't load same as on my dev computer. But I'm receiving 0 errors on VS and can see iRibbonUI -> ActivateTab. On computer with office 2007 tried to install PIA 2010 but that doesn't helped.
Problem:
I'm using Visual Studio 2010, .NET 3.5 and Office 2007, can't find way to select my own created tabs maybe it's related to office version installed?
In VBA Excel library lists if i select "Office" -> "iRibbonUI" i get only "Invalidate" and "InvalidateControl", i checked this on Office365 - i get a lot more "ActivateTab" "ActitaveTabMso" and so on. In VS when I try to use "ActiveTab" i get error "Microsoft.Office.Core.IRibbonUI" does not contain definition for "ActiveTab".
Maybe I'm missing something? I can't change to higher office due i need soft be able run on Office 2007+.
Any replies appreciate
Not sure what you have tried but you could choose a tab as follows:
Globals.Ribbons.Ribbon1.RibbonUI.ActivateTab("yourtabname")
If you find this useful and want more tips and how-to's, you could also register for my course on udemy

VSTO document level customization with visual studio 2017

I have developed a simple Excel 2010 document level customisation based on the c# project template provided with VS 2017 community.
Unfortunately I don't have much experience on Office dev but a solid experience with VBA.
It all went ok to code, debug and run the solution till the moment I tried to open an Excel file at the same moment VS had my solution opened.
The document level customisation Excel workbook disappeared. I could not get it back whether running from VS nor opening it from a folder.
I tried cleaning up the solution, uninstalling the documents (they are installed as part of the system with VSTO).
Any clue on the issue ?
IN EXCEL you can not open two file which have same name a.xls and a.xls.
"Sorry, Excel can't open two workbooks with the same name at the same time."
So; If you open a file in EXCEL, you can not open it in EXCEL Desinger.
And in some cases; if you want to open document in EXCEL; EXCEL Desinger in Visual Studio Crashes; And Desinger Generated codes lost. WHEN you reopen that solution you get errors. In order to prevent errors; Backup your Improvments or use TFS
Using WINDOWS 10, Visual Studio 2015, EXCEL 2016 And Visual Studio Tools For Office 2010 I have crash problem. And another problems that I can not properly solve.
Reverting EXCEL to 2013 resolve some problems for me. I do not see this problem on my old PC which I use; WINDOWS 8.1, VS 2015, EXCEL 2013 And VSTO 2010
Also; WINDOWS 10 And Security Updates are problematic if you use VSTO

VSTO 2012: backward compatibility

Since lately the Visual Studio Tools For Office 2012 (VSTO 2012) are available for download.
Can this new version still used for developing Add-In solutions for older Office versions (2007,2010)? Are there any advantages over VSTO 4.0 (besides Office 2013 support)
Yes, it can. I'm using VS2012 for an Excel 2007 project and it works fine.
The trick is to change the debug path in your project file so that VS uses the older version of the Office app your plugin is for.
Create your VSTO project (let VS create the project for Office 2010)
Edit the project file and find the <ProjectProperties> with a HostName attribute. It will be a child element of a <VisualStudio> element.
Change the DebuginfoExeName attribute value of the <ProjectProperties> attribute to be the path to the older version of the Office application .exe file
Save your project
Now when you go to debug your app it should launch the older version of your Office app and attach to that process to load your VSTO.
In my project, the new <ProjectProperties> element looks like this for Excel 2007:
<ProjectProperties
HostName="Excel"
HostPackage="{20A848B8-E01F-4801-962E-25DB0FF57389}" OfficeVersion="14.0"
VstxVersion="4.0"
ApplicationType="Excel"
Language="cs"
TemplatesPath=""
DebugInfoExeName="#Software\Microsoft\Office\12.0\Excel\InstallRoot\Path#excel.exe"
AddItemTemplatesGuid="{51063C3A-E220-4D12-8922-BDA915ACD783}" />
Deployment also works fine. I deploy my add-in via ClickOnce and it is added to Excel 2007 clients without any additional changes.
As far i know you can deploy your solution to previous version office. I once developed an add-in for ppt 2013 and it worked fine in ppt 2010. Note that The API for the new VSTO has several additional features and last time i only used existing features, but not the new ones.
I've never tested this, but i think if you use new event handler that only works in 2013, when you deploy it in 2010 it simply does nothing / doesn't work.
As i mentioned, the obvious advantage of new VSTO is more features available, for example in ppt 2013, it has event handler when the users do dragging, you should checked them by yourselves. If your solution doesn't need these new features, you can develop it in the previous version of VSTO to make sure the backward compatibility.

How to install/deploy VSTO Excel 2010 Addin developed in C#.net?

I have developed an excel addin using VSTO in C#.net .Now i want to deploy this addin in other machines too .So that users who installed this can see my addin in excel menu -> Addins-> MyAddin
Alternatively can i give them just Excel with myaddin.So that whoever has this Excel can access addin and use it.This way they don't see myaddin in every excel file addins menu.
You can use a Visual Studio 2010 setup project to create a Windows Installer package. See this MSDN Link
Quote from that Link
Summary: Learn how to deploy a Microsoft Visual Studio Tools for the
Office system 2010 add-in or document- level solution using a Visual
Studio 2010 setup project to create a Windows Installer package that
targets the 2007 Microsoft Office system or Microsoft Office 2010.
Wouter van Vugt, Code Counsel
Ted Pattison, Ted Pattison Group
This article was updated by Microsoft with permission from the
original authors.
Applies to: Visual Studio 2010 Tools for Office, 2007 Microsoft Office
system, Microsoft Office 2010, Visual Studio 2010.
Download: http://code.msdn.microsoft.com/VSTO2010MSI
Contents
Overview
Deployment Methods
Deploying Office solutions that target the Visual Studio 2010 Tools for Office runtime
Download Samples Provided with this Article
Creating a Basic Installer
Conclusion
Additional Resources
About the Authors
EDIT
You may also see this link for All Users.
Conceptually, all you need to concentrate on is get yourself a COM object created which must be running even when the application (MS Excel here) is not open in the explorer.
More can be figured out from the following link :
http://www.codeproject.com/Articles/7859/Building-COM-Objects-in-C
(P.S : link is for c# not c).
Next you should give your users a .exe file including code to create the COM object.

C# dual Outlook 2007/2010 VSTO Add-in

We need to create a VSTO add-in in C# that supports both Outlook 2007 and 2010.
To start off we created 3 projects:
File->New Project->Office->2007->Outlook 2007 Add-in
File->New Project->Office->2010->Outlook 2010 Add-in
File->New Project->Windows->Class library
All shared code is in project #3.
So far, we have partially developed the add-in and have been using ClickOnce deployments for testing.
One day, we noticed someone installed the 2010 add-in for 2007 Outlook and had no ill effects whatsoever.
So a few questions:
Is there any reason to create the
2007 VSTO project? Can we just
create the 2010 project?
Or is the only difference the version of
the office runtime that is
bootstrapped by the ClickOnce
installer? Can you just install the 2010 runtime for Outlook 2007?
If there is no difference, why are
there two Visual Studio project
templates?
In our final solution, we will be using a WiX installer, which is also working thus far. The WiX installer will be simplified greatly if we can use 1 project for the add-in.
Is there any reason to create the 2007 VSTO project? Can we just create the 2010 project?
You can just use the 2010 project, but if you accidentally reference any 2010 ONLY api's, for example accessing any of the new conversation API's will cause your add-in to blow up in 2007.
Or is the only difference the version of the office runtime that is bootstrapped by the ClickOnce installer? Can you just install the 2010 runtime for Outlook 2007?
Basically you are writing a VSTO 3.0 add-in, which works for both 2007 and 2010. VSTO doesn't actually care which template you are writing for, only that your add-in is a VSTO 3.0 add-in.
If there is no difference, why are there two Visual Studio project templates?
2 reasons that I can see, F5 debugging support, and to make sure you do not access a new API'
If you do go down the only 2010 add-in road, I suggest you do a compile of the solution against the Microsoft.Office.Interop.Outlook v12 PIA which will show you any new API's that you are accessing. If you do want to target some of these new API's only IF your add-in is hosted in 2010 then have a look at http://blogs.msdn.com/b/vsto/archive/2010/06/04/creating-an-add-in-for-office-2007-and-office-2010-that-quot-lights-up-quot-on-office-2010-mclean-schofield.aspx

Categories

Resources