Не удается запустить dotnet в определенных каталогах?

#linux #.net-core

#linux #.net-core

Вопрос:

Я использую команду: dotnet "myfile.dll"

Изначально это выдавало мне эту ошибку: The user's home directory could not be determined. Set the 'DOTNET_CLI_HOME' environment variable to specify the directory to use.

Теперь, после возни с ним, я переместил свои файлы в c:/mydir , и он выдает эту ошибку: Failed to initialize CoreCLR, HRESULT: 0x80070057 . Я нашел это, но это не c:/mydir корневой каталог диска?

Пара вещей, которые я отметил:

  1. Я могу запустить .dll в порядке в другом каталоге.

  2. Оба каталога содержат одинаковые файлы.

Причина, по которой я хочу запустить его в c:/mydir , заключается в том, что я использую AWS CodeDeploy, и именно туда он копирует файлы (насколько я знаю; а остальные каталоги — это просто старые версии, откуда копируются файлы).

Эти проблемы не связаны (первая проблема, с которой я сталкиваюсь при запуске автоматического сценария оболочки после установки, а вторая — при попытке запустить .dll вручную). Если бы кто-нибудь мог помочь мне решить любую из этих проблем, я был бы очень признателен.

Комментарии:

1. Вы говорите о C: , но этот вопрос помечен как linux . Используете ли вы WSL? Или обычный Linux или обычная Windows?

2. @OmairMajid Ах, спасибо, что указали на это, я не знал, что в Linux нет дисков, помеченных как windows. Вот мой образ Linux-компьютера: imgur.com/a/YveiGOo Я обнаружил, что каталог на самом деле root/c:/mydir

3. Я собираюсь изменить каталог на root/mydir и посмотреть, исправит ли это проблему, спасибо

Ответ №1:

Попробуйте добавить Environment=DOTNET_CLI_HOME=/temp к вашему объявлению службы в вашем .service файле. Пример синтаксиса:

 [Service]
...
Environment=VARNAME=VARCONTENTS
  

Итак, фактическое подобное будет выглядеть следующим образом

 Environment=DOTNET_CLI_HOME=/temp