我有一個Visual Studio包,它通過啓動外部進程(使用System.Diagnostics.Process
)並通過標準輸入/輸出與它進行通信來完成其某些工作。目前,我有硬編碼.exe
的路徑,這對於實際部署擴展而言顯然不可行。使用擴展名打包和分發.exe
的正確方法是什麼? (並且,相關的,一旦我這樣做了,我如何以編程方式發現安裝的文件的路徑。)最好我想將它放到.vsix
文件中,以便安裝很容易。將.exe打包成.vsix並從Visual Studio擴展中調用
編輯:我已經把我的上到位桶代碼中的相關部分(也可能是別人使用羅斯林有用):roslyn_process爲了得到什麼,我試圖做一個更好的主意。此代碼在使用AbstractProcessHandler
的實現的Visual Studio擴展與使用RoslynProcess
的獨立進程之間建立通信。後者隨時瞭解Visual Studio中代碼文件的修改情況以及正在查看哪些代碼文件,因此它能夠使用最新信息進行分析,儘管沒有將其作爲Visual Studio擴展運行,這會增加羅斯林正在編輯所有代碼。
編輯2:使用this answer,我可以得到擴展的目錄。我可以在source.extension.vsixmanifest
中加入另一個包,方法是將其添加到內容列表中,類型爲「自定義分機類型」。然後.exe
出現在擴展的目錄中。這似乎可能是正確的解決方案,雖然獲取目錄的方式在MSDN中被標記爲我不應該使用的東西。
看起來這可能是做到這一點的最好辦法,即使它看起來hackish的,在這種情況下,一旦我得到一切的工作我會後這是一個答案。
@Kiquenet:對不起,我沒有一個包裝精美的最小的解決方案......但接受的答案是一個班輪。 – perelman 2014-12-12 00:59:55