Эта проблема возникает при открытии в Visual Studio для Mac проекта, созданного с использованием Visual Studio для Windows.Поскольку большинство разработчиков в моей команде используют компьютеры под управлением Windows, я хотел найти решение, которое позволило бы мне запустить проект без изменения его конфигурации.Это потребовало много времени и исследований, но я наконец-то заставил его работать:
Проверьте, существует ли папка ~/.aspnet/https
.Если это так, перейдите к , шаг 5 .
Создание структуры папок ~./asp.net/https
.
Выполните командуниже, чтобы установить сертификаты разработки, которые позволяют вам получить доступ к localhost
через HTTPS.Подробнее здесь .
dotnet dev-certs https --trust
Запустите приведенную ниже команду для экспорта сертификата разработки.Запишите пароль, так как он понадобится вам позже:
dotnet dev-certs https -ep ${HOME}/.aspnet/https/FILE_NAME.pfx -p PASSWORD
Проверьте, существует ли папка ~/.microsoft/usersecrets
.Если это так, это означает, что вы уже определили некоторые пользовательские секреты, поэтому вы, вероятно, можете перейти к step 7 , в противном случае продолжите ниже.
Получите пользовательские секретыИдентификатор сборки веб-приложения, которое вы создаете.Обычно он находится в файле с именем Your.Project.Package.Name.Assembly.cs
.Вы также можете выполнить поиск UserSecrets.UserSecretsIdAttribute("
в папке вашего проекта и взять GUID.
Возможно, вам придется повторить этот шаг для нескольких сборок в вашем решении, если вы используете Docker Compose для развертывания болееодно веб-приложение одновременно.
Внутри ~./microsoft/usersecrets
, создайте папку с GUID, который вы получили на шаге 6, при условии, что оно еще не существует.Если это так, вы можете просто обновить файл secrets.json
внутри него с содержанием следующего шага.
Создать файл secrets.json
и вставить следующее:
{
"Kestrel": {
"Certificates": {
"Default": {
"Path": "/root/.aspnet/https/<FILE_NAME from Step 4>.pfx",
"Password": "<PASSWORD from Step 4>"
}
}
}
}
Создайте файл с именем .env
в той же папке, где находятся файлы конфигурации Docker Compose, внутри решения, со следующим содержимым:
APPDATA=/Users/YOUR_USER_NAME
Этот файл будетDocker Compose автоматически подхватывает, когда Visual Studio запускает инструмент.
Добавьте файл .env
, который вы только что создали, в .gitignore
, чтобы он не был зафиксирован с вашими изменениямипо ошибке.Это гарантирует, что другие разработчики с другими средами также смогут использовать этот подход.
Создайте символическую ссылку на точку от ~/ASP.NET
до .aspnet
следующим образом:
ln -s ~/.aspnet ~/ASP.NET
Создание символической ссылки на точку ~/ASP.NET/Https
до ~/.aspnet/https
следующим образом:
ln -s ~/.aspnet/https ~/ASP.NET/Https
Создание символической ссылки на точку ~/Microsoft
на ~/.microsoft
следующим образом:
ln -s ~/.microsoft ~/Microsoft
Создать символическую ссылку на точку ~ / Microsoft / UserSecrets to
~ / .microsoft / usersecrets` следующим образом:
ln -s ~/.microsoft/usersecrets ~/Microsoft/UserSecrets
Если вы правильно выполните все шаги, Docker Compose сможет определить путь Windows в вашей среде Mac, найти требуемый пароль сертификата и правильно запустить решение.