1

使用 执行 C# 脚本 ( .csx) 时C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\csi.exe,如何获取正在执行的脚本的路径?

线

Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory); 

打印解释器 ( ) 的路径csi.exe,而不是脚本。

脚本应该在某种程度上知道它的路径,因为您可以使用这样的相对路径加载程序集:

#r "..\\bla\\asdf.dll"
4

1 回答 1

2

只有使用辅助方法,我才能以编程方式获取 .CSX 源脚本的完整路径。该方法使用CallerFilePath属性。这适用于交互式 Rosalyn C# shell 以及命令行。

using System.Runtime.CompilerServices;
// Work-around helper method to get the source file location.
private static string GetSourceFile([CallerFilePath] string file = "") => file;
Console.WriteLine($"Full path to .csx source file => {GetSourceFile()}");
于 2019-01-18T16:19:25.057 回答