我有一个 Visual Studio 包,它通过启动一个外部进程(使用System.Diagnostics.Process
)并通过标准输入/输出与其通信来完成它的一些工作。目前,我有.exe
硬编码的路径,这显然不适用于实际部署扩展。使用扩展打包和分发的正确方法是什么.exe
?(并且,相关的,一旦我这样做了,我如何以编程方式发现已安装.exe
文件的路径。)最好我想将它放入.vsix
文件中,以便安装。
编辑:我已将我的代码的相关部分放在 BitBucket 上(它可能对使用 Roslyn 的其他人有用):roslyn_process以便更好地了解我正在尝试做什么。此代码AbstractProcessHandler
使用RoslynProcess
. 后者会随时了解对 Visual Studio 中代码文件的修改以及正在查看哪个代码文件,因此它能够使用最新信息进行分析,尽管它不是作为 Visual Studio 扩展运行的,这会施加以下限制Roslyn 关于正在编辑的所有代码。
编辑 2:使用这个答案,我可以获得扩展的目录。source.extension.vsixmanifest
我可以通过将其作为“自定义扩展类型”类型添加到内容列表中来包含另一个包。然后.exe
出现在扩展的目录中。这似乎是正确的解决方案,尽管获取目录的方式在 MSDN 中被标记为我不应该使用的东西。
看起来这可能是最好的方法,即使它看起来很hackish,在这种情况下,一旦我一切正常,我会发布这个作为答案。