Как получить путь к исполняемому скрипту.csx?
При выполнении сценария C# (.csx
) с C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\csi.exe
Как я могу получить путь к сценарию выполняется?
Линия
Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory);
выводит путь к интерпретатору (csi.exe
), а не сценарий.
Сценарий должен знать о своем пути на некотором уровне, так как вы можете загружать сборки с относительным путем, например так:
#r "..\\bla\\asdf.dll"
0 ответов
Только с помощью вспомогательного метода я мог программно получить полный путь к исходному скрипту.CSX. Метод использует атрибут CallerFilePath. Это работает из интерактивной оболочки Rosalyn C#, а также из командной строки.
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()}");