【问题标题】:LINQPad script directory?LINQPad 脚本目录?
【发布时间】:2010-09-27 10:04:44
【问题描述】:

有人知道如何获取 LINQPad 脚本文件 (.linq) 所在目录的路径吗?

或者脚本本身。

请注意,我不是在谈论“我的查询”文件夹的位置,即显示在 LINQPad 中的文件夹。

我可以将 .linq 文件保存在磁盘上的任何位置,然后双击打开它。

例如,如果我将文件保存到C:\Temp\Test.linq,并执行程序,我希望有C:\TempC:\Temp\Test.linq

基本上,我想要类似于 Environment.CurrentDirectoryAssembly.GetEntryAssembly().Location 的东西,仅用于 .linq 文件。

我尝试过的事情:

  • 查看环境变量
  • 查看提供给我的脚本的 LINQPad 程序集
  • 抛出异常并查看堆栈跟踪(包含指向我的脚本在其他地方的临时副本的链接)
  • Environment.CommandLine.Dump(); - 提供 LINQPad 可执行文件
  • Environment.CurrentDirectory.Dump(); - 给 C:\windows\system32
  • Assembly.GetExecutingAssembly().Location.Dump(); - 提供临时目录

【问题讨论】:

  • 执行上下文总是程序位置。如果文件位置存在,则需要特定的 LinqPAD API。
  • 是的,我有点想知道是否有人知道那是什么:)(假设有)

标签: linqpad


【解决方案1】:

我刚刚添加了一个功能来解决这个问题。您现在可以通过下载2.27.1 or 4.27.1 beta build 来测试它。

要获取当前查询的文件夹,请使用以下表达式:

Path.GetDirectoryName (Util.CurrentQueryPath)

【讨论】:

  • 我喜欢 LINQPad 的原因有很多,而且你似乎没有问题想出新的理由 :) 非常感谢!
  • 我怎么才发现Util这个类型?!
  • Linqpad v5.x Util.CurrentQueryPath 返回 null。
  • 您是否已保存查询? (如果没有,就没有查询路径)
【解决方案2】:

我认为您的意思是通过编程而不是通过 UI 本身。

linq文件目录的路径保存在

%APPDATA%\LINQPad\querypath.txt

【讨论】:

  • 否,它包含“我的查询”目录的路径。我可以轻松地将 .linq 文件保存在其他任何地方,这是我想要的真实位置,我将编辑问题以澄清。我想要当前执行脚本的 .linq 文件的完整路径。
  • 嗯,好的 - 现在问题更清楚了。我不知道答案,但是当您执行尚未保存的查询时,您希望返回什么?
  • 基本上任何东西,临时,随便什么。在这种情况下,它返回脚本临时副本的路径可能是合乎逻辑的。例如,出于某种原因,我可能对阅读源代码感兴趣,但我的主要用途是访问与脚本本身位于同一目录中的数据文件,而无需硬编码脚本所在的路径。
  • 我已经在 LINQPad 作者书籍的论坛上发布了这个问题,所以我会看看这是否能给我提供细节,或者可能是一个功能请求:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-28
  • 2012-04-11
相关资源
最近更新 更多