Я пытаюсь создать конвейер компакт-дисков с помощью GitHub Actions и AWS Beanstalk (Linux) для моего приложения ASP. NET Core 3.1. Я настроил файл YML следующим образом:
- name: dotnet Build
run: dotnet build src/SLNNAME.sln -c Release --no-restore
- name: dotnet Publish
run: |
dotnet publish src/SLNNAME.Server/SLNAME.Server.Web/SLNNAME.Server.Web.csproj -c Release -o staging_SLNNAME_server -r linux-x64
- name: Build deployment package
run: zip -r staging-server-deploy.zip staging_SLNNAME_server
..
- name: Deploy to AWS Beanstalk
uses: einaregilsson/beanstalk-deploy@v10
with:
aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
region: ${{ secrets.AWS_REGION }}
application_name: SLNNAME-staging-app-web
environment_name: SLNNAME-staging-server
version_label: "staging-app-web-${{ steps.format-time.outputs.replaced }}"
deployment_package: staging-server-deploy.zip
Но при развертывании на AWS возникает ошибка. В частности, просматривая журналы Beanstalk, я могу прочитать следующую ошибку:
[ERROR] An error occurred during execution of command [app-deploy] - [CheckProcfileForDotNetCoreApplication]. Stop running the command. Error: error stat /var/app/staging/staging_SLNNAME_server/SLNNAME.dll: no such file or directory with file /var/app/staging/staging_SLNNAME_server/SLNNAME.dll
В принципе, я думаю, что он ищет DLL с именем решения вместо имени проекта - SLNName.Server.Web. Интересно еще, где он берет имя решения, так как оно не является частью zip-файла. Я также попробовал использовать флаг --self-contained
, но ошибка точно такая же.
У меня есть эта ошибка, даже если я пытаюсь опубликовать sh решение с помощью AWS инструментария Visual Studio extension.
Единственный способ, который я нашел, чтобы исправить это, - это изменить имя выходной DLL проекта, чтобы оно соответствовало имени решения, но для меня это не имеет никакого смысла - у меня могут возникнуть другие проблемы в будущем.
Спасибо