2016-01-13 18 views
2

Я загружаю файл в базу данных, используя его byte []. Чтобы сохранить файл в словаре в исполняемом месте, я использую следующий код. Но он работает в MVC 6Создать каталог во время выполнения MVC 6

protected string CreateDirectory() 
     { 
      try 
      { 
       string strDirPath = string.Empty; 
       #region Create directory at executable location 
       string path = Assembly.GetExecutingAssembly().Location; 
       FileInfo fileInfo = new FileInfo(path); 
       string dir = fileInfo.DirectoryName; 
       string dirFolderName = "\\Uploads"; 
       #endregion 
       //Create Directory at executable path 
       if (!Directory.Exists(dir + dirFolderName)) 
       { 
        Directory.CreateDirectory(dir + dirFolderName); 
       } 
       strDirPath = dir + dirFolderName; 
       return strDirPath; 
      } 
      catch (Exception ex) 
      { 
       throw new Exception(ex.Message.ToString()); 
      } 

     } 

Этот код дает ошибку, как показано ниже:

CS0117 'Assembly' does not contain a definition for 'GetExecutingAssembly' ProjectName.DNX Core 5.0  

Пожалуйста, помогите мне, как создать словарь в MVC 6

+0

Рассмотрим использование 'IApplicationEnvironment', который имеет' ApplicationBasePath' свойство. Вы можете использовать некоторые настройки в 'appsettings.json', чтобы получить путь для сохранения файлов (настройка« UploadsPath »). Это очень просто, и это даст вашему приложению больше возможностей настройки. – Oleg

ответ

0

Вместо

Assembly.GetExecutingAssembly().Location; 

typeof(SomeClassInTheCurrentlyExecutingAssembly).GetTypeInfo().Assembly.Location.

Поскольку вы используете DNX 5.0, GetExecutingAssembly() не существует.

+0

Привет, Дарьял, спасибо за ответ как можно скорее. Но вместо «SomeClassInTheCurrentlyExecutingAssembly», что я должен указать? Не получается – iDipa

+0

Это может быть любой класс из вашей сборки. Если у вас несколько сборок, просто выберите класс из сборки, в которой определен CreateDirectory. – daryal

+0

Привет, я добавил класс, но теперь давал ошибку, например: Ошибка \t CS1061 \t «Assembly» не содержит определения для «Location» и не используется метод расширения «Location», принимающий первый аргумент типа «Assembly» (есть вам не хватает директивы использования или ссылки на сборку?) \t ProjectNAme.DNX Core 5.0 – iDipa

0

Не пытайтесь настроить таргетинг на инфраструктуру DNX Core 5.0. Если вам это не нужно в это время, вы можете удалить запись dnxcore50 из файла project.json в своем проекте. Измените его от

"frameworks": { 
"dnx451": { 
    "dependencies": { 
    } 
}, 
"dnxcore50": { } 

в

"frameworks": { 
"dnx451": { 
    "dependencies": { 
    } 
} 
Смежные вопросы