Come accedere al percorso di base dell'applicazione ASP.NET dalla proprietà IApplicationEnvironment.ApplicationBasePath
da qualsiasi posizione nel codice? Non sono nella classe Startup ma in qualche altra classe helper e ho bisogno di trovare la directory dell'applicazione corrente da lì. Non c'è anche HttpContext perché il metodo verrà chiamato indipendentemente dalle richieste da un timer. Posso chiedere al contenitore delle dipendenze o qualcosa del genere per quella informazione? C'è un altro modo per ottenere queste informazioni?Accesso IApplicationEnvironment.ApplicationBasePath
8
A
risposta
10
Controllare sempre il announcements on GitHub per le versioni beta/rc.
Come annunciato here, l'interfaccia IApplicationEnvrionment
è stata rimossa da ASP.NET Core RC2.
per ottenere il percorso nel metodo di avvio, fare questo
public Startup(IHostingEnvironment hostingEnvironment)
{
var builder = new ConfigurationBuilder()
.SetBasePath(hostingEnvironment.ContentRootPath)
...
}
Se avete bisogno di fuori, è possibile utilizzare il metodo statico PlatformServices.Default
per accedere sia tipi concreti o registri con il contenitore IoC e risolvere altrove. Più tardi uno è preferibile per la maggior parte degli usi.
7
ora è possibile ottenere che da
IHostingEnvironment.ContentRootPath
IApplicationEnvironment non esiste più
Grazie per l'aggiornamento RC2. Sono venuto da Google e sono pieni di vecchie cianfrusaglie. Intendi "PlatformServices.Default.Application.ApplicationBasePath'? Non riesco a vedere nulla di simile a "IHostingEnvironment.ContentRootPath' qui. – ygoe
No, quello punta al file dll. Ho bisogno del percorso in cui si trovano gli altri file. Sto distribuendo un file di script con la mia applicazione e ho bisogno di ottenere il suo percorso in fase di esecuzione per chiamare un processo esterno con esso. – ygoe
Il problema con l'uso di 'IHostingEnvironment' è che mi costringe a fare riferimento al pacchetto' Microsoft.AspNetCore.Mvc'. Stavo già usando 'AppDomain.CurrentDomain.BaseDirectory' in una libreria di classi che non ha nulla a che fare con MVC. Non voglio fare riferimento ai pacchetti MVC e introdurre quella dipendenza non necessaria. – NathanAldenSr