安装时如何自动启用VSIX扩展?

时间:2011-06-22 08:22:24

标签: visual-studio-2010 vsix

我创建了一个VSIX软件包,我通过WIX生成的MSI安装。

然而,当我安装它,并在VS2010中查看它时,在工具> Extension Manager 菜单, [Disabled] ,我需要手动启用它。

我该如何避免这种情况?

**编辑**
这就是我做的:
我尝试从注册表中添加捕获VSInstallDir,如下所示:

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

我在target-dir下添加了目录结构,如下所示:

    <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>

我将 true 元素添加到清单。

当我这样做时,扩展程序安装。

任何想法为什么?

2 个答案:

答案 0 :(得分:4)

如果将扩展文件安装到在%VSInstallDir%\ Common7 \ IDE \ Extensions下创建的目录中,则会自动为所有用户启用它。这是MSI安装扩展的建议。

另外,请务必将<InstalledByMsi>true</InstalledByMsi>添加到您的vsixmanifest。

无需运行VSIXInstaller.exe或编写注册表项来启用扩展(实际上,您真的不应该这样做。)。

答案 1 :(得分:2)

使用VS2010 \ Common7 \ IDE中的“VSIXInstaller.exe”工具。

您也可以通过添加注册表值来手动启用扩展程序 HKCU \ SOFTWARE \微软\ VisualStudio的\ 10.0Exp \ ExtensionManager \ EnabledExtensions