I've created a VSTO PowerPoint add-in in Visual Studio. To distribute this to the users I have created an InstallShield setup project.
After building this project the installation and the add-in work fine if I use the option to download the prerequisites from the Internet.
However, when I use the option to extract the prerequisites from the Setup.exe, it doesn't work: the add-in itself is installed, but the prerequisites aren't.
I know that the prerequisites are included in the setup because without them the Setup.exe is around 2MB, with prereqs it's about 290MB.
I have the two necessary prerequisites selected in the Prerequisites view:
In the Releases view, under the Setup.exe-tab of SingleImage, the "InstallShield Prerequisites Location" is also set to "Extract from Setup.exe".
But the installer just won't install the .NET Framework 4.5 (if necessary, is usually present on the user's systems), and the VSTO Runtime even though I've included it in the setup file!
Any help is much appreciated.
Related
When we do upgrades we just started getting the error message above. However, if I navigate to the PreReq folder (C:\ProductName\ISSetupPrerequisites\{AAEC4BE2-1C6B-45E0-B33D-0D657A05F292}) and run vcredist_x86.exe and the go to the other prereq folder (C:\ProductName\ISSetupPrerequisites\{8034C99E-3BC0-4E53-BC6E-02E3D8CF5378}) (in this order) it works fine and installs. I assume one of these is for C++ 2005 and one is for the SP1 version, but I'm not sure which is which.
I assume that the first one is for the first version and the second is for the SP1, cause if I install them in the reverse order it fails. Interestingly neither is selected as a pre-req on the Redistributables tab in Installshield. So the problem may be the order in which it's trying to install them. I don't even see C++ 2005 (non-SP1) in the list of Redistributables in IS, but for some reason two vcredist_x86.exe files are included in the release and when run in the right order (outside of the install) they work fine.
So how can I change the order in the installer or just get this to work? I reverted all of the changes in my .ism file to back before this started happening and that hasn't helped.
PS I also posted this question to the InstallShield forum.
From my understanding, there is no reason to install both of these VC++ 2005 redistributables. You likely only need the newer one.
Since you say that they are not checked on the Redistributables tab, it means they are likely added automatically by InstallShield at build time. This happens because you have the .NET Scan at Build option set to Dependencies and Properties on some of your components. With this setting, InstallShield scans the component files and tries to add any dependencies needed.
If you know what dependencies are needed, you can turn off that setting and then choose the necessary dependencies yourself on the Redistributables (or Prerequisites) tab.
There's nothing magical about these GUIDs - they are just the GUIDs that InstallShield uses in their pre-defined prerequisites:
{8034C99E-3BC0-4E53-BC6E-02E3D8CF5378} is VC++ 2005 SP1 (x86)
{AAEC4BE2-1C6B-45E0-B33D-0D657A05F292} is VC++ 2005 SP1 MFC Security Update KB2538141 (x86)
If the prerequisite you need is not included with InstallShield, you can define your own prerequisite. Go to Tools / Prerequisite Editor.
I have created Visual studio add-in successfully.But I am confused to deploy this addin in another computers.I have go throgh the stackoverflow answers.But I did not get clear cut idea about this matter
You just need to copy YourAddIn.dll and YourAddIn.AddIn files to "c:\Users\username\Documents\Visual Studio 2012\Addins\" folder on another computer. To create an installer you can start with Wix Template For VS2012 Addin Project.
Deploying an add-in requires to copy the add-in dll(s) to some folder and create a XML .AddIn file in a predefined folder where VS can locate it where a entry of the XML file points to the add-in assembly.
For articles about the prefedined folders for .AddIn files and about creating a setup see the "Articles about installing and uninstalling" section of my web site:
http://www.visualstudioextensibility.com/articles/add-ins/
To troubleshoot problems loading add-ins see my article:
HOWTO: Troubleshooting Visual Studio and Office add-ins
Visual Studio is a 32-bit executable, so the add-in dll and dependencies must be 32-bit.
I have a windows form project and I want to create an installation package for this project. How can I create a setup file in Visual Studio 2012 ? My project is without data base.
How to create a Setup package using Visual Studio 2012.NET?
Microsoft released the Visual Studio Installer Project extension in April of this year, the catch is it's for VS2013, not VS2012.
http://blogs.msdn.com/b/visualstudio/archive/2014/04/17/visual-studio-installer-projects-extension.aspx
The 'lite' InstallShield option remains in VS if you need something with more flexibility.
Advanced Installer also has a free version that includes an extension for VS. This is a commercial tool but the extension is included in the free edition as I said, for more advanced features you need to purchase a Professional or higher licenses and edit the project direct from Advanced Installer GUI, not from VS. (but you can still use the project in the VS solution, so you get the MSI built at the end of your build process)
Visual Studio setup projects (vdproj) are not supplied with VS 2012
There are several solutions for you:
You could use InstallShield instead.
If you don't want or
can't use InstallShield for any reason, you could try WiX. This
toolset builds Windows installation packages from XML source code.
If you only use Windows Presentation Foundation (.xbap), Windows Forms (.exe), console application (.exe), or Office solution (.dll) you could look at ClickOnce. To use this you should right click on the project file in the solution explorer and select "Publish" from the pop-up menu.
Alternatively you can use previous version of Visual Studio (2010).
I have a VC++ (unmanaged) project to which I added performance counters using manifest method. Everything is working great and I even have build steps that do manifest compilation and automatic registration using lodctr.exe tool with /m:manifest switch.
The problem that I'm running into is that I now need to make installer (VS2008 Installer project) do registration on install (unregistration on uninstall).
I tried to set it up by having a custom action that referenced lodctr.exe tool with CustomActionData set to /m:[TARGETDIR]PerfMon.manifest and similar setup using unlodctr.exe for custom uninstall action.
When installer runs, I do see a brief flash of cmd window (which is ok), but counters are not getting registered. I ran SysInternals' ProcMon tool, and I don't see lodctr.exe process even created.
I tested that running lodctr.exe manually on target machine registers the counters.
I googled for an example or explanation how to do it with Visual Studio installer project, but came up empty. It has some .NET oriented examples, but nothing for unmanaged, hard and cold VC++...
How can I register performance counters manifest using installer project?
Visual Studio installer project has very limited functionality. Starting from Visual Studio 2012 Visual Studio installer project is not supported, you should consider to use Windows Installer XML (WIX) instead.
Include your manifest into WIX project and use WIX's PerfCounterManifest with it.
I am writing an application in IIS that uses the Microsoft office excel automation library. I have downloaded the Office PIA from here and it downloaded an executable called PIARedist which I ran. This unpacked into 3 files o20120_eula.txt, o2012_readme.rtf and o2012pia which is a windows installer package. I ran the windows installer package, and that's where I got stuck, I expected it to unpack all of the libraries that I need, or put them somewhere in the file system, but nothing. The installer ran, but with no indication of what it was doing or what it was installing. Where do I go from here to obtain these libraries? And is developing on windows always this awful?
They live here:
C:\Program Files x86\Microsoft Visual Studio 14.0\Visual Studio Tools for Office\PIA
Where do I go from here to obtain these libraries?
They will have been installed in the GAC. After installing, you should be able to add a COM reference to Excel in Visual Studio, and it will reference the PIA assembly rather than generating an assembly with TLBIMP.
And applications that reference the PIA from that version of Office will be able to run.
And is developing on windows always this awful?
Not always, but more often than I'd like.
It turns out I just hadn't installed office on my machine. I assumed that it came preinstalled since there was an icon for it in the start menu, but that icon was what installed office.