Legacy .NET agent - Scanning a build using MSBuild

 

The SeaLights .NET agent can be integrated with MSBuild to scan the binary code and provide the SeaLights server with the build information.

Generating a session ID

Before running the build scan and tests, you need to create a session ID. The session ID is provided for each step in order to link them together as one complete cycle

SL.DotNet.exe config --appName "myApp" --branchName "master" --buildName $(Get-Date -Format "yyyyMMdd_HHmm") --includeNamespace myNameSpace.* --buildSessionIdFile buildSessionId.txt

Automatic setup

The SeaLights agent can automatically set up your MSBuild to work with the SeaLights agent.

SL.DotNet.exe prepareForMsBuild --buildSessionIdFile buildSessionId.txt --workspacePath "C:\path\to\project" --baseDir "C:\path\to\project" --ignoreGeneratedCode true --msBuildVersion 15 --logEnabled true

This command creates a file called 'after.{SOLUTION_FILE_NAME}.targets' which sits alongside your solution file with all the needed parameters for the Sealights agent to be executed automatically by MSBuild.

See SeaLights .NET - command reference for full parameter details.

Run MSbuild

When running MSBuild, it will identify the above file and cause our agent to come up and report the details needed from the binary files.

Msbuild SlnFolders.sln /t:rebuild

As SeaLights is using the compilation method's bytecode signature (Hash ID) to generate a unique identifier for each method, it is important NOT to recompile the application between the scan command and the deployment. The scanned build's artefact (DLL, EXE) MUST be from the exact same compilation as the one deployed.

In certain cases, integrating our agent as part of MSBuild causes the build to fail with 'Error MSB4025: The project file could not be loaded. Could not find file ... .metaproj' message. Please refer to our dedicated troubleshooting article for resolution.