How to build vsSolutionBuildEvent

Branches status:

master branchBuild status develop branchBuild status

Please note: latest cf21313 revision provides new structure of project files by the new vsSBE.SDK. Now you can use a single vsSolutionBuildEvent.sln and more freely use both .NET 4.0 and 4.5

Variant for Visual Studio

Current variant is more convenient for develop & debug. Other are contained below.

Requirements

You can also use the backups from /dev/lib/ if you can't get automatically any libraries above.

Build & Debug

  • Install vsSolutionBuildEvent for work with .vssbe
  • Open .sln file with your Visual studio IDE
    • vsSolutionBuildEvent.sln for Visual Studio 2010
    • vsSolutionBuildEvent_2012.sln for Visual Studio 2012
    • for other version it's similar - vsSolutionBuildEvent_X.sln where 'X' is a number version of used Visual Studio

vsSolutionBuildEvent project

Find the vsSolutionBuildEvent project in solution:

  • Set as StartUp project
  • Open Properties -> Debug:
    • For Start Action - set as Start External program
    • Then, select your devenv.exe, e.g.: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe
    • In Start Options > Command line arguments write the: '/rootsuffix Exp' (without quotes)

Devenv project

Find the Devenv project in solution:

  • Properties -> Debug:
    • For Start Action - set as Start External program
    • Also select your devenv.exe, e.g.: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe
    • In Start Options > Command line arguments write the: '/resetaddin Devenv.Connect' (without quotes)
    • Enable Debuggers - enable the Enable the Visual Studio hosting process
  • For testing in command-line mode you should change Command line arguments for example: '"D:\app\App1.sln" /Rebuild' (without single quotes)
    • Also add 'Devenv.AddIn' into your '%HOMEPATH%\Documents\Visual Studio 2013\Addins' with full path to assembly, for example: 'D:/full_path_to/Devenv.dll'

CI.MSBuild project

Find the CI.MSBuild project in solution:

  • Properties -> Debug:
    • For Start Action - set as Start External program
    • Add the full path to msbuild.exe, for example: C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe
    • Optional, add path to vsSolutionBuildEvent sources in Working Directory field, for example: D:\projects\vsSolutionBuildEvent\
    • In Start Options > Command line arguments write for example:
"<path_to_SolutionFile_for_debugging>.sln" /nologo /noconsolelogger 
/l:"CI.MSBuild\bin\<Current_Configuration_Name>\CI.MSBuild.dll";lib=vsSolutionBuildEvent\bin\<Current_Configuration_Name>\ /verbosity:Diagnostic /t:Rebuild /p:Configuration=<Configuration>;Platform=<Platform>

Final

Click on Build > Build Solution

Congratulation! Now you can run the vsSBE extension over experimental VS IDE for debugging inc. Devenv & CI.MSBuild if you need.

Note:

  • Unit-Tests should automatically started for all Release-configurations. Or you can manualy start with Test > Run > All Tests in Solution

  • The Libraries is managed by GetNuTool & NuGet and will be received automatically into ./packages directory. Otherwise use the following command:

    • gnt.core /p:ngconfig="packages.config|..." / nuget restore vsSolutionBuildEvent_X.sln
    • or add manually if you can't get it automatically.

Variant for Microsoft Build Tools (msbuild.exe)

Currently, this variant still requires installed the Visual Studio SDK for your machine (see above where to find)

git clone --branch=master https://github.com/3F/vsSolutionBuildEvent.git ./vsSolutionBuildEvent
msbuild "vsSolutionBuildEvent.sln" /l:"packages\vsSBE.CI.MSBuild\bin\CI.MSBuild.dll" /m:4 /p:Configuration=Debug

build-helpers here:

Note:

  • ./vsSolutionBuildEvent - your path for source code (it can be absolute, e.g.: C:\projects\vsSolutionBuildEvent).
  • packages\vsSBE.CI.MSBuild\bin\CI.MSBuild.dll - path to CI.MSBuild

this variant is also used for build automation with AppVeyor

What's next ?

Is also ready for collaboration ? use pull request features (GitHub / Bitbucket), or send it directly as .patch file. For complex logic(as for our lexers, analyzers etc.) please also provide a correct new unit-tests.