From 3914dcf07874c4a3081f4e98256bdd59d58440a9 Mon Sep 17 00:00:00 2001 From: colin Date: Sat, 22 Feb 2025 18:33:01 +0800 Subject: [PATCH 1/2] chore: Update the microservice startup template. --- ...PackageName.CompanyName.ProjectName.csproj | 4 +- .../templates/micro/content/.gitlab-ci.yml | 44 ++++++ .../micro/content/Directory.Packages.props | 36 +++-- .../templates/micro/content/common.props | 4 +- .../micro/content/deploy/deployment.yaml | 89 +++++++++++ .../deploy/docker-compose.override.yml | 9 ++ .../micro/content/deploy/docker-compose.yml | 15 ++ .../appsettings.Development.json | 147 ------------------ .../appsettings.json | 83 ---------- .../Dockerfile | 4 +- ...ompanyName.ProjectName.HttpApi.Host.csproj | 2 +- .../FodyWeavers.xml | 3 + .../FodyWeavers.xsd | 0 ...ame.DbMigrator.EntityFrameworkCore.csproj} | 32 +--- .../ProjectNameDbContextFactory.cs | 62 ++++++++ .../ProjectNameDbMigrationEventHandler.cs | 0 .../ProjectNameDbMigrationService.cs | 14 +- ...NameDbMigratorEntityFrameworkCoreModule.cs | 105 +++++++++++++ .../DbMigratorHostedService.cs | 0 .../FodyWeavers.xml | 0 .../FodyWeavers.xsd | 30 ++++ ....CompanyName.ProjectName.DbMigrator.csproj | 39 +++++ ...eCompanyNameProjectNameDbMigratorModule.cs | 2 +- .../Program.cs | 0 .../appsettings.json | 12 ++ .../migrations/migrations-database.ps1 | 15 ++ ...e.ProjectName.Application.Contracts.csproj | 2 +- .../ProjectNameRemoteServiceConsts.cs | 2 +- ...CompanyName.ProjectName.Application.csproj | 2 +- ...CompanyName.ProjectName.Dapr.Client.csproj | 2 +- ...mpanyName.ProjectName.Domain.Shared.csproj | 3 +- .../ProjectNameFeatureDefinitionProvider.cs | 0 .../Features/ProjectNameFeatureNames.cs | 0 .../ProjectNameDomainSharedModule.cs | 2 + ...Name.CompanyName.ProjectName.Domain.csproj | 3 +- .../ProjectNameDataSeedContributor.cs | 22 +++ .../ProjectName/ProjectNameDomainModule.cs | 4 - ...ame.ProjectName.EntityFrameworkCore.csproj | 14 +- .../ProjectNameDbContextFactory.cs | 49 ------ .../ProjectNameEntityFrameworkCoreModule.cs | 82 +--------- ...panyName.ProjectName.HttpApi.Client.csproj | 2 +- ...ame.CompanyName.ProjectName.HttpApi.csproj | 2 +- ...yName.ProjectName.SettingManagement.csproj | 2 +- .../ProjectNameSettingController.cs | 2 +- ...yName.ProjectName.Application.Tests.csproj | 2 +- ...ompanyName.ProjectName.Domain.Tests.csproj | 2 +- ...ojectName.EntityFrameworkCore.Tests.csproj | 2 +- ...me.CompanyName.ProjectName.TestBase.csproj | 2 +- 48 files changed, 511 insertions(+), 443 deletions(-) create mode 100644 aspnet-core/templates/micro/content/.gitlab-ci.yml create mode 100644 aspnet-core/templates/micro/content/deploy/deployment.yaml create mode 100644 aspnet-core/templates/micro/content/deploy/docker-compose.override.yml create mode 100644 aspnet-core/templates/micro/content/deploy/docker-compose.yml delete mode 100644 aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.Development.json delete mode 100644 aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.json create mode 100644 aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/FodyWeavers.xml rename aspnet-core/templates/micro/content/{host/PackageName.CompanyName.ProjectName.DbMigrator => migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore}/FodyWeavers.xsd (100%) rename aspnet-core/templates/micro/content/{host/PackageName.CompanyName.ProjectName.DbMigrator/PackageName.CompanyName.ProjectName.DbMigrator.csproj => migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj} (50%) create mode 100644 aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbContextFactory.cs rename aspnet-core/templates/micro/content/{src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore => migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore}/ProjectNameDbMigrationEventHandler.cs (100%) rename aspnet-core/templates/micro/content/{src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore => migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore}/ProjectNameDbMigrationService.cs (90%) create mode 100644 aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigratorEntityFrameworkCoreModule.cs rename aspnet-core/templates/micro/content/{host => migrations}/PackageName.CompanyName.ProjectName.DbMigrator/DbMigratorHostedService.cs (100%) rename aspnet-core/templates/micro/content/{host => migrations}/PackageName.CompanyName.ProjectName.DbMigrator/FodyWeavers.xml (100%) create mode 100644 aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/FodyWeavers.xsd create mode 100644 aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/PackageName.CompanyName.ProjectName.DbMigrator.csproj rename aspnet-core/templates/micro/content/{host => migrations}/PackageName.CompanyName.ProjectName.DbMigrator/PackageNameCompanyNameProjectNameDbMigratorModule.cs (83%) rename aspnet-core/templates/micro/content/{host => migrations}/PackageName.CompanyName.ProjectName.DbMigrator/Program.cs (100%) create mode 100644 aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.json create mode 100644 aspnet-core/templates/micro/content/migrations/migrations-database.ps1 rename aspnet-core/templates/micro/content/src/{PackageName.CompanyName.ProjectName.Domain => PackageName.CompanyName.ProjectName.Domain.Shared}/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureDefinitionProvider.cs (100%) rename aspnet-core/templates/micro/content/src/{PackageName.CompanyName.ProjectName.Domain => PackageName.CompanyName.ProjectName.Domain.Shared}/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureNames.cs (100%) create mode 100644 aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/ProjectNameDataSeedContributor.cs delete mode 100644 aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbContextFactory.cs diff --git a/aspnet-core/templates/micro/PackageName.CompanyName.ProjectName.csproj b/aspnet-core/templates/micro/PackageName.CompanyName.ProjectName.csproj index 17ebde66d..d252f6fc6 100644 --- a/aspnet-core/templates/micro/PackageName.CompanyName.ProjectName.csproj +++ b/aspnet-core/templates/micro/PackageName.CompanyName.ProjectName.csproj @@ -1,9 +1,9 @@ - net8.0 + net9.0 true LINGYUN.Abp.MicroService.Templates - 8.3.4 + 9.0.4 colin.in@foxmail.com Abp framework micro-service template MIT diff --git a/aspnet-core/templates/micro/content/.gitlab-ci.yml b/aspnet-core/templates/micro/content/.gitlab-ci.yml new file mode 100644 index 000000000..40e9f2c72 --- /dev/null +++ b/aspnet-core/templates/micro/content/.gitlab-ci.yml @@ -0,0 +1,44 @@ +image: mcr.microsoft.com/dotnet/sdk:9.0 + +stages: + - build + - test + - tag + +build_job: + stage: build + script: + - echo "[ProjectName] - Build project..." + - dotnet build --configuration Release + only: + - dev + +test_job: + stage: test + script: + - echo "[ProjectName] - Unit testing..." + - dotnet test --no-build --configuration Release + dependencies: + - build_job + only: + - dev + +tag_job: + stage: tag + only: + - main + script: + - echo "[ProjectName] - Tag project..." + # 获取 common.props 中定义的版本号 + - export VERSION=$(sed -n 's/.*\([0-9]*\.[0-9]*\.[0-9]*\)<\/Version>.*/\1/p' common.props) + - echo $VERSION + + # 此处 yougitlab.com 替换为自己的 gitlab 服务器 + - git config --global user.email "ci@yougitlab.com" + - git config --global user.name "GitLab CI Bot" + + - git tag -f $VERSION + # 此处 yougitlab.com 替换为自己的 gitlab 服务器, 如未启用 https, 变更为 http://oauth2:$GITLAB_TOKEN@yougitlab.com/$CI_PROJECT_PATH.git + # 此处 $GITLAB_TOKEN 需要在gitlab服务器中配置 GITLAB_TOKEN 变量 + - git remote set-url origin https://oauth2:$GITLAB_TOKEN@yougitlab.com/$CI_PROJECT_PATH.git + - git push --force origin $VERSION diff --git a/aspnet-core/templates/micro/content/Directory.Packages.props b/aspnet-core/templates/micro/content/Directory.Packages.props index 18e6f3e9a..394dc9147 100644 --- a/aspnet-core/templates/micro/content/Directory.Packages.props +++ b/aspnet-core/templates/micro/content/Directory.Packages.props @@ -1,12 +1,12 @@ - 8.2.0 + 8.3.2 2.14.1 - 8.3.4 - 8.3.4 - 8.0.0 - 8.0.0 - 8.0.0 + 9.0.4 + 9.0.4 + 9.0.0.0 + 9.0.0.0 + 9.0.0.0 true @@ -281,6 +281,9 @@ + + + @@ -361,12 +364,12 @@ - + - + @@ -377,7 +380,8 @@ - + + @@ -473,19 +477,19 @@ - + - - - - + + + + - - + + diff --git a/aspnet-core/templates/micro/content/common.props b/aspnet-core/templates/micro/content/common.props index 6052366a9..afab93ddb 100644 --- a/aspnet-core/templates/micro/content/common.props +++ b/aspnet-core/templates/micro/content/common.props @@ -1,12 +1,12 @@ latest - 8.3.4 + 9.0.4 colin $(NoWarn);CS1591;CS0436;CS8618;NU1803 https://github.com/colinin/abp-next-admin $(SolutionDir)LocalNuget - 8.3.4 + 9.0.4 MIT git https://github.com/colinin/abp-next-admin diff --git a/aspnet-core/templates/micro/content/deploy/deployment.yaml b/aspnet-core/templates/micro/content/deploy/deployment.yaml new file mode 100644 index 000000000..6e6b120d3 --- /dev/null +++ b/aspnet-core/templates/micro/content/deploy/deployment.yaml @@ -0,0 +1,89 @@ +# ProjectName Pod +apiVersion: apps/v1 +kind: Deployment +metadata: + name: project-name-api + labels: + name: project-name-api +spec: + replicas: 1 + selector: + matchLabels: + name: project-name-api + template: + metadata: + labels: + name: project-name-api + spec: + containers: + - name: project-name-api + image: project-name-api:latest + env: + - name: ASPNETCORE_ENVIRONMENT + value: Production + # 时区问题自行修改 + # - name: TZ + # value: "Asia/Shanghai" + ports: + - containerPort: 8080 + imagePullPolicy: Always + livenessProbe: + httpGet: + path: /healthz + port: 8080 + volumeMounts: + # appsettings挂载 + # - mountPath: /app/appsettings.Production.json + # name: volume-cmkw2z + # subPath: appsettings.Production.json + - mountPath: /app/Logs + name: volume-xk3mds + subPath: ./logs + - mountPath: /app/Modules + name: volume-xk3mds + subPath: ./modules + volumes: + # 其他存储挂载自行处理 + - hostPath: + path: /var/opt/project-name + type: DirectoryOrCreate + # 注意变更名称 + name: volume-xk3mds + # appsettings挂载 + # - configMap: + # defaultMode: 420 + # name: project-name-api + # name: volume-cmkw2z + +--- +# ProjectName Service +kind: Service +apiVersion: v1 +metadata: + name: project-name-api +spec: + type: ClusterIP + ports: + - port: 8080 + selector: + name: project-name-api + +--- +# ProjectName Ingress +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: project-name-api +spec: + ingressClassName: nginx + rules: + - host: "project-name-api.local" + http: + paths: + - path: /api/project-name + pathType: Prefix + backend: + service: + name: project-name-api + port: + number: 8080 diff --git a/aspnet-core/templates/micro/content/deploy/docker-compose.override.yml b/aspnet-core/templates/micro/content/deploy/docker-compose.override.yml new file mode 100644 index 000000000..9dfa8de2a --- /dev/null +++ b/aspnet-core/templates/micro/content/deploy/docker-compose.override.yml @@ -0,0 +1,9 @@ +services: + project-name-api: + build: + context: ../host/PackageName.CompanyName.ProjectName.HttpApi.Host/bin/Release/net9.0 + dockerfile: ../host/PackageName.CompanyName.ProjectName.HttpApi.Host/Dockerfile + volumes: + - /var/opt/project-name/logs:/app/Logs + - /var/opt/project-name/modules:/app/Modules + restart: always diff --git a/aspnet-core/templates/micro/content/deploy/docker-compose.yml b/aspnet-core/templates/micro/content/deploy/docker-compose.yml new file mode 100644 index 000000000..2473b0024 --- /dev/null +++ b/aspnet-core/templates/micro/content/deploy/docker-compose.yml @@ -0,0 +1,15 @@ +services: + project-name-api: + hostname: project-name-api + container_name: project-name-api + environment: + - ASPNETCORE_ENVIRONMENT=Production + # 时区问题自行修改 + # - TZ=Asia/Shanghai + ports: + - "5000:8080" + healthcheck: + test: ["CMD-SHELL", "wget --spider http://localhost/healthz || exit"] + interval: 10s + timeout: 5s + retries: 5 diff --git a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.Development.json b/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.Development.json deleted file mode 100644 index 19ddebe12..000000000 --- a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.Development.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "AgileConfig": { - "IsEnabled": false, - "env": "DEV", - "appId": "PackageName.CompanyName.ProjectName", - "secret": "1q2w3E*", - "nodes": "http://127.0.0.1:15000", - "name": "PackageName.CompanyName.ProjectName", - "tag": "PackageName.CompanyName.ProjectName" - }, - "Auditing": { - "AllEntitiesSelector": true - }, - "DistributedCache": { - "HideErrors": true, - "KeyPrefix": "LINGYUN.Abp.Application", - "GlobalCacheEntryOptions": { - "SlidingExpiration": "30:00:00", - "AbsoluteExpirationRelativeToNow": "60:00:00" - } - }, - "ConnectionStrings": { - "Default": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", - "ProjectName": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", - "AbpSaas": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", - "AbpFeatureManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", - "AbpPermissionManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", - "AbpSettingManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", - "AbpLocalizationManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", - "AbpTextTemplating": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456" - }, - "DistributedLock": { - "IsEnabled": true, - "Redis": { - "Configuration": "127.0.0.1,defaultDatabase=15" - } - }, - "OpenTelemetry": { - "IsEnabled": true, - "ZipKin": { - "Endpoint": "http://127.0.0.1:9411/api/v2/spans" - } - }, - "RemoteServices": {}, - "IdentityClients": { - "InternalServiceClient": { - "Authority": "http://127.0.0.1:44385", - "RequireHttps": false, - "GrantType": "client_credentials", - "Scope": "lingyun-abp-application", - "ClientId": "InternalServiceClient", - "ClientSecret": "1q2w3E*" - } - }, - "CAP": { - "EventBus": { - "DefaultGroupName": "ProjectName", - "GroupNamePrefix": "Dev", - "Version": "v1", - "FailedRetryInterval": 300, - "FailedRetryCount": 10 - }, - "MySql": { - "TableNamePrefix": "ProjectName_cap", - "ConnectionString": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456" - }, - "SqlServer": { - "TableNamePrefix": "ProjectName_cap", - "ConnectionString": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456" - }, - "Sqlite": { - "TableNamePrefix": "ProjectName_cap", - "ConnectionString": "Data Source=./cap.db" - }, - "Oracle": { - "TableNamePrefix": "ProjectName_cap", - "ConnectionString": "Data Source=ProjectName;Integrated Security=yes;" - }, - "PostgreSql": { - "TableNamePrefix": "ProjectName_cap", - "ConnectionString": "Host=localhost;Port=5432;Database=ProjectName;User ID=root;Password=123456;" - }, - "RabbitMQ": { - "HostName": "127.0.0.1", - "Port": 5672, - "UserName": "admin", - "Password": "123456", - "ExchangeName": "LINGYUN.Abp.Application", - "VirtualHost": "/" - } - }, - "Redis": { - "Configuration": "127.0.0.1,defaultDatabase=10", - "InstanceName": "LINGYUN.Abp.Application" - }, - "AuthServer": { - "Authority": "http://127.0.0.1:44385/", - "Audience": "lingyun-abp-application", - "MapInboundClaims": false, - "RequireHttpsMetadata": false, - "SwaggerClientId": "InternalServiceClient", - "SwaggerClientSecret": "1q2w3E*" - }, - "Logging": { - "Serilog": { - "Elasticsearch": { - "IndexFormat": "abp.dev.logging-{0:yyyy.MM.dd}" - } - } - }, - "AuditLogging": { - "Elasticsearch": { - "IndexPrefix": "abp.dev.auditing" - } - }, - "Elasticsearch": { - "NodeUris": "http://127.0.0.1:9200" - }, - "Serilog": { - "MinimumLevel": { - "Default": "Debug", - "Override": { - "System": "Warning", - "Microsoft": "Warning", - "DotNetCore": "Debug" - } - }, - "WriteTo": [ - { - "Name": "Console", - "Args": { - "restrictedToMinimumLevel": "Debug", - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "Elasticsearch", - "Args": { - "nodeUris": "http://127.0.0.1:9200", - "indexFormat": "abp.dev.logging-{0:yyyy.MM.dd}", - "autoRegisterTemplate": true, - "autoRegisterTemplateVersion": "ESv7" - } - } - ] - } -} diff --git a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.json b/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.json deleted file mode 100644 index 4cc470a9f..000000000 --- a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "ConnectionStrings": { - "Default": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456" - }, - "StringEncryption": { - "DefaultPassPhrase": "s46c5q55nxpeS8Ra", - "InitVectorBytes": "s83ng0abvd02js84", - "DefaultSalt": "sf&5)s3#" - }, - "AllowedHosts": "*", - "Serilog": { - "MinimumLevel": { - "Default": "Debug", - "Override": { - "Microsoft.EntityFrameworkCore": "Debug", - "System": "Information", - "Microsoft": "Information" - } - }, - "Enrich": [ "FromLogContext", "WithProcessId", "WithThreadId", "WithEnvironmentName", "WithMachineName", "WithApplicationName", "WithUniqueId" ], - "WriteTo": [ - { - "Name": "Console", - "Args": { - "initialMinimumLevel": "Verbose", - "standardErrorFromLevel": "Verbose", - "restrictedToMinimumLevel": "Verbose", - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "File", - "Args": { - "path": "Logs/Debug-.log", - "restrictedToMinimumLevel": "Debug", - "rollingInterval": "Day", - "fileSizeLimitBytes": 5242880, - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "File", - "Args": { - "path": "Logs/Info-.log", - "restrictedToMinimumLevel": "Information", - "rollingInterval": "Day", - "fileSizeLimitBytes": 5242880, - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "File", - "Args": { - "path": "Logs/Warn-.log", - "restrictedToMinimumLevel": "Warning", - "rollingInterval": "Day", - "fileSizeLimitBytes": 5242880, - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "File", - "Args": { - "path": "Logs/Error-.log", - "restrictedToMinimumLevel": "Error", - "rollingInterval": "Day", - "fileSizeLimitBytes": 5242880, - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "File", - "Args": { - "path": "Logs/Fatal-.log", - "restrictedToMinimumLevel": "Fatal", - "rollingInterval": "Day", - "fileSizeLimitBytes": 5242880, - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - } - ] - } -} diff --git a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/Dockerfile b/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/Dockerfile index 012ce3615..1f872aad2 100644 --- a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/Dockerfile +++ b/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/Dockerfile @@ -45,8 +45,8 @@ COPY . /app ## .NET 8.0 默认使用8080端口,变更为80端口需要环境变量ASPNETCORE_HTTP_PORTS=80 ## .NET 8.0 defaults to port 8080, changing to port 80 requires the environment variable ASPNETCORE.HTTP-PORTS=80 -# EXPOSE 8080/tcp -EXPOSE 80/tcp + +EXPOSE 8080/tcp VOLUME [ "./app/Logs" ] VOLUME [ "./app/Modules" ] diff --git a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/PackageName.CompanyName.ProjectName.HttpApi.Host.csproj b/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/PackageName.CompanyName.ProjectName.HttpApi.Host.csproj index 32ccca462..099018f58 100644 --- a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/PackageName.CompanyName.ProjectName.HttpApi.Host.csproj +++ b/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/PackageName.CompanyName.ProjectName.HttpApi.Host.csproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 PackageName.CompanyName.ProjectName diff --git a/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/FodyWeavers.xml b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/FodyWeavers.xml new file mode 100644 index 000000000..be0de3a90 --- /dev/null +++ b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/FodyWeavers.xsd b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/FodyWeavers.xsd similarity index 100% rename from aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/FodyWeavers.xsd rename to aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/FodyWeavers.xsd diff --git a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/PackageName.CompanyName.ProjectName.DbMigrator.csproj b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj similarity index 50% rename from aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/PackageName.CompanyName.ProjectName.DbMigrator.csproj rename to aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj index 5acdeee3b..ef4a30164 100644 --- a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/PackageName.CompanyName.ProjectName.DbMigrator.csproj +++ b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj @@ -1,26 +1,20 @@  + - Exe - net8.0 - enable - enable + net9.0 false - latest - - - - all runtime; build; native; contentfiles; analyzers; buildtransitive - + + @@ -30,23 +24,7 @@ - - - - - - - - - - - - - PreserveNewest - - - PreserveNewest - + diff --git a/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbContextFactory.cs b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbContextFactory.cs new file mode 100644 index 000000000..47ff5d5e7 --- /dev/null +++ b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbContextFactory.cs @@ -0,0 +1,62 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Design; +using Microsoft.Extensions.Configuration; +using System; +using System.IO; + +namespace PackageName.CompanyName.ProjectName.EntityFrameworkCore; +public class ProjectNameDbContextFactory : IDesignTimeDbContextFactory +{ + public ProjectNameDbContext CreateDbContext(string[] args) + { + var configuration = BuildConfiguration(); + var connectionString = configuration.GetConnectionString("ProjectName"); + + DbContextOptionsBuilder builder = null; + + try + { +#if MySQL + builder = new DbContextOptionsBuilder() + .UseMySql(connectionString, ServerVersion.AutoDetect(connectionString), b => + b.MigrationsAssembly(GetType().Assembly)); +#elif SqlServer + builder = new DbContextOptionsBuilder() + .UseSqlServer(connectionString, b => b.MigrationsAssembly(GetType().Assembly)); +#elif Sqlite + builder = new DbContextOptionsBuilder() + .UseSqlite(connectionString, b => b.MigrationsAssembly(GetType().Assembly)); +#elif Oracle + builder = new DbContextOptionsBuilder() + .UseOracle(connectionString, b => b.MigrationsAssembly(GetType().Assembly)); +#elif OracleDevart + builder = (DbContextOptionsBuilder) new DbContextOptionsBuilder() + .UseOracle(connectionString, b => b.MigrationsAssembly(GetType().Assembly)); +#elif PostgreSql + builder = new DbContextOptionsBuilder() + .UseNpgsql(connectionString, b => b.MigrationsAssembly(GetType().Assembly)); +#endif + return new ProjectNameDbContext(builder!.Options); + } + catch (Exception ex) + { + Console.ForegroundColor = ConsoleColor.Red; + + Console.WriteLine("[ProjectName] - Database migrations failed: {message}", ex.Message); + + Console.ResetColor(); + + throw; + } + } + + private static IConfigurationRoot BuildConfiguration() + { + var builder = new ConfigurationBuilder() + .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../PackageName.CompanyName.ProjectName.DbMigrator/")) + .AddJsonFile("appsettings.json", optional: false); + + return builder.Build(); + } +} + diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbMigrationEventHandler.cs b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigrationEventHandler.cs similarity index 100% rename from aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbMigrationEventHandler.cs rename to aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigrationEventHandler.cs diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbMigrationService.cs b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigrationService.cs similarity index 90% rename from aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbMigrationService.cs rename to aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigrationService.cs index 70d5d69e8..86343cf1d 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbMigrationService.cs +++ b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigrationService.cs @@ -2,6 +2,7 @@ using LINGYUN.Abp.Saas.Tenants; using Microsoft.Extensions.Logging; using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Volo.Abp.Data; @@ -42,7 +43,18 @@ public class ProjectNameDbMigrationService : EfCoreRuntimeDbMigratorBase tenants; + + try + { + tenants = await TenantRepository.GetListAsync(); + } + catch + { + return; + } + + foreach (var tenant in tenants.Where(x => x.IsActive)) { await LockAndApplyDatabaseWithTenantMigrationsAsync(tenant.Id); diff --git a/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigratorEntityFrameworkCoreModule.cs b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigratorEntityFrameworkCoreModule.cs new file mode 100644 index 000000000..5c512d9f8 --- /dev/null +++ b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigratorEntityFrameworkCoreModule.cs @@ -0,0 +1,105 @@ +using LINGYUN.Abp.Data.DbMigrator; +using LINGYUN.Abp.DataProtection.EntityFrameworkCore; +using LINGYUN.Abp.Saas.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Data; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Modularity; +#if MySQL +using Volo.Abp.EntityFrameworkCore.MySQL; +#elif SqlServer +using Volo.Abp.EntityFrameworkCore.SqlServer; +using Microsoft.EntityFrameworkCore.Infrastructure; +#elif Sqlite +using Volo.Abp.EntityFrameworkCore.Sqlite; +#elif Oracle +using Volo.Abp.EntityFrameworkCore.Oracle; +#elif OracleDevart +using Volo.Abp.EntityFrameworkCore.Oracle.Devart; +#elif PostgreSql +using Volo.Abp.EntityFrameworkCore.PostgreSql; +#endif + +namespace PackageName.CompanyName.ProjectName.EntityFrameworkCore; + +[DependsOn( + typeof(AbpDataDbMigratorModule), + typeof(ProjectNameEntityFrameworkCoreModule), + typeof(AbpSaasEntityFrameworkCoreModule), +#if MySQL + typeof(AbpEntityFrameworkCoreMySQLModule), +#elif SqlServer + typeof(AbpEntityFrameworkCoreSqlServerModule), +#elif Sqlite + typeof(AbpEntityFrameworkCoreSqliteModule), +#elif Oracle + typeof(AbpEntityFrameworkCoreOracleModule), +#elif OracleDevart + typeof(AbpEntityFrameworkCoreOracleDevartModule), +#elif PostgreSql + typeof(AbpEntityFrameworkCorePostgreSqlModule), +#endif + typeof(AbpDataDbMigratorModule) + )] +public class ProjectNameDbMigratorEntityFrameworkCoreModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + // 配置连接字符串 + Configure(options => + { + // 业务数据库 + options.Databases.Configure("ProjectName", database => + { + database.MapConnection( + "ProjectName" + ); + }); + // abp框架数据库 + options.Databases.Configure("Framework", database => + { + database.MapConnection( + "AbpSaas", + "AbpTextTemplating", + "AbpSettingManagement", + "AbpFeatureManagement", + "AbpPermissionManagement", + "AbpLocalizationManagement" + ); + }); + }); + + // 配置Ef + Configure(options => + { +#if MySQL + options.UseMySQL(mysql => + { + // see: https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql/issues/1960 + mysql.TranslateParameterizedCollectionsToConstants(); + }); + options.UseMySQL(mysql => + { + // see: https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql/issues/1960 + mysql.TranslateParameterizedCollectionsToConstants(); + }); +#elif SqlServer + options.UseSqlServer(); + options.UseSqlServer(builder => + { + // see https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-ver16 + // builder.UseCompatibilityLevel(150); + }); +#elif Sqlite + options.UseSqlite(); + options.UseSqlite(); +#elif Oracle || OracleDevart + options.UseOracle(); + options.UseOracle(); +#elif PostgreSql + options.UseNpgsql(); + options.UseNpgsql(); +#endif + }); + } +} diff --git a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/DbMigratorHostedService.cs b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/DbMigratorHostedService.cs similarity index 100% rename from aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/DbMigratorHostedService.cs rename to aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/DbMigratorHostedService.cs diff --git a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/FodyWeavers.xml b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/FodyWeavers.xml similarity index 100% rename from aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/FodyWeavers.xml rename to aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/FodyWeavers.xml diff --git a/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/FodyWeavers.xsd b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/FodyWeavers.xsd new file mode 100644 index 000000000..3f3946e28 --- /dev/null +++ b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/PackageName.CompanyName.ProjectName.DbMigrator.csproj b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/PackageName.CompanyName.ProjectName.DbMigrator.csproj new file mode 100644 index 000000000..68c623786 --- /dev/null +++ b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/PackageName.CompanyName.ProjectName.DbMigrator.csproj @@ -0,0 +1,39 @@ + + + + + + Exe + net9.0 + enable + enable + false + latest + + + + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + + diff --git a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/PackageNameCompanyNameProjectNameDbMigratorModule.cs b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/PackageNameCompanyNameProjectNameDbMigratorModule.cs similarity index 83% rename from aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/PackageNameCompanyNameProjectNameDbMigratorModule.cs rename to aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/PackageNameCompanyNameProjectNameDbMigratorModule.cs index fd08046e4..300304dde 100644 --- a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/PackageNameCompanyNameProjectNameDbMigratorModule.cs +++ b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/PackageNameCompanyNameProjectNameDbMigratorModule.cs @@ -6,7 +6,7 @@ namespace PackageName.CompanyName.ProjectName.DbMigrator; [DependsOn( typeof(AbpAutofacModule), - typeof(ProjectNameEntityFrameworkCoreModule) + typeof(ProjectNameDbMigratorEntityFrameworkCoreModule) )] public class PackageNameCompanyNameProjectNameDbMigratorModule : AbpModule { diff --git a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/Program.cs b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/Program.cs similarity index 100% rename from aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/Program.cs rename to aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/Program.cs diff --git a/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.json b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.json new file mode 100644 index 000000000..5664c692f --- /dev/null +++ b/aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator/appsettings.json @@ -0,0 +1,12 @@ +{ + "ConnectionStrings": { + "ProjectName": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", + "Framework": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456" + }, + "DistributedLock": { + "IsEnabled": true, + "Redis": { + "Configuration": "127.0.0.1,defaultDatabase=15" + } + } +} diff --git a/aspnet-core/templates/micro/content/migrations/migrations-database.ps1 b/aspnet-core/templates/micro/content/migrations/migrations-database.ps1 new file mode 100644 index 000000000..9c71f8963 --- /dev/null +++ b/aspnet-core/templates/micro/content/migrations/migrations-database.ps1 @@ -0,0 +1,15 @@ +Write-host "[ProjectName] - migrate database..." + +Set-Location ./PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore +dotnet ef migrations add Initial-ProjectName-Module +dotnet ef database update + +Write-host "[ProjectName] - database migrations successfuly completed." + +Write-host "[ProjectName] - seeding data to database..." + +Set-Location ../PackageName.CompanyName.ProjectName.DbMigrator + +dotnet run + +Write-host "[ProjectName] - seed data successfuly completed." \ No newline at end of file diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application.Contracts/PackageName.CompanyName.ProjectName.Application.Contracts.csproj b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application.Contracts/PackageName.CompanyName.ProjectName.Application.Contracts.csproj index e1f9883d3..ef232e50a 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application.Contracts/PackageName.CompanyName.ProjectName.Application.Contracts.csproj +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application.Contracts/PackageName.CompanyName.ProjectName.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0;netstandard2.1;net8.0 + netstandard2.0;netstandard2.1;net8.0;net9.0 PackageName.CompanyName.ProjectName.Application.Contracts PackageName.CompanyName.ProjectName.Application.Contracts false diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application.Contracts/PackageName/CompanyName/ProjectName/ProjectNameRemoteServiceConsts.cs b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application.Contracts/PackageName/CompanyName/ProjectName/ProjectNameRemoteServiceConsts.cs index 4b5bb260d..82dfed247 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application.Contracts/PackageName/CompanyName/ProjectName/ProjectNameRemoteServiceConsts.cs +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application.Contracts/PackageName/CompanyName/ProjectName/ProjectNameRemoteServiceConsts.cs @@ -3,5 +3,5 @@ public static class ProjectNameRemoteServiceConsts { public const string RemoteServiceName = "ProjectName"; - public const string ModuleName = "ProjectName"; + public const string ModuleName = "project-name"; } diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application/PackageName.CompanyName.ProjectName.Application.csproj b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application/PackageName.CompanyName.ProjectName.Application.csproj index cf195e665..b36251c2d 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application/PackageName.CompanyName.ProjectName.Application.csproj +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Application/PackageName.CompanyName.ProjectName.Application.csproj @@ -4,7 +4,7 @@ - net8.0 + net9.0 PackageName.CompanyName.ProjectName.Application PackageName.CompanyName.ProjectName.Application false diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Dapr.Client/PackageName.CompanyName.ProjectName.Dapr.Client.csproj b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Dapr.Client/PackageName.CompanyName.ProjectName.Dapr.Client.csproj index aa6f4772b..b8cf4ae19 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Dapr.Client/PackageName.CompanyName.ProjectName.Dapr.Client.csproj +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Dapr.Client/PackageName.CompanyName.ProjectName.Dapr.Client.csproj @@ -4,7 +4,7 @@ - net8.0 + net9.0 diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName.CompanyName.ProjectName.Domain.Shared.csproj b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName.CompanyName.ProjectName.Domain.Shared.csproj index cd98bbcf9..749aa5eaa 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName.CompanyName.ProjectName.Domain.Shared.csproj +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName.CompanyName.ProjectName.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0;netstandard2.1;net8.0 + netstandard2.0;netstandard2.1;net8.0;net9.0 PackageName.CompanyName.ProjectName.Domain.Shared PackageName.CompanyName.ProjectName.Domain.Shared false @@ -24,6 +24,7 @@ + diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureDefinitionProvider.cs b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureDefinitionProvider.cs similarity index 100% rename from aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureDefinitionProvider.cs rename to aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureDefinitionProvider.cs diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureNames.cs b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureNames.cs similarity index 100% rename from aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureNames.cs rename to aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureNames.cs diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName/CompanyName/ProjectName/ProjectNameDomainSharedModule.cs b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName/CompanyName/ProjectName/ProjectNameDomainSharedModule.cs index ec682b498..b33404591 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName/CompanyName/ProjectName/ProjectNameDomainSharedModule.cs +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName/CompanyName/ProjectName/ProjectNameDomainSharedModule.cs @@ -1,4 +1,5 @@ using PackageName.CompanyName.ProjectName.Localization; +using Volo.Abp.Features; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Modularity; @@ -7,6 +8,7 @@ using Volo.Abp.VirtualFileSystem; namespace PackageName.CompanyName.ProjectName; [DependsOn( + typeof(AbpFeaturesModule), typeof(AbpLocalizationModule))] public class ProjectNameDomainSharedModule : AbpModule { diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName.CompanyName.ProjectName.Domain.csproj b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName.CompanyName.ProjectName.Domain.csproj index 26f401f9e..160b74c5c 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName.CompanyName.ProjectName.Domain.csproj +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName.CompanyName.ProjectName.Domain.csproj @@ -4,7 +4,7 @@ - net8.0 + net9.0 PackageName.CompanyName.ProjectName.Domain PackageName.CompanyName.ProjectName.Domain false @@ -17,7 +17,6 @@ - diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/ProjectNameDataSeedContributor.cs b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/ProjectNameDataSeedContributor.cs new file mode 100644 index 000000000..4e70f3739 --- /dev/null +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/ProjectNameDataSeedContributor.cs @@ -0,0 +1,22 @@ +using Microsoft.Extensions.Logging; +using System.Threading.Tasks; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; + +namespace PackageName.CompanyName.ProjectName; + +public class ProjectNameDataSeedContributor : IDataSeedContributor, ITransientDependency +{ + private readonly ILogger _logger; + public ProjectNameDataSeedContributor(ILogger logger) + { + _logger = logger; + } + + public Task SeedAsync(DataSeedContext context) + { + _logger.LogInformation("Write your data seed logic here."); + + return Task.CompletedTask; + } +} diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/ProjectNameDomainModule.cs b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/ProjectNameDomainModule.cs index 1a21ca913..2aca6020d 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/ProjectNameDomainModule.cs +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/ProjectNameDomainModule.cs @@ -1,17 +1,13 @@ using LINGYUN.Abp.DataProtection; using Microsoft.Extensions.DependencyInjection; -using PackageName.CompanyName.ProjectName.ObjectExtending; using Volo.Abp.AutoMapper; using Volo.Abp.Domain.Entities.Events.Distributed; -using Volo.Abp.Features; using Volo.Abp.Modularity; -using Volo.Abp.ObjectExtending.Modularity; using Volo.Abp.Threading; namespace PackageName.CompanyName.ProjectName; [DependsOn( - typeof(AbpFeaturesModule), typeof(AbpAutoMapperModule), typeof(AbpDataProtectionModule), typeof(ProjectNameDomainSharedModule))] diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName.CompanyName.ProjectName.EntityFrameworkCore.csproj b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName.CompanyName.ProjectName.EntityFrameworkCore.csproj index 05ba83db3..6739ab8bd 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName.CompanyName.ProjectName.EntityFrameworkCore.csproj +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName.CompanyName.ProjectName.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - net8.0 + net9.0 PackageName.CompanyName.ProjectName.EntityFrameworkCore PackageName.CompanyName.ProjectName.EntityFrameworkCore false @@ -14,20 +14,8 @@ - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbContextFactory.cs b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbContextFactory.cs deleted file mode 100644 index c16735c99..000000000 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbContextFactory.cs +++ /dev/null @@ -1,49 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Design; -using Microsoft.Extensions.Configuration; -using System.IO; - -namespace PackageName.CompanyName.ProjectName.EntityFrameworkCore; -public class ProjectNameDbContextFactory : IDesignTimeDbContextFactory -{ - public ProjectNameDbContext CreateDbContext(string[] args) - { - var configuration = BuildConfiguration(); - var connectionString = configuration.GetConnectionString("ProjectName"); - - DbContextOptionsBuilder builder = null; - -#if MySQL - builder = new DbContextOptionsBuilder() - .UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)); -#elif SqlServer - builder = new DbContextOptionsBuilder() - .UseSqlServer(connectionString); -#elif Sqlite - builder = new DbContextOptionsBuilder() - .UseSqlite(connectionString); -#elif Oracle - builder = new DbContextOptionsBuilder() - .UseOracle(connectionString); -#elif OracleDevart - builder = (DbContextOptionsBuilder) new DbContextOptionsBuilder() - .UseOracle(connectionString); -#elif PostgreSql - builder = new DbContextOptionsBuilder() - .UseNpgsql(connectionString); -#endif - - return new ProjectNameDbContext(builder!.Options); - } - - private static IConfigurationRoot BuildConfiguration() - { - var builder = new ConfigurationBuilder() - .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../../host/PackageName.CompanyName.ProjectName.DbMigrator/")) - .AddJsonFile("appsettings.json", optional: false) - .AddJsonFile("appsettings.Development.json", optional: true); - - return builder.Build(); - } -} - diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameEntityFrameworkCoreModule.cs b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameEntityFrameworkCoreModule.cs index 735bb93d2..45a52fd3f 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameEntityFrameworkCoreModule.cs +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameEntityFrameworkCoreModule.cs @@ -1,94 +1,16 @@ -using LINGYUN.Abp.Data.DbMigrator; -using LINGYUN.Abp.DataProtection.EntityFrameworkCore; -using LINGYUN.Abp.Saas.EntityFrameworkCore; +using LINGYUN.Abp.DataProtection.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.Data; -using Volo.Abp.EntityFrameworkCore; using Volo.Abp.Modularity; -#if MySQL -using Volo.Abp.EntityFrameworkCore.MySQL; -#elif SqlServer -using Volo.Abp.EntityFrameworkCore.SqlServer; -using Microsoft.EntityFrameworkCore.Infrastructure; -#elif Sqlite -using Volo.Abp.EntityFrameworkCore.Sqlite; -#elif Oracle -using Volo.Abp.EntityFrameworkCore.Oracle; -#elif OracleDevart -using Volo.Abp.EntityFrameworkCore.Oracle.Devart; -#elif PostgreSql -using Volo.Abp.EntityFrameworkCore.PostgreSql; -#endif namespace PackageName.CompanyName.ProjectName.EntityFrameworkCore; [DependsOn( typeof(ProjectNameDomainModule), - typeof(AbpDataDbMigratorModule), - typeof(AbpDataProtectionEntityFrameworkCoreModule), -#if MySQL - typeof(AbpEntityFrameworkCoreMySQLModule), -#elif SqlServer - typeof(AbpEntityFrameworkCoreSqlServerModule), -#elif Sqlite - typeof(AbpEntityFrameworkCoreSqliteModule), -#elif Oracle - typeof(AbpEntityFrameworkCoreOracleModule), -#elif OracleDevart - typeof(AbpEntityFrameworkCoreOracleDevartModule), -#elif PostgreSql - typeof(AbpEntityFrameworkCorePostgreSqlModule), -#endif - typeof(AbpSaasEntityFrameworkCoreModule))] + typeof(AbpDataProtectionEntityFrameworkCoreModule))] public class ProjectNameEntityFrameworkCoreModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { - Configure(options => - { - options.Databases.Configure("Business", db => - { - db.MappedConnections.Add("ProjectName"); - }); - - options.Databases.Configure("Framework", db => - { - db.MappedConnections.Add("AbpSaas"); - db.MappedConnections.Add("AbpFeatureManagement"); - db.MappedConnections.Add("AbpPermissionManagement"); - db.MappedConnections.Add("AbpSettingManagement"); - db.MappedConnections.Add("AbpLocalizationManagement"); - db.MappedConnections.Add("AbpTextTemplating"); - - db.IsUsedByTenants = false; - }); - }); - - // 配置Ef - Configure(options => - { -#if MySQL - options.UseMySQL(); - options.UseMySQL(); -#elif SqlServer - options.UseSqlServer(); - options.UseSqlServer(builder => - { - // see https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-ver16 - // builder.UseCompatibilityLevel(150); - }); -#elif Sqlite - options.UseSqlite(); - options.UseSqlite(); -#elif Oracle || OracleDevart - options.UseOracle(); - options.UseOracle(); -#elif PostgreSql - options.UseNpgsql(); - options.UseNpgsql(); -#endif - }); - context.Services.AddAbpDbContext(options => { options.AddDefaultRepositories(); diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi.Client/PackageName.CompanyName.ProjectName.HttpApi.Client.csproj b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi.Client/PackageName.CompanyName.ProjectName.HttpApi.Client.csproj index 30cf00fd9..a50629080 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi.Client/PackageName.CompanyName.ProjectName.HttpApi.Client.csproj +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi.Client/PackageName.CompanyName.ProjectName.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0;netstandard2.1;net8.0 + netstandard2.0;netstandard2.1;net8.0;net9.0 PackageName.CompanyName.ProjectName.HttpApi.Client PackageName.CompanyName.ProjectName.HttpApi.Client false diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi/PackageName.CompanyName.ProjectName.HttpApi.csproj b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi/PackageName.CompanyName.ProjectName.HttpApi.csproj index 0f2375f61..330468a97 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi/PackageName.CompanyName.ProjectName.HttpApi.csproj +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.HttpApi/PackageName.CompanyName.ProjectName.HttpApi.csproj @@ -4,7 +4,7 @@ - net8.0 + net9.0 PackageName.CompanyName.ProjectName.HttpApi PackageName.CompanyName.ProjectName.HttpApi false diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.SettingManagement/PackageName.CompanyName.ProjectName.SettingManagement.csproj b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.SettingManagement/PackageName.CompanyName.ProjectName.SettingManagement.csproj index 51af57d0b..6d486446b 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.SettingManagement/PackageName.CompanyName.ProjectName.SettingManagement.csproj +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.SettingManagement/PackageName.CompanyName.ProjectName.SettingManagement.csproj @@ -4,7 +4,7 @@ - net8.0 + net9.0 PackageName.CompanyName.ProjectName.SettingManagement PackageName.CompanyName.ProjectName.SettingManagement false diff --git a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.SettingManagement/PackageName/CompanyName/ProjectName/SettingManagement/ProjectNameSettingController.cs b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.SettingManagement/PackageName/CompanyName/ProjectName/SettingManagement/ProjectNameSettingController.cs index 2c045ba59..b71662a27 100644 --- a/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.SettingManagement/PackageName/CompanyName/ProjectName/SettingManagement/ProjectNameSettingController.cs +++ b/aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.SettingManagement/PackageName/CompanyName/ProjectName/SettingManagement/ProjectNameSettingController.cs @@ -12,7 +12,7 @@ namespace PackageName.CompanyName.ProjectName.SettingManagement; [RemoteService(Name = ProjectNameRemoteServiceConsts.RemoteServiceName)] [ApiVersion("2.0")] [Area(ProjectNameRemoteServiceConsts.ModuleName)] -[Route("api/ProjectName/settings")] +[Route($"api/{ProjectNameRemoteServiceConsts.ModuleName}/settings")] public class ProjectNameSettingController : AbpController, IProjectNameSettingAppService { private readonly IProjectNameSettingAppService _settingAppService; diff --git a/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.Application.Tests/PackageName.CompanyName.ProjectName.Application.Tests.csproj b/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.Application.Tests/PackageName.CompanyName.ProjectName.Application.Tests.csproj index 7aefab82c..a661f6026 100644 --- a/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.Application.Tests/PackageName.CompanyName.ProjectName.Application.Tests.csproj +++ b/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.Application.Tests/PackageName.CompanyName.ProjectName.Application.Tests.csproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.Domain.Tests/PackageName.CompanyName.ProjectName.Domain.Tests.csproj b/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.Domain.Tests/PackageName.CompanyName.ProjectName.Domain.Tests.csproj index 5ca01ede0..e01996cb2 100644 --- a/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.Domain.Tests/PackageName.CompanyName.ProjectName.Domain.Tests.csproj +++ b/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.Domain.Tests/PackageName.CompanyName.ProjectName.Domain.Tests.csproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests/PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests.csproj b/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests/PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests.csproj index cb9c91e1f..0a3e9f02c 100644 --- a/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests/PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests.csproj +++ b/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests/PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 false diff --git a/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.TestBase/PackageName.CompanyName.ProjectName.TestBase.csproj b/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.TestBase/PackageName.CompanyName.ProjectName.TestBase.csproj index ae4b6d5bf..24df33f28 100644 --- a/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.TestBase/PackageName.CompanyName.ProjectName.TestBase.csproj +++ b/aspnet-core/templates/micro/content/tests/PackageName.CompanyName.ProjectName.TestBase/PackageName.CompanyName.ProjectName.TestBase.csproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false From 27c12e501ca09e60791fc2af9bb510f77cacfd18 Mon Sep 17 00:00:00 2001 From: colin Date: Sat, 22 Feb 2025 18:46:59 +0800 Subject: [PATCH 2/2] feat: Add the solution file --- .../PackageName.CompanyName.ProjectName.sln | 165 ++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 aspnet-core/templates/micro/content/PackageName.CompanyName.ProjectName.sln diff --git a/aspnet-core/templates/micro/content/PackageName.CompanyName.ProjectName.sln b/aspnet-core/templates/micro/content/PackageName.CompanyName.ProjectName.sln new file mode 100644 index 000000000..bc7bf0efe --- /dev/null +++ b/aspnet-core/templates/micro/content/PackageName.CompanyName.ProjectName.sln @@ -0,0 +1,165 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{4B0AD527-99B3-49A9-8A45-FD8671F8BE4D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.HttpApi.Host", "host\PackageName.CompanyName.ProjectName.HttpApi.Host\PackageName.CompanyName.ProjectName.HttpApi.Host.csproj", "{31E33CE2-71D3-43FF-9A30-2DCC82C607AE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Solution Items", ".Solution Items", "{C9675742-7986-4BC1-9781-FD1C3C5B6287}" + ProjectSection(SolutionItems) = preProject + common.props = common.props + configureawait.props = configureawait.props + Directory.Build.props = Directory.Build.props + Directory.Packages.props = Directory.Packages.props + NuGet.Config = NuGet.Config + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{4786387C-C1C5-46F8-806F-EBC54DB0A4FA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A9CB1547-1C2C-4A23-82EC-C834C1626E0A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Application.Tests", "tests\PackageName.CompanyName.ProjectName.Application.Tests\PackageName.CompanyName.ProjectName.Application.Tests.csproj", "{9262FE7A-76B2-424F-8C34-AFA1D95D7E5A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Domain.Tests", "tests\PackageName.CompanyName.ProjectName.Domain.Tests\PackageName.CompanyName.ProjectName.Domain.Tests.csproj", "{A0D1F8A4-3494-4E26-9E2D-DB874B93DBCE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests", "tests\PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests\PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests.csproj", "{0B2E1C9E-092D-4E5F-BE9F-5506E689FC85}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.TestBase", "tests\PackageName.CompanyName.ProjectName.TestBase\PackageName.CompanyName.ProjectName.TestBase.csproj", "{4A9D43A2-D08B-40E8-9C74-F2B95BF81AED}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.DbMigrator", "migrations\PackageName.CompanyName.ProjectName.DbMigrator\PackageName.CompanyName.ProjectName.DbMigrator.csproj", "{F6EE5BCD-69C7-4C8A-8B45-251AFE2BB01E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Domain.Shared", "src\PackageName.CompanyName.ProjectName.Domain.Shared\PackageName.CompanyName.ProjectName.Domain.Shared.csproj", "{77090F97-BD80-4469-842F-F5769CF849E9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Domain", "src\PackageName.CompanyName.ProjectName.Domain\PackageName.CompanyName.ProjectName.Domain.csproj", "{DF2CCF03-95D5-4BE4-8B32-742818C56F15}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Application.Contracts", "src\PackageName.CompanyName.ProjectName.Application.Contracts\PackageName.CompanyName.ProjectName.Application.Contracts.csproj", "{54FB9929-7D9C-40FC-A0D0-94ACBA37D20E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Application", "src\PackageName.CompanyName.ProjectName.Application\PackageName.CompanyName.ProjectName.Application.csproj", "{F2A6182F-BCB9-4C80-947C-0A2ED1B6BFDB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Dapr.Client", "src\PackageName.CompanyName.ProjectName.Dapr.Client\PackageName.CompanyName.ProjectName.Dapr.Client.csproj", "{B69F04FF-8505-49F6-9B60-BB800846C87C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.EntityFrameworkCore", "src\PackageName.CompanyName.ProjectName.EntityFrameworkCore\PackageName.CompanyName.ProjectName.EntityFrameworkCore.csproj", "{09CA7186-DBA7-4428-A1ED-31292AC02050}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.HttpApi", "src\PackageName.CompanyName.ProjectName.HttpApi\PackageName.CompanyName.ProjectName.HttpApi.csproj", "{FDB3A3E9-C072-438D-8B8D-2AA957C1167F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.HttpApi.Client", "src\PackageName.CompanyName.ProjectName.HttpApi.Client\PackageName.CompanyName.ProjectName.HttpApi.Client.csproj", "{8CE7C515-CD78-42D4-A9D7-39D217A3D046}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.SettingManagement", "src\PackageName.CompanyName.ProjectName.SettingManagement\PackageName.CompanyName.ProjectName.SettingManagement.csproj", "{CAEB3435-A332-4FFA-BE5F-4E386FA8B19B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore", "migrations\PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore\PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj", "{285408F0-EF7A-41B8-9828-A9B9C84E635F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "migrations", "migrations", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}" + ProjectSection(SolutionItems) = preProject + migrations\migrations-database.ps1 = migrations\migrations-database.ps1 + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".deploy", ".deploy", "{46954769-3C8A-4E05-912A-91B896A91B97}" + ProjectSection(SolutionItems) = preProject + deploy\docker-compose.override.yml = deploy\docker-compose.override.yml + deploy\deployment.yaml = deploy\deployment.yaml + deploy\docker-compose.yml = deploy\docker-compose.yml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".workflows", ".workflows", "{CE7B8857-00E7-4903-A7C1-0285398616A8}" + ProjectSection(SolutionItems) = preProject + .gitlab-ci.yml = .gitlab-ci.yml + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {31E33CE2-71D3-43FF-9A30-2DCC82C607AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31E33CE2-71D3-43FF-9A30-2DCC82C607AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31E33CE2-71D3-43FF-9A30-2DCC82C607AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31E33CE2-71D3-43FF-9A30-2DCC82C607AE}.Release|Any CPU.Build.0 = Release|Any CPU + {9262FE7A-76B2-424F-8C34-AFA1D95D7E5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9262FE7A-76B2-424F-8C34-AFA1D95D7E5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9262FE7A-76B2-424F-8C34-AFA1D95D7E5A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9262FE7A-76B2-424F-8C34-AFA1D95D7E5A}.Release|Any CPU.Build.0 = Release|Any CPU + {A0D1F8A4-3494-4E26-9E2D-DB874B93DBCE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0D1F8A4-3494-4E26-9E2D-DB874B93DBCE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0D1F8A4-3494-4E26-9E2D-DB874B93DBCE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0D1F8A4-3494-4E26-9E2D-DB874B93DBCE}.Release|Any CPU.Build.0 = Release|Any CPU + {0B2E1C9E-092D-4E5F-BE9F-5506E689FC85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B2E1C9E-092D-4E5F-BE9F-5506E689FC85}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B2E1C9E-092D-4E5F-BE9F-5506E689FC85}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B2E1C9E-092D-4E5F-BE9F-5506E689FC85}.Release|Any CPU.Build.0 = Release|Any CPU + {4A9D43A2-D08B-40E8-9C74-F2B95BF81AED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A9D43A2-D08B-40E8-9C74-F2B95BF81AED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A9D43A2-D08B-40E8-9C74-F2B95BF81AED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A9D43A2-D08B-40E8-9C74-F2B95BF81AED}.Release|Any CPU.Build.0 = Release|Any CPU + {F6EE5BCD-69C7-4C8A-8B45-251AFE2BB01E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6EE5BCD-69C7-4C8A-8B45-251AFE2BB01E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6EE5BCD-69C7-4C8A-8B45-251AFE2BB01E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6EE5BCD-69C7-4C8A-8B45-251AFE2BB01E}.Release|Any CPU.Build.0 = Release|Any CPU + {77090F97-BD80-4469-842F-F5769CF849E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77090F97-BD80-4469-842F-F5769CF849E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77090F97-BD80-4469-842F-F5769CF849E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77090F97-BD80-4469-842F-F5769CF849E9}.Release|Any CPU.Build.0 = Release|Any CPU + {DF2CCF03-95D5-4BE4-8B32-742818C56F15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF2CCF03-95D5-4BE4-8B32-742818C56F15}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DF2CCF03-95D5-4BE4-8B32-742818C56F15}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DF2CCF03-95D5-4BE4-8B32-742818C56F15}.Release|Any CPU.Build.0 = Release|Any CPU + {54FB9929-7D9C-40FC-A0D0-94ACBA37D20E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {54FB9929-7D9C-40FC-A0D0-94ACBA37D20E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {54FB9929-7D9C-40FC-A0D0-94ACBA37D20E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {54FB9929-7D9C-40FC-A0D0-94ACBA37D20E}.Release|Any CPU.Build.0 = Release|Any CPU + {F2A6182F-BCB9-4C80-947C-0A2ED1B6BFDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2A6182F-BCB9-4C80-947C-0A2ED1B6BFDB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2A6182F-BCB9-4C80-947C-0A2ED1B6BFDB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2A6182F-BCB9-4C80-947C-0A2ED1B6BFDB}.Release|Any CPU.Build.0 = Release|Any CPU + {B69F04FF-8505-49F6-9B60-BB800846C87C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B69F04FF-8505-49F6-9B60-BB800846C87C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B69F04FF-8505-49F6-9B60-BB800846C87C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B69F04FF-8505-49F6-9B60-BB800846C87C}.Release|Any CPU.Build.0 = Release|Any CPU + {09CA7186-DBA7-4428-A1ED-31292AC02050}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09CA7186-DBA7-4428-A1ED-31292AC02050}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09CA7186-DBA7-4428-A1ED-31292AC02050}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09CA7186-DBA7-4428-A1ED-31292AC02050}.Release|Any CPU.Build.0 = Release|Any CPU + {FDB3A3E9-C072-438D-8B8D-2AA957C1167F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDB3A3E9-C072-438D-8B8D-2AA957C1167F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDB3A3E9-C072-438D-8B8D-2AA957C1167F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDB3A3E9-C072-438D-8B8D-2AA957C1167F}.Release|Any CPU.Build.0 = Release|Any CPU + {8CE7C515-CD78-42D4-A9D7-39D217A3D046}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CE7C515-CD78-42D4-A9D7-39D217A3D046}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CE7C515-CD78-42D4-A9D7-39D217A3D046}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CE7C515-CD78-42D4-A9D7-39D217A3D046}.Release|Any CPU.Build.0 = Release|Any CPU + {CAEB3435-A332-4FFA-BE5F-4E386FA8B19B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAEB3435-A332-4FFA-BE5F-4E386FA8B19B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAEB3435-A332-4FFA-BE5F-4E386FA8B19B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAEB3435-A332-4FFA-BE5F-4E386FA8B19B}.Release|Any CPU.Build.0 = Release|Any CPU + {285408F0-EF7A-41B8-9828-A9B9C84E635F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {285408F0-EF7A-41B8-9828-A9B9C84E635F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {285408F0-EF7A-41B8-9828-A9B9C84E635F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {285408F0-EF7A-41B8-9828-A9B9C84E635F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {31E33CE2-71D3-43FF-9A30-2DCC82C607AE} = {4786387C-C1C5-46F8-806F-EBC54DB0A4FA} + {9262FE7A-76B2-424F-8C34-AFA1D95D7E5A} = {A9CB1547-1C2C-4A23-82EC-C834C1626E0A} + {A0D1F8A4-3494-4E26-9E2D-DB874B93DBCE} = {A9CB1547-1C2C-4A23-82EC-C834C1626E0A} + {0B2E1C9E-092D-4E5F-BE9F-5506E689FC85} = {A9CB1547-1C2C-4A23-82EC-C834C1626E0A} + {4A9D43A2-D08B-40E8-9C74-F2B95BF81AED} = {A9CB1547-1C2C-4A23-82EC-C834C1626E0A} + {F6EE5BCD-69C7-4C8A-8B45-251AFE2BB01E} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} + {77090F97-BD80-4469-842F-F5769CF849E9} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} + {DF2CCF03-95D5-4BE4-8B32-742818C56F15} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} + {54FB9929-7D9C-40FC-A0D0-94ACBA37D20E} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} + {F2A6182F-BCB9-4C80-947C-0A2ED1B6BFDB} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} + {B69F04FF-8505-49F6-9B60-BB800846C87C} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} + {09CA7186-DBA7-4428-A1ED-31292AC02050} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} + {FDB3A3E9-C072-438D-8B8D-2AA957C1167F} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} + {8CE7C515-CD78-42D4-A9D7-39D217A3D046} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} + {CAEB3435-A332-4FFA-BE5F-4E386FA8B19B} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} + {285408F0-EF7A-41B8-9828-A9B9C84E635F} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {62C0F185-E2C2-46A2-B4B2-5E703E25849E} + EndGlobalSection +EndGlobal