I have a project(A) is a normal winform and another project(B) is a vsto addsin for word
project screenshot
my VSTO adds-in references parts of project B
when i make an installation and try to install it the installation gives me an error.
error message
things i have tried is made a installation for project A and installed it first then tried to install Project B but it gives the same error.
you can use advanced installer
i had the same exact problem but was able to fix it with that
https://www.advancedinstaller.com/
this will bundle all your projects.
You have to add files from the project A manually to the add-in installer. For your reference, a similar issue is described on the Error deploying ClickOnce application - Reference in the manifest does not match the identity of the downloaded assembly thread.
For VSTO based add-in, make sure that you did all the steps described in the Deploy an Office solution by using ClickOnce article.
Related
I was able to create msi installed for my c# outlook addin using visual studio installer - an extension.
This is the link I used - https://msdn.microsoft.com/en-us/library/cc766795.aspx.
I successfully created addin using the above link but its not showing up in outlook because the above link didnt talk about registry keys.
So, I added registry keys based on the link - https://msdn.microsoft.com/en-us/library/cc442767.aspx
I changed "installdir" to "targetdir" because visual studio installed had set the property as targetdir where installdir property is if we build using installshield.
So, even thats pointing to correct install dir and addin is loading in outlook. But it is giving error because, at first, I tried with
file:///[TARGETDIR]abc.vsto|vstolocal where abc is my product name.
But abc.vsto is not there ( I selected "primary output" while adding project output to application folder), so outlook complaining that.
Then I tried with file:///[targetdir]abc.dll which gave me error:
Exception reading manifest from file:///path/to/setup/abc.dll:
manifest may not be valid or the file could not be opened
Make sure that you did all the steps described in the Deploying an Office Solution by Using Windows Installer article in MSDN. In general, you may also find the Deploying an Office Solution section helpful.
I was given this solution to a problem I had, since I didn't know how to integrate MS Word with C#: http://www.dotnetperls.com/word
I looked into this solution, and I can't locate Microsoft.Office.Interop.Word in the reference list. I can't find it under COM Objects either. What am I missing? I am using Visual Studio Express 2012.
EDIT:
The answer to this question is that you HAVE to install MS Office on your computer.
You need Microsoft Word xx Object Library.
You can download the Primary Interop Assemblies from here.
http://www.microsoft.com/en-us/download/details.aspx?id=3508
You may also use NuGet Package Manager in order to install the reference.
Go to Project -> Manage NuGet Packages...
Search for "Interop.Word" and install that package.
Good thing about it is that you don't need to think about where the dll is located. When another person will check out the solution, NuGet will get all needed packages onto their machine.
you might need to install the assemblies separately,if you did not choose to install them during your office installation.
MSDN:
You must install the Microsoft Office primary interop assemblies
(PIAs) in the global assembly cache of your development computer
before you can perform certain development tasks. Typically, the PIAs
are installed automatically when you install Office on the
development computer. However, in some cases you might need to install
the PIAs separately.
More here
Check if the library (Microsoft.Office.Interop.word) is present in the assembly folder of windows (C:\Windows\assembly) else you can install it from http://www.microsoft.com/en-us/download/details.aspx?id=3508
Now you just need locate it in your visual studio.
Right click on the consoleApplication(or name of you application) in SolutionExplorer window and
Go to Add -> References-> Browse and find C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.word or similar directory.
press ok and your can now use the library in your application.
I am interested in using C# to manipulate/Automate Excel files.
After browsing the web I have found VSTO but it seems you can not use that in Visual Studio Express Edition so I can not use that.
Just few minutes ago I noticed a question in this site that used this namespace in its code:
Microsoft.Office.Interop.Excel
So I am wondering if all I need to use that is add necessary reference and if so which reference to add?
UPDATE
I installed "Primary Interop Assemblies" as the accepted answer suggested but for some reason they are still missing in the Add Reference dialog under ".NET" but they are present in GAC.
So I just added the reference using "Browse" and located Microsoft.Office.Interop.Excel.dll in GAC folder.
But looking for similar questions on this site regarding adding reference from GAC it seems this is not recommended.
Update (thanks user2347528)
These assemblies are available as NuGet packages, which is much easier than my original answer.
You can install by either right clicking on References in your project and selecting Manage NuGet packages... and searching for one of the packages listed below, or install using the Package Manager Console:
PM> Install-Package Microsoft.Office.Interop.Excel
Microsoft.Office.Interop.Excel
Microsoft.Office.Interop.Word
Microsoft.Office.Interop.Outlook
Microsoft.Office.Interop.PowerPoint
Microsoft.Office.Interop.Graph
These are available as "Primary Interop Assemblies", which can be installed with Office, or downloaded and installed separately. How to: Install Office Primary Interop Assemblies.
Once those are installed, you can reference them in your project in the Add Reference dialog, under .NET. If you do not see those Microsoft.Office.Interop assemblies listed, then they have not been installed yet. Install them from your setup, or download and install them separately (see my link above for the downloads).
Just had this problem myself and accepted answer didn't help me but I solved it with:
Add reference > Browse > C: > Windows > assembly > GAC > Microsoft.Office.Interop.Excel > 12.0.0.0_etc > Microsoft.Office.Interop.Excel.dll
Answers didn't help me to solve my problem, I couldn't find (and browse) the assemblies although I installed them using Microsoft's msi installer. For me, the excel assembly is located under C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll
Just add reference of Microsoft.Office.Interop.Excel.
It includes MicroSoft Excel related classes, no need to add more references.
I guess what you are trying to do is add Microsoft.Office.Interop.Excel with using statement with out adding its reference in your application, in that case it wont be found. Before calling it with using statement you need to add a reference to ur application. Right click on References and add the Excel Interop reference.
Add reference > Browse > C: > Windows > assembly > GAC > Microsoft.Office.Interop.Excel > 12.0.0.0_wasd.. > Microsoft.Office.Interop.Excel.dll
I found it located under Assemblies->Extensions in VS2013.
If you have Microsoft Office installed, then you should be able to add a reference to Interop.Excel.
For example, the PC I'm typing this on has MSVS 2010 C# Express and Office 2010. I can add a reference to Microsoft.Office.Interop.Excel 11.0.0.0.
'Hope that helps
its in the com component, named:
"Microsoft Office 14 Object Library"
I just had the same problem, but none of these answers helped me. I did find the dll on my pc in the location Mostey noted: (C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll), but this is not the one that was referenced in the project I was trying to get building.
The reference in our project in Visual Studio 2012 was pointing to C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\. This location was empty for me, but it worked fine for everyone else. It took a number of tries, but I finally tracked down a working installer. I hope this saves others the same hassle!
--> Office Tools Bundle installer for VS2012 <--
This was located on the Office Documentation and Download page. Scroll down to Tools Downloads. There's also currently one for VS2013.
The best option since office 2007 is using Open XML SDK for it.
We used Word.Interop but it halt sometimes, and it is not recommend for Microsoft, to use it as a server side document formatting, so Open XML SDK lets you creates word documents on DOCX and Open XML formats very easily.
It lets you going well with scability, confidence ( the files, if it is corrupted can be rebuild ), and another very fine characteristics.
Here is super solid solution, you just need have excell.dll in your Debug/Release folder
Mine is 77,824 bytes, I downloaded it as a file, this also explain why some people have Debug compiled but Release not or vice versa.
Trento
1.Download and install: Microsoft Office Developer Tools
2.Add references from:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\PIA\Office15
I had the same issue and the Microsoft.Office.Interop was not appearing in "Add Reference" option once I upgraded VS2012 to VS2015. I basically repaired the installation (Control Panel > Programs & Features > VS 2012 > Right click Change > Repair) and added the Microsoft Office component. After that the same solution started working.
Make sure your project is 32 bit.
I had this problem, as soon as I ticked "Prefer 32 bit and rebuilt" all the Office Interop assemblies where available in Reference->Assemblies->Search "Office".
I'm searching the way in order to properly deploy a Visio 2010 Add-in.
I tried to publish it via ClickOnce, and it does the job. But I would like to have just one file, in Setup.exe style.
So I oped for a Setup Project, unfortunately with no success. The files are copied, I see it under the Programs list, but the add in is not registered.
Perhaps you know how to check if Visio 2010 is installed during the installation process, if not abort it, and then register the add in?
Any other solution?
After a long research I found this guide that explains everything, step by step and has an working example! Well done Microsoft!
http://msdn.microsoft.com/en-us/library/ff937654.aspx
Thanks
In order to deploy the addin you have to
Create entry in registry form
installer in
HKCU\Software\Microsoft\Office... (manifest, loadBehavior, friendlyname, culuture etc)
Attach to the installed files .VSTO
and .manifest file
Add VSTO runtime and proper .NET version to the pre-requisites
I have a C# project that I have created in Visual Studio Express 2010. This program uses a 3rd party C# class that relies on/calls a C++ dll. I just copied the filename.dll into the bin/debug and bin/release folders of the project folder, and the application ran fine.
I am under the assumption that I can copy the release executable for the project to another computer and run it as long as the filename.dll is in the same directory as the executable. However, trying this on another computer with correct frameworks installed, etc. the program crashes with a system.dllnotfoundexception.
Strangely, my friend reports that the program runs on his computer with Visual Studio installed, but not the one without, though I have not actually seen this.
What could be causing this? And how can I get the release executable to run on another machine?
Thanks for any replies!
-Chase
Make sure you have the Visual C++ runtime installed (VS2005,VS2008,VS2010).
If your c++ dll is build by visual studio it may depends on the CRT, two things to check here :
If it depends on the release or debug CRT. Microsoft don't give you the right to distribute the debug version except for debugging purposes so it could be a problem.
Witch version it depends on
The last version from vs2010 could be copied in the same directory as the executable (msvcp100.dll for c++ msvcr100.dll for C)
Previous versions needed to be installed as side-by-side assemblies so running their setup was mandatory (Some versions like the VS2005 one are included in framework install but others like the VS2005 SP1 one need to be installed separately)
In any case the best way to debug such problems is to install Dependency Walker (free) on the computer having problems and let it tell you what dll is missing.
The easiest (albeit maybe not the "best") solution to this problem is adding a Setup project to your solution. A setup project will help you find any dependencies, and make them available during install.
The steps you need to take are the following:
Add a Setup project to your solution (found in Add project.../Setup templates)
Right-click the project, choose "Add/Project output..." and add the startup project of your program.
Right-click the project and choose "View/Custom actions".
Right-click the root node, select "Add Custom Action..." and from "Application Folder" add "Primary output from [your project name here]".
Now when you compile, an .msi installer is created. Run this installer on the other computer, and your program will be installed and runnable. To uninstall, run the installer again, or remove the program from "Add/Remove programs" under Control panel.