2017-10-13 7 views
4

の場所、それはしかし、この識別子は、C#のスクリプト(CSXファイルやC#インタラクティブ)では動作しません__SOURCE_DIRECTORY__ https://stackoverflow.com/a/4861029/2583080のC#(CSX)のF#でスクリプトファイル

事前に定義された識別子と、むしろ簡単です。

> __SOURCE_DIRECTORY__

(1,1):エラーCS0103:名前は '__SOURCE_DIRECTORY__' のいずれか動作しません、より伝統的な方法で、現在のディレクトリを取得する現在のコンテキスト

には存在しません。 。

  1. Directory.GetCurrentDirectory()

    戻り値:C:\Users\$USER_NAME$\

  2. new Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath;

    戻り値:C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\ManagedLanguages\VBCSharp\InteractiveComponents\

答えて

3

のC#では、あなたがcaller information属性を活用することができます(C#5/VS2012以降で利用可能)。ただ、このような方法で宣言します。

string GetCurrentFileName([System.Runtime.CompilerServices.CallerFilePath] string fileName = null) 
{ 
    return fileName; 
} 

を、オプションのパラメータを指定せずにそれを呼び出す:

string scriptPath = GetCurrentFileName(); // /path/to/your/script.csx 
関連する問題