2011-06-22 4 views
2

WIXで生成されたMSI経由でインストールするVSIXパッケージを作成しました。私はそれをインストールし、ツールで、VS2010でそれを見たときにインストール時にVSIX拡張機能を自動的に有効にするにはどうしたらいいですか?

はしかし、>拡張機能マネージャメニューは、それが[無効]であり、私はそれを手動で有効にする必要があります。私はこの問題を回避するにはどうすればよい

** EDIT **
は、ここに私がやったことだ:
私はこのようなレジストリからVSInstallDirを取り込む追加しようとした:

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

私がターゲット-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> 

そして私はマニフェストに要素を追加しました。

この場合、内線番号はではなく、がインストールされています。

なぜでしょうか?

+0

あなたの投稿に署名しないでください。間違いなくそれを2回しないでください。 –

答えて

4

にレジストリ値を追加して、拡張機能を有効にすることができVSInstallDir% \ Common7 \ IDE \ Extensionsの場合、すべてのユーザーに対して自動的に有効になります。これは、MSIがインストールした拡張機能の推奨事項です。

さらに、<InstalledByMsi>true</InstalledByMsi>をvsixmanifestに追加してください。

拡張機能を有効にするために、VSIXInstaller.exeを実行したり、レジストリキーを作成したりする必要はありません(実際には、これを実行しないでください)。

+0

これはv3.5でも有効ですか? –

+0

何らかの理由で、これは私のために働いていません。 VSIXファイルをどのように追加しますか?私が行ったことの編集を参照してください。 –

+0

私が提案したケースでは、*。loosファイル*を '.vsix'ファイルではなくディスクに置く必要があります。 (つまり、プロジェクトの出力フォルダ、DLL、Pkgdefファイルなどからのextension.vsixmanifest ...) –

2

VS2010 \ Common7 \ IDEの "VSIXInstaller.exe"ツールを使用してください。あなたは%の下に作成したディレクトリに拡張ファイルをインストールする場合

また、手動で ます。HKCU \ Software \ Microsoft \ VisualStudioを\ 10.0Exp \ ExtensionManager \ EnabledExtensions

関連する問題