User has a git repository with multiple .NET core applications. Same repository also contains shared libraries used by those applications.
- lib/foo
- lib/bar
- web-app
- console-app
Typically, in a setup like this, each application directory is marked as an mbt module by placing a .mbt.yml file. However, if user wants to rebuild/re-version applications when their dependencies change, all library directories must also be marked as mbt modules and correct dependencies must be established in .mbt.yml files.
This feature intends to simplify this process by being able to understand the dependencies defined within .csproj files.
Specification
A directory with a .csproj file is recognised as an mbt module (conveniently called csproj module).
Module name is .csproj file name without extension.
All project references in .csproj becomes dependencies of that module.
When a directory contains both .mbt.yml and .csproj files, module is generated based on .mbt.yml and augmented with dependencies found in .csproj.
If a particular directory contains more than one .csproj files, behaviour of this feature is not specified (this can be re-visited in a future version)
Design Notes
Modify discover.go to with an extensible model that can be used to support other types of projects (e.g. maven pom files, sbt projects) in the future.
In order to make sure backward compatibility, this feature is activated via --detect-csproj switch.
Scenario
User has a git repository with multiple .NET core applications. Same repository also contains shared libraries used by those applications.
Typically, in a setup like this, each application directory is marked as an mbt module by placing a
.mbt.yml
file. However, if user wants to rebuild/re-version applications when their dependencies change, all library directories must also be marked as mbt modules and correct dependencies must be established in.mbt.yml
files. This feature intends to simplify this process by being able to understand the dependencies defined within.csproj
files.Specification
.csproj
file is recognised as an mbt module (conveniently calledcsproj module
)..csproj
file name without extension..csproj
becomes dependencies of that module..mbt.yml
and.csproj
files, module is generated based on.mbt.yml
and augmented with dependencies found in.csproj
..csproj
files, behaviour of this feature is not specified (this can be re-visited in a future version)Design Notes
Modify
discover.go
to with an extensible model that can be used to support other types of projects (e.g. maven pom files, sbt projects) in the future.In order to make sure backward compatibility, this feature is activated via
--detect-csproj
switch.