Я пытаюсь установить dotenet ef на Ubuntu 20.4.1 LTS
.
Во-первых, я установил инструмент глобально:
dotnet tool install --global dotnet-ef
Поскольку это не сработало, я добавил эту ссылку PATH в папку инструментов dotnet в моем файле .bashrc
:
export PATH = "$PATH:$HOME/.dotnet/tools/"
Как предложено здесь: Не удается найти команду «dotnet ef»?
Тем не менее, когда я пытаюсь запустить dotnet ef
, я получаю это сообщение об ошибке:
Could not execute because the specified command or file was not found.
Possible reasons for this include:
* You misspelled a built-in dotnet command.
* You intended to execute a .NET Core program, but dotnet-ef does not exist.
* You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.
Интересно, что если я попытаюсь установить его снова, мне сообщат, что он уже установлен.
Tool 'dotnet-ef' is already installed.
Но если я попытаюсь перечислить установленные инструменты с помощью dotnet tool list
, я получу пустой результат:
Tool 'dotnet-ef' is already installed.
Я также проверил свою папку ~/.dotnet/tools/
, и она пуста.
Что мне здесь не хватает?
@jandrew Я не уверен, что знал. Можно ли как-то убедиться, сделал я это или нет?
Итак, как вы установили .NET SDK на свой компьютер с Ubuntu? Я предполагаю, что это было либо через один из менеджеров пакетов (sudo apt-get
и т. д.), либо вы установили его вручную?
Я не могу вспомнить, как я это сделал, я могу как-то проверить, как это было?
У меня была такая же проблема на Ubuntu. Я установил dotnet вручную. По какой-то причине dotnet-ef ищет dotnet в «/usr/share/dotnet». Поэтому мне пришлось установить dotnet-sdk точно в каталог «/usr/share/dotnet», соответствующим образом изменить PATH, а также установить DOTNET_ROOT в этот каталог. Тогда и работал dotnet-ef.
Кстати: вы можете указать путь установки dotnet-ef вручную с помощью --tool-path "$HOME/.dotnet/tools", если --global не работает.
Это привело меня к тому, что я обнаружил, что у меня есть /usr/share/dotnet, который был пуст, и воссоздал его как символическую ссылку на мою папку $HOME/.dotnet.
Решение найдено.
Добавьте следующее в .bashrc/.zshrc
export PATH = "$PATH:$HOME/.dotnet/tools/"
При использовании Fish используйте fish_add_path $HOME/.dotnet/tools/
после глобальной установки ef.
Вы использовали
snap install
для установки dotnet sdk? Если да, то попробуйтеsudo snap alias dotnet-sdk.dotnet dotnet
. Может не помочь, но по крайней мере сузит проблему