Skip to content
This repository has been archived by the owner on Jun 30, 2023. It is now read-only.

ADAL .NET Build & Run

Bogdan Gavril edited this page Aug 1, 2018 · 35 revisions

This is documentation about how to build an run the project. I wrote this because I had a lot of problems building the project (it is not the obvious build an run in visual studio) and I would figure that somebody else would have the same problems.

Before you build and run you will need a set of SDK's and tools installed on your box. You can see the pre-requisites here

Please click here to view the the Visual Studio 2017 required components.

Build ADAL/MSAL with a script (Branch: dev)

Important: At this point in time all tools has to be run as Admin.

To build targets for Xamarin Android (MonoAnroid7), Xamarin iOS (Xamarin.iOS10), Windows (net45), UWP (win81, netstandard1.1;netstandard1.3) you will need VS2017 (latest update). See also prerequisites for additional details.

  1. Open the VS2017 Developer Command Prompt and navigate to the folder where you have the GitHub project.
  2. Restore packages using the restore.cmd script.
  3. Build using the buildVS2017.cmd script. (This only builds the core components and the unit tests)
  4. To build everything run the buildAll.cmd script (This script also does the strongnaming required to run and build the unit tests and the sample apps)
  5. You can run the strongname.cmd to ensure you have strong naming disabled for your dev box. This is required to run tests and sample apps with bits that are not signed.
  • Note: build.cmd calls buildVS2017.cmd.

Build ADAL and MSAL manually (Branch: dev)

All steps are to be performed from the Visual Studio 2017 Developer Prompt, unless stated otherwise.

  1. NuGet restore packages for Combined.NoWinRT.sln msbuild /t:restore Combined.NoWinRT.sln
  2. Build Combined.NoWinRT.sln msbuild Combined.NoWinRT.sln /p:configuration=Release

Troubleshooting: if you get messages related to Designer.cs not present, try to build in VS 2017 as well

Package MSAL

Packaging MSAL is done manually, by laying out the assemblies and the nuspec file. This is because the new way of packaging (msbuild /t:pack) does not yet support the scenario of packaging 2 assemblies (see https://github.com/NuGet/Home/issues/3891)

  1. Make sure you have built MSAL in release mode. When building, you can pass extra params that control assembly versioning: /p:CoreSemVer=1.2.3-internal /p:MsalClientSemVer=4.5.7-beta2
  2. Layout the assemblies and the nuspec file msbuild msal/src/Microsoft.Identity.Client/Microsoft.Identity.Client.csproj /t:LayoutNuGet /p:NugetPackageRootFolder=<layout dir>
  3. Package using nuget.exe (the tool has to be downloaded) nuget pack <layout dir> -Properties Configuration=Release;version=<package version> -Symbols

Package ADAL

  1. Make sure you have built ADAL in release mode. When building, you can pass extra params that control versioning /p:AdalClientSemVer=1.0.0 /p:CoreSemVer=2.1.1-rc
  2. Layout the assemblies and the nuspec file msbuild adal\src\Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.csproj /t:LayoutNuGet /p:NugetPackageRootFolder=<layout dir>
  3. Package using nuget.exe (the tool has to be downloaded) nuget pack <layout dir> -Properties Configuration=Release;version=<package version> -Symbols

Build ADAL (Branch: adalv3/dev)

  1. First open the Developer command prompt as administrator
  2. Change the branch to adalv3/dev
  3. Run the following command: msbuild Adal.net.nowinrt.sln /t:restore /p:configuration=release - this will restore the nuget packages needed for the project.
  4. Now run msbuild Adal.net.nowinrt.sln /t:build /p:configuration=release - this will build the project.
  5. Then you can build it inside visual studio no problems.

I got all the info from the following issue.

Run ADAL

When you try to run the project, you will get the following exception: System.IO.FileLoadException: 'Could not load file or assembly 'Microsoft.IdentityModel.Clients.ActiveDirectory, Version=0.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A)'

To fix this follow these steps

  1. First open the Developer command prompt as administrator
  2. Go to the bin/debug folder of the selected test project.
  3. Run the following command to fix this dll issue: sn.exe -Vr Microsoft.IdentityModel.Clients.ActiveDirectory.dll
  4. Now you can run the project!

I got all the info from the following issue.

Clone this wiki locally