2011-06-22 48 views
2

我創建了一個通過WIX生成的MSI安裝的VSIX包。如何在安裝時自動啓用VSIX擴展?

然而,當我安裝它,看看它在VS2010,在工具>擴展管理器菜單,它是[禁用],我需要手動啓用它。

我該如何避免這種情況?

**編輯**
這裏就是我所做的:
我嘗試添加從註冊表這樣捕捉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文件?請參閱編輯我做了什麼。 –

+0

在我建議的情況下,您需要在磁盤上放置*鬆散文件*,而不是'.vsix'文件。 (即你的extension.vsixmanifest從項目輸出文件夾,DLL的,Pkgdef文件等等......) –

2

使用VS2010 \ Common7 \ IDE中的「VSIXInstaller.exe」工具。

你也可以通過添加註冊表值 HKCU \軟件\微軟\ VisualStudio的\ 10.0Exp \ ExtensionManager \ EnabledExtensions