We do use Jenkins with our C# projects. You may use the MSBuild plugin to build the projects, or use a "Windows Batch Command" like
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" YourSolution.sln /tv:4.0 /p:Configuration=Release /p:TreatWarningsAsErrors="true" /p:CheckForOverflowUnderflow="true" /p:WarningLevel=4 /v:m /t:rebuild
Note: with this command line, I overwrite project specific settings for warnings and arithmetic overflow.
There are also plugins for Unit Tests. We use MSTest. Since I integrated the OpenCover Code Coverage Report Generator, I must use a long command line:
"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" "-target:C:\vs\Common7\IDE\MSTest.exe" "-targetargs:/nologo /testcontainer:Tests\Project1Tests.dll /testcontainer:Tests\Project2Tests.dll /resultsfile:testresult.trx /category:"^!SqlTests^&^!Perfomance"" -output:coverage.xml
"C:\Program Files (x86)\OpenCover\OpenCoverToCoberturaConverter.exe" -input:coverage.xml -output:outputCobertura.xml -sources:%WORKSPACE%
"C:\Program Files (x86)\ReportGenerator\ReportGenerator.exe" -reports:coverage.xml -targetDir:CodeCoverageHTML
Sadly, you mstest does not accept wild cards for the test projects, so you end up with a terribly long line. Also note that the above command line excludes test categories "SqlTests" and "Performance". Then the output is converted to a format accepted by other plugins.
You may start some virtual machines after the build and the unit tests, and install there your programs by some scripts complete with some test data and do some automated tests of the system.
For the GUI proper, we do not yet have a test strategy.