web-dev-qa-db-fra.com

Comment obtenir un dossier bin dans ASP.NET Core 1.0

Avec asp.net core 1.0 De nombreuses fonctionnalités ont été ajoutées. Mais il n'y a pas moyen d'obtenir le chemin du dossier Bin. 

Quelqu'un peut-il savoir s'il vous plaît comment nous pouvons obtenir le chemin du dossier bin pour l'application asp.net core 1.0.

16
Jalpesh Vadgama

Eh bien, le dossier bin existe, mais il est déplacé vers le dossier artefacts à côté du fichier de solution. Comme ASP.NET Core RC 1 compile tout ce qui est en mémoire, vous trouverez un dossier bin vide. Mais si vous définissez l'option "Produce output on build" sur true (Fichier de projet avec le bouton droit de la souris -> Propriétés et onglet Générer), vous trouverez les fichiers générés dans le dossier bin.

Je ne pense pas que des propriétés directes soient disponibles pour obtenir le chemin mais vous pouvez utiliser la même solution que celle indiquée par @Nikolay Kostov pour obtenir le chemin de l'application. Et ensuite, en utilisant les classes System.IO, accédez au dossier bin.

Code mis à jour pour ASP.NET Core comme mentionné ici.

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);
}
10
VirendraJ

Cela fonctionne pour récupérer le répertoire de l'Assemblée, à partir duquel on peut déterminer l'emplacement bin.

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

Sortie

C:\MyApplication\bin\Debug\netcoreapp1.0
27
Shaun Luttin

Autre manière (correspond à AppDomain.BaseDirectory):

AppContext.BaseDirectory
16
Rolf Kristensen

Vous ne pouvez pas vraiment obtenir le dossier /bin/ puisqu'il n'est pas pertinent pour votre projet et que l'environnement ASP.NET ne sait pas ce qu'est un dossier /bin/.

Et il n’existe pas non plus de dossier /bin/. Vous voudrez peut-être lire cet article: http://docs.asp.net/fr/latest/conceptual-overview/understanding-aspnet5-apps.html

Mais vous pouvez obtenir la prétendue ApplicationBasePath qui correspond au répertoire dans lequel votre application est exécutée:

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