2013-07-03 47 views
3

我创建了一个维克斯安装程序,安装使用VsixPackage扩展VSIX。 VSIX得到正确安装然而,有两件事正在困扰我:VSIX包得到由维克斯安装但未卸载

  • 用户有可能通过VS中的工具/扩展菜单卸载VSIX。
  • 当我卸载了微星的VSIX不会被卸载。

我确实将VsixPackage的Permanent属性设置为no。这里是标记:

      <Component Id="VSIXVS11" 
            Guid="2C85F474-3E44-4A38-AC2D-0A6F6B1049DA"> 
          <VSExtension:VsixPackage File="MvvmLight.VS2012.vsix" 
                 PackageId="MVVM Light..e8b05c55-a169-42aa-a116-064ef2205f80" 
                 Target="professional" 
                 TargetVersion="11.0" 
                 Vital="yes" 
                 Permanent="no"/> 

          <File Id="MvvmLight.VS2012.vsix" 
            Name="MvvmLight.VS2012.vsix" 
            DiskId="1" 
            Source="..\..\InstallItems\VSIX\Release\MvvmLight.VS2012.vsix" /> 
         </Component> 

任何想法是什么导致VSIX不被卸载?

注:VSIX的“这VSIX由Windows Installer安装的”标志未设置。如果我尝试设置它,则在运行MSI时出现错误。

+0

我有同样的问题。它首先为示例项目和我的主项目工作,但现在它不适用于两个项目,原因不明。我的WIX工具集版本是3.6 –

+0

即使使用WiX 3.8,我也遇到同样的问题。有没有区别,如果'Permanent'设置为'yes'或'no' – urbanhusky

回答

1

你必须在包装标识的空间。 转义包ID如下:

<VSExtension:VsixPackage File="MvvmLight.VS2012.vsix" 
    PackageId="&quot;MVVM Light..e8b05c55-a169-42aa-a116-064ef2205f80&quot;" 
    Target="professional" 
    TargetVersion="11.0" 
    Vital="yes" 
    Permanent="no"/> 
+1

此问题已经在最近建立WiX的V3.9的。 –