在调试模式下获取解决方案路径

时间:2018-04-04 05:06:23

标签: .net

我正在编写一个使用xml文件导入一些控制数据的程序。在编写这个程序时,这个带有控制数据的xml文件发生了很大的变化。

现在我通过弄清楚我的程序在哪个目录中运行并在该目录中查找该文件来获取启动时的xml文件。 但是这种方式我必须至少在两个地方更改xml文件(构建调试的路径和发布的构建路径)。

所以我想在调试模式下使用#If DEBUG Then指令从另一个地方获取xml文件。

有没有办法在调试模式下找出运行时的解决方案路径?这就是当前保存xml文件的主文件的地方。

我知道我可以运行我的程序运行的目录并上升两到三个目录,直到我到达解决方案路径,但这只有在您没有将构建路径更改为完全位于解决方案文件夹之外时才有效

1 个答案:

答案 0 :(得分:0)

这是使用VS EnvDTE.DTE的黑客攻击。

EnvDTE.DTE dte = (EnvDTE.DTE)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.15.0");
string solutionDir = System.IO.Path.GetDirectoryName(dte.Solution.FullName);

您必须更换" VisualStudio.DTE.15.0 "与你的VS版本。