Skip to content

Instantly share code, notes, and snippets.

@jerviscui
Last active October 15, 2021 10:34
Show Gist options
  • Select an option

  • Save jerviscui/b15f07a81a8a1778277048a9fcc206ce to your computer and use it in GitHub Desktop.

Select an option

Save jerviscui/b15f07a81a8a1778277048a9fcc206ce to your computer and use it in GitHub Desktop.
The script create micro service modules for .Net project.
@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