#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
корневой каталог диска?
Пара вещей, которые я отметил:
-
Я могу запустить .dll в порядке в другом каталоге.
-
Оба каталога содержат одинаковые файлы.
Причина, по которой я хочу запустить его в 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