Last active
October 15, 2021 10:34
-
-
Save jerviscui/b15f07a81a8a1778277048a9fcc206ce to your computer and use it in GitHub Desktop.
The script create micro service modules for .Net project.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @REM create modules project template | |
| @echo off | |
| cd ..\src\ | |
| @REM input | |
| set /p module=input module name: | |
| set moduledir=.\modules\%module%\ | |
| if exist %moduledir% ( | |
| @echo module created already | |
| exit | |
| ) | |
| echo. | |
| echo 1. add folders | |
| set coredir=%moduledir%src\ | |
| set servicedir=%moduledir%src\ | |
| set testdir=%moduledir%test\ | |
| mkdir %coredir% | |
| echo %coredir% | |
| mkdir %servicedir% | |
| echo %servicedir% | |
| mkdir %testdir% | |
| echo %testdir% | |
| echo. | |
| echo 2. add core proj | |
| set framework=net5.0 | |
| set restore=--no-restore | |
| set proj1=Ft.Parking.%module%.Domain.Shared | |
| set proj2=Ft.Parking.%module%.Domain | |
| set proj3=Ft.Parking.%module%.EfCore | |
| echo %proj1% | |
| dotnet new classlib -o %coredir%%proj1% -f %framework% %restore% | |
| dotnet add %coredir%%proj1%\%proj1%.csproj reference %coredir%..\..\..\shared\Ft.Parking.Infra.Core\Ft.Parking.Infra.Core.csproj | |
| dotnet add %coredir%%proj1%\%proj1%.csproj reference %coredir%..\..\..\shared\Ft.Parking.Shared\Ft.Parking.Shared.csproj | |
| echo %proj2% | |
| dotnet new classlib -o %coredir%%proj2% -f %framework% %restore% | |
| dotnet add %coredir%%proj2%\%proj2%.csproj reference %coredir%%proj1%\%proj1%.csproj | |
| echo %proj3% | |
| dotnet new classlib -o %coredir%%proj3% -f %framework% %restore% | |
| dotnet add %coredir%%proj3%\%proj3%.csproj reference %coredir%%proj2%\%proj2%.csproj | |
| echo. | |
| echo 3. add service proj | |
| set proj4=Ft.Parking.%module%.Application.Contracts | |
| set proj5=Ft.Parking.%module%.Application | |
| set proj6=Ft.Parking.%module%.HttpApi | |
| set proj7=Ft.Parking.%module%.HttpApi.Client | |
| echo %proj4% | |
| dotnet new classlib -o %servicedir%%proj4% -f %framework% %restore% | |
| dotnet add %servicedir%%proj4%\%proj4%.csproj reference %coredir%%proj1%\%proj1%.csproj | |
| echo %proj5% | |
| dotnet new classlib -o %servicedir%%proj5% -f %framework% %restore% | |
| dotnet add %servicedir%%proj5%\%proj5%.csproj reference %servicedir%%proj4%\%proj4%.csproj | |
| dotnet add %servicedir%%proj5%\%proj5%.csproj reference %coredir%%proj2%\%proj2%.csproj | |
| echo %proj6% | |
| dotnet new classlib -o %servicedir%%proj6% -f %framework% %restore% | |
| dotnet add %servicedir%%proj6%\%proj6%.csproj reference %servicedir%%proj4%\%proj4%.csproj | |
| echo %proj7% | |
| dotnet new classlib -o %servicedir%%proj7% -f %framework% %restore% | |
| echo. | |
| echo 4. add test proj | |
| set proj11=Ft.Parking.%module%.TestBase | |
| @REM set proj12=Ft.Parking.%module%.EfCore.Test | |
| set proj13=Ft.Parking.%module%.Domain.Test | |
| set proj14=Ft.Parking.%module%.Application.Test | |
| echo %proj11% | |
| dotnet new xunit -o %testdir%%proj11% -f %framework% %restore% | |
| dotnet add %testdir%%proj11%\%proj11%.csproj reference %coredir%%proj2%\%proj2%.csproj | |
| dotnet add %testdir%%proj11%\%proj11%.csproj reference %testdir%..\..\..\shared\Ft.Parking.Infra.TestBase\Ft.Parking.Infra.TestBase.csproj | |
| echo %proj13% | |
| dotnet new xunit -o %testdir%%proj13% -f %framework% %restore% | |
| dotnet add %testdir%%proj13%\%proj13%.csproj reference %coredir%%proj3%\%proj3%.csproj | |
| dotnet add %testdir%%proj13%\%proj13%.csproj reference %testdir%%proj11%\%proj11%.csproj | |
| echo %proj14% | |
| dotnet new xunit -o %testdir%%proj14% -f %framework% %restore% | |
| dotnet add %testdir%%proj14%\%proj14%.csproj reference %testdir%%proj13%\%proj13%.csproj | |
| dotnet add %testdir%%proj14%\%proj14%.csproj reference %servicedir%%proj5%\%proj5%.csproj | |
| echo. | |
| echo 5. add nuget packages | |
| set source=https://nuget.cnblogs.com/v3/index.json | |
| echo %proj6% | |
| dotnet add %servicedir%%proj6%\%proj6%.csproj package Fangte.Core.Remote.Client -v 3.1.3 %restore% | |
| dotnet add %servicedir%%proj6%\%proj6%.csproj package Fangte.Core.Web -v 3.1.3 %restore% | |
| echo %proj11% | |
| dotnet add %testdir%%proj11%\%proj11%.csproj package Moq -v 4.16.1 %restore% | |
| dotnet add %testdir%%proj11%\%proj11%.csproj package Shouldly -v 4.0.3 %restore% | |
| echo. | |
| echo 6. add into solution | |
| dotnet sln add %coredir%%proj1%\%proj1%.csproj | |
| dotnet sln add %coredir%%proj2%\%proj2%.csproj | |
| dotnet sln add %coredir%%proj3%\%proj3%.csproj | |
| dotnet sln add %servicedir%%proj4%\%proj4%.csproj | |
| dotnet sln add %servicedir%%proj5%\%proj5%.csproj | |
| dotnet sln add %servicedir%%proj6%\%proj6%.csproj | |
| dotnet sln add %servicedir%%proj7%\%proj7%.csproj | |
| dotnet sln add %testdir%%proj11%\%proj11%.csproj | |
| dotnet sln add %testdir%%proj13%\%proj13%.csproj | |
| dotnet sln add %testdir%%proj14%\%proj14%.csproj | |
| pause |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment