2

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

但是,当我安装它并在 VS2010 中查看它时,在Tools > 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>

我在清单中添加了真正的元素。

当我这样做时,没有安装扩展。

任何想法为什么?

4

2 回答 2

5

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

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

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

于 2011-06-25T16:43:50.453 回答
3

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

您也可以通过将注册表值添加到 HKCU\Software\Microsoft\VisualStudio\10.0Exp\ExtensionManager\EnabledExtensions 来手动启用扩展

于 2011-06-22T09:12:54.963 回答