diff --git a/aspnet-core/templates/micro/PackageName.CompanyName.ProjectName.csproj b/aspnet-core/templates/micro/PackageName.CompanyName.ProjectName.csproj
index c1d992fba..d252f6fc6 100644
--- a/aspnet-core/templates/micro/PackageName.CompanyName.ProjectName.csproj
+++ b/aspnet-core/templates/micro/PackageName.CompanyName.ProjectName.csproj
@@ -3,7 +3,7 @@
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/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
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/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 57%
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 0196f2b03..635691100 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,24 @@
+
+ net9.0
Exe
net9.0
enable
enable
false
- latest
-
-
-
-
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
+
@@ -30,23 +28,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/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.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 f2ca0e63b..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
@@ -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 e04be195c..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
@@ -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 a7904db7d..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
@@ -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.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;