2016-02-20 52 views
12

Con asp.net core 1.0 Sono state aggiunte molte funzionalità. Ma non c'è modo di ottenere il percorso della cartella Bin.Come ottenere la cartella bin in ASP.NET Core 1.0

Qualcuno può sapere come ottenere il percorso della cartella bin per l'applicazione asp.net core 1.0.

+0

perché vuoi una cartella bin? –

+0

@MuqeetKhan Un motivo potrebbe essere il recupero del file di documentazione XML prodotto. –

risposta

7

Bene, la cartella bin fa esiste ma viene spostato cartella manufatti accanto al file della soluzione. Poiché ASP.NET Core RC 1 compila tutto in memoria, troverai la cartella bin vuota. Ma se si imposta l'opzione "Produce output su build" su true (facendo clic con il tasto destro del mouse su Project file -> Properties and Build tab), i file generati verranno trovati nella cartella bin.

Non penso ci sia alcuna proprietà diretta disponibile per ottenere il percorso di questo, ma è possibile utilizzare la stessa soluzione indicata da @Nikolay Kostov per ottenere il percorso dell'applicazione. E poi usare le classi System.IO per saltare alla cartella bin.

Codice aggiornato a per ASP.NET Core come indicato qui.

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); 
} 
0

Non è possibile ottenere la cartella /bin/ poiché non è rilevante per il progetto e l'ambiente ASP.NET non sa cosa sia una cartella /bin/.

E inoltre non esiste esattamente una cartella /bin/. Si consiglia di leggere questo articolo: http://docs.asp.net/en/latest/conceptual-overview/understanding-aspnet5-apps.html

ma è possibile ottenere il cosiddetto ApplicationBasePath che è la directory in cui si esegue l'applicazione:

public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv) 
{ 
    string baseDir = appEnv.ApplicationBasePath; 
    // Other startup code 
} 
+0

Sta dando alla cartella con src che non voglio –

+0

Beh, non esiste esattamente una cartella '/ bin /'. Si consiglia di leggere questo articolo: http://docs.asp.net/en/latest/conceptual-overview/understanding-aspnet5-apps.html quindi la radice del progetto è il luogo in cui è stato avviato il codice –

+0

@JalpeshVadgama: questo significa che stai usando l'IDE. – Joshua

22

Questo funziona per recuperare directory del montaggio, da cui si può determinare la posizione bin.

var location = System.Reflection.Assembly.GetEntryAssembly().Location; 
var directory = System.IO.Path.GetDirectoryName(location); 
System.Console.WriteLine(directory); 

uscita

C:\MyApplication\bin\Debug\netcoreapp1.0 
+0

Funziona per me sul mio ambiente locale, ma può funzionare sul servizio API di Azure? – fahadash

+0

@fahadash Non l'ho provato. –

7

modo alternativo (corrisponde al AppDomain.BaseDirectory):

AppContext.BaseDirectory 
Problemi correlati