2011-06-22 3 views
2

Я создал пакет VSIX, который я устанавливаю через WIX-сгенерированный MSI.Как автоматически включить расширение VSIX при установке?

Однако, когда я устанавливаю его, и смотреть на него в VS2010, в Tools> Extension Manager меню, это [Disabled] и мне нужно, чтобы включить его вручную.

Как я могу избежать этого?

** EDIT **
Вот что я сделал:
Я попытался добавить захватывая VSInstallDir из реестра, как это:

<Property Id="VSINSTALLER"> 
    <RegistrySearch Id="VSInstallRegistry" Root="HKLM" Key="SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0" Name="InstallDir" Type="directory" /> 

я добавил структуру каталогов в целевом-каталог например:

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="VSINSTALLER"> 
    <Directory Id="Extensions" Name="Extensions"> 
     <Directory Id="Copy_CompanyFolder" Name="my company"> 
     <Directory Id="INSTALLVSIX" Name="app name"> 
     </Directory> 
     </Directory> 
    </Directory> 
    </Directory> 

И добавил элемент CopyFile к компоненту в папке установки, как это:

  <Component Id="VsPackage" Guid="00000000-0000-some-guid-00000000"> 
      <File Id="VsPackageInstaller" Source="$(folder.prop)\extensionName.vsix" 
       KeyPath="yes" DiskId="1"> 
      <CopyFile Id="Copy_InstallVsix" 
         DestinationDirectory="INSTALLVSIX" /> 
      </File> 
     </Component> 

И я добавил элемент верно к манифесту.

Когда я это делаю, расширение не установлено.

Любые идеи, почему?

+0

Пожалуйста, не подписывайте свои сообщения. Определенно не делайте этого дважды. –

ответ

4

Если установить файлы расширения в каталог создаваемого под% VSInstallDir% \ Common7 \ IDE \ Extensions, он будет включен автоматически для всех пользователей. Это рекомендация для расширений MSI.

Кроме того, пожалуйста, не забудьте добавить <InstalledByMsi>true</InstalledByMsi> к вашему vsixmanifest.

Нет необходимости запускать файл VSIXInstaller.exe или писать разделы реестра, чтобы включить расширение (на самом деле, вы действительно не должны этого делать).

+0

Это тоже работает для v3.5? –

+0

По какой-то причине это не работает для меня. Как добавить файл VSIX? См. Edit для того, что я сделал. –

+0

В том случае, если я предлагаю вам, вам нужно сложить ваши * свободные файлы * на диске, а не в файле .vsix. (т. е. ваш extension.vsixmanifest из выходной папки проекта, файлов DLL, Pkgdef и т. д.) –

2

Используйте инструмент "VSIXInstaller.exe" из VS2010 \ Common7 \ IDE.

Также вы можете вручную включить ваше расширение, добавив параметр реестра HKCU \ Software \ Microsoft \ VisualStudio \ 10.0Exp \ ExtensionManager \ EnabledExtensions

Смежные вопросы