在VS扩展中嵌入IronPython的stdlib

时间:2014-04-16 09:05:35

标签: c# visual-studio-2013 ironpython vsix

我目前正在编写一个Visual Studio扩展,它提供了脚本编写功能。我正在使用IronPython(最新的),但我的Python标准库存在一些问题。

据我所知,所有必需的文件都位于<IronPython folder>\Lib文件夹中。我不能依赖我的用户安装IronPython,所以我必须以其他方式提供这些文件。

如果可能,我只是将整个Lib文件夹嵌入我的程序集中,并允许IronPython从代码中访问它,但我不确定,如果可能的话。我可以尝试将Lib文件夹添加到扩展程序包并将其解压缩到Visual Studio将复制扩展程序文件的位置,但我不确定如何在扩展程序运行时访问它们。此外,我想为用户透明地设置适当的路径,我也不确定是否可以这样做。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我认为有一种方法可以将它们包含在VSIX文件中,并且还知道它们在磁盘上的位置 - 至少,您可以使用AppDomain.CurrentDomain.GetAssemblies()来查找IronPython程序集并Assembly.Location到找到它的位置,并希望VSIX将Lib目录放在该目录附近。 (我对VSIX的唯一体验是不久前的,我讨厌它,所以我不能在那个部门提供很多建议。)

假设您正在嵌入IronPython,一旦您拥有该位置,您可以使用ScriptEngine.SetSearchPaths告诉IronPython Lib目录所在的位置。如果你正在炮轰ipy.exe,那么在启动之前设置IRONPYTHONPATH环境变量。

相关问题