Search code examples
gitvisual-studiogit-submodulesprojects-and-solutions

Add git submodule as reference to existing solution in VS


Lets say I have a submodule repo:

_git/DbModel (only source code indexed. No /bin or /obj folders)

And two projects which need DbModel as reference library:

_git/TTT
_git/TPM

I've already added DbModel as submodule via GitBash to both of them

 git submodule add https://RepoPath/_git/DbModel

And my local repos now look like this:

Source\Repos\TTT\TTT.sln
Source\Repos\TTT\DbModel\DbModel.sln

Source\Repos\TPM\TPM.sln
Source\Repos\TPM\DbModel\DbModel.sln

My Team Explorer shows two different solutions which are available now and I can switch between them easily.

But. Maybe this is a kinda newbie question...

I don't know how to add DbModel solution as reference to TPM and TTT! When I click "Add Reference" -> "Browse" in VS I can only add ".dll, .tlb, .olb, .ocx, .exe, .manifest" as "reference files.

How is it supposed to work? Should I compile sub module solution every time and add .dll as reference? I need source code to be added.


Solution

  • For those who will be interested in this:

    git submodule add https://RepoPath/_git/DbModel
    git submodule init   //this is IMPORTANT
    git submodule update
    

    and then add existing project in your solution from newly created folder. Like that:

     Source\Repos\TPM\DbModel\DbModel\DbModel.csproj
    

    P.S.

    Source\Repos\TPM\                  solution root folder (with main project sln file inside it)
    Source\Repos\TPM\DbModel           submodule root folder (with submodule sln file)
    Source\Repos\TPM\DbModel\DbModel   submodule project folder (with csproj file)