Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deploying VSIX using MSI installer

Can anyony help me in "How to install VSIX using MSI installer".

For msi installer I'm using visual studio Installer setup project.

When I use VSIX with extension manager it works fine.

I want to have it as a installer(using msi) instead of using enstension manager.

or any best wa yto install and unstall VSIX files

like image 368
Umesh CHILAKA Avatar asked May 24 '11 11:05

Umesh CHILAKA


1 Answers

This isn't a suggested scenario.

From MSDN, "You cannot use a Windows Installer package (MSI) to deploy a VSIX package. However, you can extract the contents of a VSIX package for MSI deployment. This document shows how to prepare a project whose default output is a VSIX package for inclusion in a Setup project."

Here are some pages with more information:

MSDN page

VS Blog

MSDN Forum


Adding more information about how you could accomplish this:

You can't use the vsix itself, but you can unzip it (just rename the vsix to zip) and add all of the files to your MSI manually. As it says on the VS Blog, you need to make sure that you include the vsixmanifest file (it should be in the vsix) and make sure that you set the "InstalledByMsi" property to true. If you have a pkgdef file, make sure you include that as well.

Again, as it says on the VS Blog, all of these files should be installed to

"%VSInstallDir%\Common7\Ide\Extensions\Your Company\Your Product\Version"

(And you'll need to replace %VSInstallDir% based on the actual location.)

You asked:

How to put some files in non special folders using visual studio installer.

Vsix packages installed by the standard vsix installer will always put all of the files under the same folder in "%VSInstallDir%\Common7\Ide\Extensions...", but because you're using an MSI, you should be able to put other files in other places if you want.

I haven't tried this myself, but I've worked with vsix quite a bit.

I hope this helps!

like image 117
Matt Avatar answered Oct 16 '22 03:10

Matt