Несколько версий .Net Core на Macos с brew

#macos #.net-core #homebrew

#macos #.net-core #homebrew

Вопрос:

Я некоторое время искал, но в 2019 году не нашел ничего точного о том, как я могу иметь несколько версий .Net Core на Mac. Мой вариант использования таков, что я использую .Net Core 2.2 для активной разработки, и я хотел бы поиграть с .Net Core 3 и теми качествами, которые у него есть сейчас, такими как компоненты Razor и Blazor.

Я нашел статьи о том, как.Несколько версий Net Core могут работать в одной системе Windows, что потрясающе. Но Mac — это не Windows (к счастью и к сожалению), и я хотел бы использовать brew в качестве менеджера пакетов, который занимается управлением версиями вместо меня. Если это возможно, я не хочу выходить из зоны brew.

Я не нашел информации о том, как brew может мне помочь, скорее он выдает сообщение об ошибке, в котором говорится, что он перезапишет команду dotnet.

 mbp2017 ➜  ~ brew search dotnet
==> Casks
dotnet                                      dotnet-preview                              dotnet-sdk ✔                                dotnet-sdk-preview
mbp2017 ➜  ~ dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   2.2.105
 Commit:    7cecb35b92

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.14
 OS Platform: Darwin
 RID:         osx.10.14-x64
 Base Path:   /usr/local/share/dotnet/sdk/2.2.105/

Host (useful for support):
  Version: 2.2.3
  Commit:  6b8ad509b6

.NET Core SDKs installed:
  2.2.105 [/usr/local/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.2.3 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.2.3 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.2.3 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download
mbp2017 ➜  ~ brew cask install dotnet-sdk-preview
Error: Cask 'dotnet-sdk-preview' conflicts with 'dotnet-sdk'.
➜  ~ dotnet --list-sdks
2.2.105 [/usr/local/share/dotnet/sdk]
  

Я нашел статьи о DNVM, но оказалось, что это что-то вроде.Net Core 1.x, с тех пор кажется, что его нельзя использовать.

Как возможно иметь несколько версий из .Net Core, например, с помощью brew? Если brew не может этого сделать, то какой предлагаемый способ?

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

1. Проблем с установкой нескольких версий возникнуть не должно. Попробуйте установить .NET Core 3, а затем запустите dotnet --list-sdk (или что-то подобное, используйте dotnet , чтобы узнать). Если вы не видите как 3, так и 2.2, вы должны иметь возможность просто удалить 3

2. Какое точное сообщение, когда «[brew] выдает сообщение об ошибке, в котором говорится, что он перезапишет команду dotnet».?

3. @LexLi Я прочитал эту статью, и она специфична для Win, и, как я уже упоминал, сбой диспетчера пакетов Macos. Я не знаю, менеджер пакетов не может или не будет выполнять управление пакетами за меня, или я должен сделать это сам.

4. @CamiloTerevinto Я обновил свой вопрос, он уже включает эти детали.

Ответ №1:

Немного опоздал на вечеринку, но теперь вы можете сделать это одним dotnet-sdk-versions касанием.

Вы можете найти его здесь:https://github.com/isen-ng/homebrew-dotnet-sdk-versions

 brew tap isen-ng/dotnet-sdk-versions
brew install --cask dotnet-sdk2-2-100

dotnet --list-sdks
  

Отказ от ответственности: я написал the tap 2 дня назад

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

1. Выглядит многообещающе, но запуск brew cask install dotnet-sdk-2.2.400 возвращает ошибку «Cask ‘dotnet-sdk-2.2.400’ конфликтует с ‘dotnet-sdk'» для меня.

2. Это ожидаемо. Последняя версия, предоставленная официальным cask, и соответствующая версия my cask будут конфликтовать. Например. вы не можете установить 2 копии 2.2.402 на одном компьютере.

3. Однако вы можете установить любую другую версию без конфликтов.

4. Ах, ты прав. Я только что проверил официальные версии и обнаружил, что они добавили 3.0.100 в официальную версию, если ваша ОС> sierra … Мне нужно будет обновить tap всеми новыми материалами. Спасибо за комплименты!

5. Небольшое обновление. Я получил эту ошибку «Ошибка: вызов brew cask install отключен! Вместо этого используйте brew install [—cask]»… но, как говорится, это работает: «brew install —cask dotnet-sdk3-1-400» Спасибо Isen!!!

Ответ №2:

Кажется, brew не может помочь, или, по крайней мере, я не нашел решения. Однако простая загрузка и установка пакетов с веб-сайтов .Net Core решает проблему. Установив обе версии SDK, вы получите обе.

 ➜  ~ dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   3.0.100-preview3-010431
 Commit:    d72abce213

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.14
 OS Platform: Darwin
 RID:         osx.10.14-x64
 Base Path:   /usr/local/share/dotnet/sdk/3.0.100-preview3-010431/

Host (useful for support):
  Version: 3.0.0-preview3-27503-5
  Commit:  3844df9537

.NET Core SDKs installed:
  2.2.105 [/usr/local/share/dotnet/sdk]
  3.0.100-preview3-010431 [/usr/local/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.2.3 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.2.3 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.0.0-preview3-19153-02 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.2.3 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.0.0-preview3-27503-5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download
  

Ответ №3:

Для предварительного просмотра dotnet core 3 доступен контейнер, вы можете установить последнюю версию предварительного просмотра, используя следующую команду

 $ brew cask install dotnet-sdk-preview
  

После установки вы можете увидеть

 $ dotnet --info 

dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   3.0.100-preview5-011568
 Commit:    b487ff10aa

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.14
 OS Platform: Darwin
 RID:         osx.10.14-x64
 Base Path:   /usr/local/share/dotnet/sdk/3.0.100-preview5-011568/

Host (useful for support):
  Version: 3.0.0-preview5-27626-15
  Commit:  61f30f5a23

.NET Core SDKs installed:
  2.1.403 [/usr/local/share/dotnet/sdk]
  2.2.101 [/usr/local/share/dotnet/sdk]
  2.2.102 [/usr/local/share/dotnet/sdk]
  3.0.100-preview5-011568 [/usr/local/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.0.0-preview5-19227-01 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.0.0-preview5-27626-15 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download
  

Ответ №4:

Шаг 1: Откройте терминал

Шаг 2: brew устанавливает dotnet

Примечание: Вы можете использовать определенную версию по ссылке ниже https://github.com/isen-ng/homebrew-dotnet-sdk-versions

Шаг 3: vi .zshrc

Шаг 4: путь экспорта=»/usr/local/share /dotnet:$ PATH».

Шаг 5: Нажмите клавишу Esc

Шаг 6: :wq клавиша Enter

Шаг 7: исходный код .zshrc

Шаг 8: dotnet —info [для проверки]

Ответ №5:

В качестве альтернативного решения для людей, пришедших сюда из Google, я предлагаю использовать asdf version manager с их плагином dotnet, чтобы иметь несколько версий и легко переключаться между ними:

  1. Установить asdf :https://asdf-vm.com/guide/getting-started.html
  2. Установите плагин dotnet:
 asdf plugin-add dotnet-core https://github.com/emersonsoares/asdf-dotnet-core.git
  
  1. Установите все необходимые версии:
 asdf install dotnet-core 6.0.403
asdf install dotnet-core 7.0.100
  
  1. Выберите одну из них в качестве глобальной, вы также можете выбрать другую версию в качестве локальной в папке вашего проекта:
 asdf global dotnet-core 7.0.100
cd git/project
asdf local dotnet-core 6.0.403
  
  1. Проверьте это!
 $ cd git/project
$ dotnet --version
6.0.403

$ cd ~
$ dotnet --version
7.0.100
  

Ознакомьтесь с полной инструкцией по установке на странице плагина (также подумайте о том, чтобы поставить ему звездочку!): https://github.com/emersonsoares/asdf-dotnet-core

Вы можете управлять версиями многих других инструментов разработки таким же образом с asdf . Ознакомьтесь с их документами.

Ответ №6:

Это сработало для меня:

 brew cask install 
  https://raw.githubusercontent.com/Homebrew/homebrew-cask/master/Casks/dotnet-sdk.rb