Ich möchte auf meine create.sql
-Datei im Hauptordner meines Servers zugreifen. Es enthält Abfragen zum Einrichten meiner Datenbank. Ich habe ein Problem, auf diese Datei überhaupt zuzugreifen.
1) Ich kann nicht wirklich durch Configuration
dorthin gelangen. Ich kann nur AddJsonFile
, AddXmlFile
und AddIniFile
verwenden. Und ich denke, das ist nicht die beste Idee, um eine große SQL-Datei in eine davon zu bringen.
2) Mvc-Quelle auf github scheint MapPath
zu fehlen. Also keine Möglichkeit, Server.MapPath("~/create.sql")
zu benutzen.
Wie erreiche ich das dann?
Wie bereits bemerkt und in den Kommentaren erwähnt, scheint es in ASP.NET VNext (MVC 6) kein MapPath
zu geben. Ich habe den Workaround hier gefunden:
Grundsätzlich müssen Sie die ApplicationBasePath
von IApplicationEnvironment
-Schnittstelle, die derzeit als Dienst implementiert ist, unterhalb der folgenden Lösung abrufen:
Und anstatt IApplicationEnvironment
zu injizieren, können Sie PlatformServices.Default.Application.ApplicationBasePath
verwenden.
BEARBEITEN : Hier ist eine mögliche Implementierung von MapPath / UnmapPath als Erweiterungen von PlatformServices
:
EDIT2 : Leicht modifiziert, IsPathMapped()
hinzugefügt sowie einige Checks, um zu sehen, ob Pfad-Mapping / Unmapping wirklich benötigt wird.
EDIT3: PlatformServices.WwwRoot()
gibt den tatsächlichen Ausführungspfad zurück und in .net core 2.0, DEBUG-Modus ist es xxx \ bin \ Debug \ netcoreapp2.0, was offensichtlich nicht erforderlich ist. Ersetzen Sie stattdessen PlatformServices
durch IHostingEnvironment
und verwenden Sie environment.WebRootPath
.
Tags und Links c# asp.net-core asp.net-core-mvc