Skip to content

Build and Test

Mark Zuber edited this page Feb 8, 2019 · 24 revisions

Minimal Visual Studio 2017 installation

  • Install or update VS with the following workloads:

    • .Net Desktop Development
    • Universal Windows Platform Development
    • Mobile Development with .Net
    • .Net Core cross-platform development
  • Then from the "Individual Components" tab, make sure these additional items are selected:

    • .NET Framework 4.5 targeting pack
    • .NET Framework 4.5.2 targeting pack
    • .NET Framework 4.6.1 SDK
    • .NET Framework 4.6.1 targeting pack
    • .NET Framework 4.6.2 targeting pack
    • Android SDK setup (API level 27)
    • Windows 10 SDK (10.0.17134.0)
  • Android SDK level 27 (oreo) and 28 (pie), and Android SDK build tools 27.0.3 are also required. These are not installed through the VS Installer, so instead use the Android SDK Manager (Visual Studio > Tools > Android > Android SDK Manager…)

Visual Studio for Mac

MSAL is a multi-target library and at the time of writing, VS for Mac is not able to understand and layout this project correctly. You can still build from the command line.

Build

  1. Load LibsAndSamples.sln for a bigger solution with lots of apps that exercise MSAL. Load LibsNoSamples.sln for a small solution that has the library and the tests.
  2. Build in VS or via the command line with "msbuild /t:restore" and "msbuild"

Note: if you run into strong name validation issues, please log a bug. Workaround is to disable it on your dev box by running Admin Dev Prompt > sn -Vr *

Run tests

You won't be able to run the Integration test or Automation tests because they require access to a Microsoft KeyVault which is locked down. These tests will run as part of our DevOps pipelines though.

Run the unit tests from the assemblies:

  • Microsoft.Identity.Test.Unit.net45
  • Microsoft.Identity.Test.Unit.netcore

Package

From VS or from the command line if you wish to control the versioning:

msbuild <msal>.csproj /t:pack /p:MsalClientSemVer=1.2.3-preview

Command Line

Use msbuild commands - msbuild /t:restore and msbuild. Do not rely on dotnet command line because it is only for .Net Core, but this library has many other targets.

Note: To enable us to target Xamarin as well as .Net core, we took a dependency on the MsBuild SDK extras - https://github.com/onovotny/MSBuildSdkExtras See this issue about using dotnet

Getting started with MSAL.NET

Acquiring tokens

Web Apps / Web APIs / daemon apps

Desktop/Mobile apps

Advanced topics

FAQ

Other resources

Clone this wiki locally