diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644
index 3413edd8b92c0e32d9945b83d0c16467dc90a6e7..0000000000000000000000000000000000000000
--- a/.appveyor.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-version: 6.0.8.{build}
-clone_depth: 100
-
-image:
-  - Visual Studio 2017
-
-environment:
-  PYTHON: "C:\\Python27-x64"
-  PYTHON_VERSION: "2.7.11"
-  PYTHON_ARCH: "64"
-  CONAN_USER_HOME: "C:\\projects\\deps\\conan"
-  OMP_NUM_THREADS: "1"
-
-platform:
-  - x64
-
-configuration:
-  - Release
-
-cache:
-  - C:\projects\deps\conan -> scripts/cmake/ConanSetup.cmake
-
-install:
-  # All external dependencies are installed in C:\projects\deps
-  - if not exist "C:\projects\deps\" mkdir C:\projects\deps
-
-  # Install conan
-  - if not exist "C:\projects\deps\conan\" mkdir C:\projects\deps\conan
-  - set PATH=%PYTHON%/Scripts/;%PATH%
-  - pip.exe install conan --upgrade
-
-  # Install Ninja
-  - set NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-win.zip"
-  - appveyor DownloadFile %NINJA_URL% -FileName ninja.zip
-  - 7z x ninja.zip -oC:\projects\deps\ninja > nul
-  - set PATH=C:\projects\deps\ninja;%PATH%
-  - ninja --version
-
-clone_script:
-  - ps: >-
-      if(-not $env:appveyor_pull_request_number) {
-        $env:GIT_LFS_SKIP_SMUDGE = 1
-        git clone -q --branch=$env:appveyor_repo_branch https://github.com/$env:appveyor_repo_name $env:appveyor_build_folder
-        git checkout -qf $env:appveyor_repo_commit
-        git lfs pull
-      } else {
-        $env:GIT_LFS_SKIP_SMUDGE = 1
-        git clone -q https://github.com/$env:appveyor_repo_name $env:appveyor_build_folder
-        git fetch -q origin +refs/pull/$env:appveyor_pull_request_number/merge:
-        git checkout -qf FETCH_HEAD
-        git lfs pull
-      }
-
-before_build:
-  - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\vsdevcmd" -arch=x64
-  - cd %APPVEYOR_BUILD_FOLDER%
-  - echo %APPVEYOR_BUILD_FOLDER%
-
-build_script:
-  - mkdir build & cd build
-  - cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=%configuration% -DBUILD_SHARED_LIBS=OFF -DOGS_EIGEN_DYNAMIC_SHAPE_MATRICES=ON -DOGS_USE_PCH=OFF
-  - cmake --build . --config %configuration%
-  - cmake --build . --config %configuration% --target tests
-  - cmake --build . --config %configuration% --target ctest
-  # - cmake . -DOGS_BUILD_GUI=ON
-  # - cmake --build . --config %configuration% --target DataExplorer
-
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
new file mode 100644
index 0000000000000000000000000000000000000000..35adfddf30e364693c2c9b5a383fe4ec98a0bca0
--- /dev/null
+++ b/azure-pipelines.yml
@@ -0,0 +1,23 @@
+jobs:
+- job: Windows
+  pool:
+    vmImage: 'vs2017-win2016'
+  timeoutInMinutes: 0
+  steps:
+  - task: UsePythonVersion@0
+    inputs:
+      versionSpec: '3.7'
+  - script: |
+      pip install conan --upgrade
+  - task: CMake@1
+    inputs:
+      cmakeArgs: ".. -A x64 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DOGS_EIGEN_DYNAMIC_SHAPE_MATRICES=ON -DOGS_USE_PCH=OFF"
+  - task: MSBuild@1
+    inputs:
+      solution: 'build/ALL_BUILD.vcxproj'
+      maximumCpuCount: true
+      configuration: 'Release'
+  - script: |
+      cd build\bin
+      .\testrunner.exe
+    displayName: 'testrunner'