从VSIX安装程序包运行shell命令或可执行文件?

时间:2014-01-08 07:51:09

标签: .net xml visual-studio visual-studio-extensions vsix

我正在手动操作VSIX扩展包的vsixmanifest,是这样的:

<?xml version="1.0" encoding="utf-8"?>
<Vsix Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010">
  <Identifier Id="c669b00e-3746-47bd-bfe7-e6f9d64458ff">
    <Name>RapidDesign</Name>
    <Author>ZUI INFRA sp z o. o.</Author>
    <Version>2.0.1</Version>
    <Description>RapidDesign allows you to use various VisualStudio designers faster.</Description>
    <Locale>1033</Locale>
    <MoreInfoUrl>http://www.rapiddesignaddin.com</MoreInfoUrl>
    <License>EULA.txt</License>
    <Icon>Speedometer.png</Icon>
    <PreviewImage>RapidDesignPreview.png</PreviewImage>
    <InstalledByMsi>false</InstalledByMsi>
    <SupportedProducts>
      <VisualStudio Version="12.0">
        <Edition>Ultimate</Edition>
      </VisualStudio>
    </SupportedProducts>
    <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.0" />
  </Identifier>
  <References>
    <Reference Id="Microsoft.VisualStudio.MPF" MinVersion="10.0">
      <Name>Visual Studio MPF</Name>
    </Reference>
  </References>
  <Content>
    <VsPackage>RapidDesign.pkgdef</VsPackage>
  </Content>
</Vsix>

有一种方法可以告诉VSIX安装程序自动运行CMD命令或可执行文件,就像一种安装后步骤一样?

例如,我想运行/安装一个注册表脚本(.reg文件),为我配置一些默认扩展选项,但我不知道是否可以通过vsixmanifest启动控制台命令自动完成该过程以前编程的EXE过程。

1 个答案:

答案 0 :(得分:5)

vsix软件包不应该依赖注册表来设置there is a specific API to access the Visual Studio settings系统。一个normal vsix package cannot call or start anything after deployment。您可以在第一次启动软件包时自行设置默认值。

如果您在设置过程中确实需要更高级的功能,则可以创建.msi而不是vsix。 You'll need to extract your vsix and include its contents in your Windows Installer package。或者您可以使用WixToolset创建MSI安装程序并使用<VsixInstaller> element注册Visual Studio包,您可以将其他逻辑放在Wix安装程序项目中。