外部プロセスを開始し(を使用System.Diagnostics.Process
)、標準入出力を介して通信することで、一部の作業を行うVisual Studioパッケージがあります。.exe
現在、拡張機能を実際に展開するには明らかに機能しないハードコードへのパスがあります。.exe
拡張機能を使用して をパッケージ化して配布する正しい方法は何ですか? (そして、関連して、インストールしたファイルへのパスをプログラムでどのように見つけるのですか。)できれば、インストールが簡単.exe
になるようにファイルに入れたいと思います。.vsix
編集:コードの関連部分を BitBucket に配置しました (Roslyn を使用している他の人にとっては役立つかもしれません): roslyn_processは、私がやろうとしていることをよりよく理解するためです。AbstractProcessHandler
このコードは、 の実装を使用する Visual Studio 拡張機能と、 を使用する別のプロセスとの間の通信をセットアップしRoslynProcess
ます。後者は、Visual Studio のコード ファイルへの変更と、どのコード ファイルが表示されているかを常に通知されるため、Visual Studio の拡張機能として実行されていなくても、最新の情報を使用して分析を行うことができます。編集中のすべてのコードの Roslyn。
EDIT 2: this answerを使用して、拡張機能のディレクトリを取得できます。source.extension.vsixmanifest
タイプ「カスタム拡張タイプ」としてコンテンツリストに追加することにより、別のパッケージを含めることができます。次に、.exe
拡張機能のディレクトリに表示されます。これはおそらく正しい解決策のようですが、ディレクトリを取得する方法は MSDN で使用すべきではないものとしてラベル付けされています。
ハックのように見えますが、これがこれを行うための最良の方法のようです。その場合、すべてが機能するようになったら、これを回答として投稿します。