Asp.net core 1.0では、多くの機能が追加されています。ただし、Bin Folderパスを取得する方法はありません。
Asp.net core 1.0アプリケーションのbinフォルダーパスを取得する方法を誰でも知ってください。
Binフォルダーは存在しますが、ソリューションファイルの横のartifactsフォルダーに移動します。 ASP.NET Core RC 1はメモリ内のすべてをコンパイルするため、空のbinフォルダーが見つかります。ただし、「ビルド時に出力を生成」オプションをtrueに設定すると(プロジェクトファイル-> [プロパティとビルド]タブを右クリック)、binフォルダーに生成されたファイルが表示されます。
このパスを取得するための直接的なプロパティはありませんが、@ Nikolay Kostovが指摘したのと同じソリューションを使用してアプリケーションパスを取得できます。そして、System.IOクラスを使用してbinフォルダーにジャンプします。
ここで述べたように、ASP.NET Core向けにコードが更新されました。
http://www.talkingdotnet.com/get-application-wwwroot-path-aspnet-core-rc2/
public Startup(IHostingEnvironment env, IApplicationEnvironment appenv)
{
string sAppPath = env.ContentRootPath;
string sRootPath = Path.GetFullPath(Path.Combine(sAppPath, @"..\..\"));
string sBinFolderPath = @"artifacts\bin\" + appenv.ApplicationName;
string sBinPath = Path.Combine(sRootPath, sBinFolderPath);
}
これにより、アセンブリのディレクトリが取得され、そこからbin
の場所を特定できます。
var location = System.Reflection.Assembly.GetEntryAssembly().Location;
var directory = System.IO.Path.GetDirectoryName(location);
System.Console.WriteLine(directory);
出力
C:\MyApplication\bin\Debug\netcoreapp1.0
別の方法(AppDomain.BaseDirectoryに対応):
AppContext.BaseDirectory
/bin/
フォルダーはプロジェクトに関連しておらず、ASP.NET環境は/bin/
フォルダーが何であるかを知らないため、実際には取得できません。
また、/bin/
フォルダーもありません。この記事を読むことをお勧めします。 http://docs.asp.net/en/latest/conceptual-overview/understanding-aspnet5-apps.html
ただし、アプリケーションを実行するディレクトリであるApplicationBasePath
と呼ばれるものを取得できます。
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
string baseDir = appEnv.ApplicationBasePath;
// Other startup code
}