diff --git a/appveyor.yml b/appveyor.yml
index 52cc158..ae56572 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -39,6 +39,9 @@
 test_script:
   - cmd: msbuild .\lang\cs\TestRunner.proj /p:Configuration="Debug" /p:Platform="x64"
 
+after_build:
+  - ps: .\bin\AnalyzeClrCompatibility.ps1
+
 notifications:
   - provider: Email
     on_build_success: false
diff --git a/bin/AnalyzeClrCompatibility.ps1 b/bin/AnalyzeClrCompatibility.ps1
new file mode 100644
index 0000000..99b1e4e
--- /dev/null
+++ b/bin/AnalyzeClrCompatibility.ps1
@@ -0,0 +1,134 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Input / Output Settings
+$baseDir = ".\lang\cs\"
+$buildDir="${baseDir}\bin\x64\Debug"
+$outputDirectory = "${buildDir}\ClrCompatibility\"
+$incompatibilityFile = "${outputDirectory}\incompatibilities.txt"
+
+# Compatibility Analyzer settings
+$libraryDotNetTargets = @(".NET Standard, Version=2.0")
+$exeDotNetTargets = @(".NET Core + Platform Extensions, Version=1.0", ".NET Framework, Version=4.5.1")
+
+# Set up the directory structure
+If (Test-Path $outputDirectory)
+{
+	Remove-Item $outputDirectory -Force -Recurse
+}
+New-Item -ItemType Directory -Force -Path $outputDirectory | Out-Null
+
+# Install the API Portability Analyzer if it is not present
+$portabilityAnalyzer = "${buildDir}\ApiPort\ApiPort.exe"
+If (!(Test-Path $portabilityAnalyzer))
+{
+	Write-Output "Downloading the DotNet API Portability Analyzer"
+	$analyzerUrl="https://github.com/Microsoft/dotnet-apiport/releases/download/v1.4.0.alpha.00175/ApiPort.zip"
+	$analyzerZip="${buildDir}\analyzer.zip"
+	Invoke-WebRequest $analyzerUrl -OutFile $analyzerZip
+	Add-Type -assembly "System.IO.Compression.Filesystem";
+	# Now, external libraries don't understand relative paths
+	[IO.Compression.Zipfile]::ExtractToDirectory((Get-Item $analyzerZip).FullName,(Get-Item $buildDir).FullName);
+	Remove-Item $analyzerZip
+}
+
+# Set up the counter
+[int] $totalIncompatibilities = 0
+
+# Start a unique list of dependencies
+$missingDependencies = @{}
+
+# Get all the folders
+Get-ChildItem $baseDir -dir -Filter "Org.Apache.*" |
+	ForEach-Object {
+		$projectName = $_.Name
+
+		# Verify that the project is part of the .NET solution
+		$csProj = "${baseDir}\${projectName}\${projectName}.csproj"
+		If (!(Test-Path $csProj))
+		{
+			Write-Output "Skipping ${projectName}: No csproj"
+			return
+		}
+
+		# Determine the output type for the project
+		$outputType = $(Select-String -Path $csProj -Pattern "<OutputType>").Line -replace '^\s+<OutputType>(.+?)</OutputType>\s*$','$1'
+
+		# Get the portability settings for this project
+		$objectSuffix = ""
+		$dotNetTargets = @()
+		If ($outputType -eq "Library")
+		{
+			$objectSuffix = "dll"
+			$dotNetTargets = $libraryDotNetTargets
+		}
+		ElseIf ($outputType -eq "Exe")
+		{
+			$objectSuffix = "exe"
+			$dotNetTargets = $exeDotNetTargets
+		}
+		Else
+		{
+			Write-Output "Skipping ${projectName}: OutputType is not 'Library','Exe'"
+			return
+		}
+
+		# Define the object we want to explore
+		$objectPath = "${buildDir}\${projectName}\${projectName}.${objectSuffix}"
+		If(!(Test-Path $objectPath)) {
+			Write-Output "Warning: Could not find build object: ${objectPath}; Skipping ${projectName}"
+			return
+		}
+
+		# Announce our intentions (there may be many slow loops)
+		Write-Output "Analyzing $projectName - $outputType"
+
+		# Define the portability command
+		$outputFileName = "${outputDirectory}\${projectName}.${objectSuffix}.json"
+		$analyzeParams = "analyze", "-r", "Json", "-f", $objectPath, "-o", $outputFileName
+		ForEach ($target in $dotNetTargets)
+		{
+			$analyzeParams += "-t", $target
+		}
+
+		# Run the command
+		& $portabilityAnalyzer $analyzeParams | Out-Null
+
+		# Read in the resulting object
+		$compliance = Get-Content -Raw -Path $outputFileName | ConvertFrom-Json
+		
+		# Count the incompatibilities
+		$incompatibilities = $compliance.MissingDependencies.Count
+		$totalIncompatibilities += $incompatibilities
+		Write-Output "`tFound ${incompatibilities} incompatibilities"
+
+		# Keep a unique list of the incompatible libraries
+		ForEach ($item in $compliance.MissingDependencies)
+		{
+			$assembly = $item.DefinedInAssemblyIdentity.split(',')[0]
+			$missingDependencies[$assembly] = 1
+		}
+	}
+
+# Now report the status
+Write-Output "Found ${totalIncompatibilities} total incompatibilities"
+Write-Output "Missing Dependencies:"
+$dependencyString = "`t" + ($missingDependencies.Keys -join "`n`t")
+Write-Output "${dependencyString}"
+
+# And checkpoint it to a file
+$totalIncompatibilities | Out-File $incompatibilityFile
