2016-08-10 9 views
2

私は小さなVisual Studioエクステンションを開発していましたが(それは社内での使用のためだけです)、VSIXプロジェクト自体で構成されています。他のいくつかのプロジェクトを参照しています(同じソリューション内にもあります)。これは、拡張機能をデバッグしてVisual Studioの実験的なインスタンスで実行すると、すべて正常に動作します。しかし、VSIXをVisual Studioに実際にインストールしようとすると(.vsixファイルをダブルクリックしても)動作しません。他のアセンブリから何も参照していない1つのコマンドがあり、次にそれがうまく動作する別のコマンドがあります。VSIXはVS 2015の依存関係をインストールしていません

C:\Users\matt.burland\AppData\Local\Microsoft\VisualStudio\14.0Exp\ExtensionsC:\Users\matt.burland\AppData\Local\Microsoft\VisualStudio\14.0\Extensionsのインストールを見ると、違いはVSIXによってインストールされていない他の依存関係がわかります。

私はVS2010のために、この質問を見た:VSIX package doesn't include localized resources of referenced assembly

をしかしそこに解決策が関連していないようです。設定するプロパティーがOutput Groups Included in VSIXには表示されません。

私はsource.extension.vsixmanifestを見てみましたが、依存関係のタブがあります。私はEmbed in this VSIX選択し、私のプロジェクトの一つを選択し、ソースとしてA project in current solutionを選択し、Newを選択したが、私はOkをクリックしたときに、私は、エラーメッセージが出ます:

VSIXマニフェスト・エディタを

ませエクステンダは、名前のために見つかりませんでした

CATID {2F0FA3B8-C855-4a4e-95A5-CB45C67D6C27}の下にある 'VsixProjectReferenceContentItemObjectExtender'このエクステンダーのエクステンダープロバイダーが正しく登録されていることを確認してください。

答えて

0

私は、依存関係ではなく資産を調べるべきであることを認識しましたが、マニフェストエディタを使用して同様のエラーで追加することができませんでした。そこで、私は全く新しい、空のVSIXプロジェクトを新しいソリューションで作成し、空のクラスライブラリを追加し、VSIXプロジェクトでそれを参照してから、マニフェストエディタを見ました。何らかの理由で、問題なくアセンブリを追加できました。

XMLエディタで.vsixmanifestファイルを見ると、アセンブリを参照して実際のプロジェクトにコピーする正しい構文がわかります。 (.vsixmanifest上のドキュメントはここでは、すべての有益ではないので)記録のために、それは次のようになります。

MyProjectが中に含まれる必要があるあなたの溶液中の依存クラスライブラリの名前です
<Asset Type="Microsoft.VisualStudio.Assembly" d:Source="Project" d:ProjectName="MyProject" 
     Path="|MyProject|" AssemblyName="|MyProject;AssemblyName|" /> 

VSIX。

関連する問題