私はVisual Studioパッケージを使用して、外部プロセス(System.Diagnostics.Process
を使用)を開始し、標準入出力で通信します。現時点では、私は実際に拡張機能を展開するためには明らかに実行できないハードコードされた.exe
へのパスを持っています。拡張子付きで.exe
をパッケージ化して配布する正しい方法は何ですか? (そして、これを済ませたら、インストールされた.exe
ファイルへのパスをプログラムでどのように発見するのでしょうか?)好ましくは、インストールを容易にするために.vsix
ファイルに入れたいと思います。.vsixに.exeをパッケージ化し、Visual Studioの拡張機能から呼び出します。
編集:私が何をしようとしています何の良いアイデアを与えるためにroslyn_process:私はのBitbucket上の私のコードの関連部分を(それがロズリンを使用して他の誰かに有用である可能性がある)に置かれています。このコードは、AbstractProcessHandler
の実装を使用するVisual Studio拡張と、RoslynProcess
を使用する別のプロセスとの間の通信を設定します。後者には、Visual Studioのコードファイルの変更が通知され、コードファイルが表示されているため、Visual Studio拡張機能として実行されていないにもかかわらず、最新の情報を使用して分析を行うことができます。編集中のすべてのコードにRoslyn
EDIT 2:this answerを使用すると、拡張機能のディレクトリを取得できます。 source.extension.vsixmanifest
に別のパッケージを含めることができます。これは、コンテンツタイプに "カスタム拡張の種類"として追加します。その後、拡張のディレクトリに.exe
が表示されます。これは、おそらく適切な解決策のようだが、ディレクトリを取得する方法は、私が使用してはならないものとしてMSDNにラベルが付けられています。
hackishのように見えるかもしれませんが、これが最良の方法であると思われます。
@Kiquenet:申し訳ありませんが、私はきれいにパッケージ化された最小限のソリューションを持っていません...しかし、受け入れられた答えは1ライナーです。 – perelman