From 8540228a1d296a2c0d00fe00442ff8766bd8410f Mon Sep 17 00:00:00 2001
From: Josh Varty <joshvarty@gmail.com>
Date: Sun, 31 Jan 2016 23:02:43 -0500
Subject: [PATCH 1/6] Ignore .vs/

---
 .gitignore | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitignore b/.gitignore
index a77a4fc..c0d82f1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@
 *.sln.docstates
 *.ide/
 *.ide
+*.vs/
 
 SB_Files/
 GithubStaging/

From dd09c3e1c396324dfcb066df936226b605ad03b4 Mon Sep 17 00:00:00 2001
From: Josh Varty <joshvarty@gmail.com>
Date: Sun, 31 Jan 2016 23:02:59 -0500
Subject: [PATCH 2/6] Get the paths for omnisharp.json & project.json

---
 .../Controllers/UploadController.cs           | 28 ++++---------------
 1 file changed, 6 insertions(+), 22 deletions(-)

diff --git a/src/SourceBrowser.Site/Controllers/UploadController.cs b/src/SourceBrowser.Site/Controllers/UploadController.cs
index 7612414..cb76302 100644
--- a/src/SourceBrowser.Site/Controllers/UploadController.cs
+++ b/src/SourceBrowser.Site/Controllers/UploadController.cs
@@ -53,17 +53,15 @@ public ActionResult Submit(string githubUrl)
                     return View("Index");
                 }
 
-                // Generate the source browser files for this solution
-                var solutionPaths = GetSolutionPaths(repoRootPath);
-                if (solutionPaths.Length == 0)
-                {
-                    ViewBag.Error = "No C# solution was found. Ensure that a valid .sln file exists within your repository.";
-                    return View("Index");
-                }
-
                 var organizationPath = System.Web.Hosting.HostingEnvironment.MapPath("~/") + "SB_Files\\" + retriever.UserName;
                 var repoPath = Path.Combine(organizationPath, retriever.RepoName);
 
+
+                // Generate the source browser files for this solution
+                var solutionPaths = Directory.GetFiles(repoRootPath, "*.sln", SearchOption.AllDirectories);
+                var omnisharpPaths = Directory.GetFiles(repoRootPath, "omnisharp.json", SearchOption.AllDirectories);
+                var projectJsonPaths= Directory.GetFiles(repoRootPath, "project.json", SearchOption.AllDirectories);
+
                 // TODO: Use parallel for.
                 // TODO: Process all solutions.
                 // For now, we're assuming the shallowest and shortest .sln file is the one we're interested in
@@ -121,19 +119,5 @@ public ActionResult Submit(string githubUrl)
                 }
             }
         }
-
-        /// <summary>
-        /// Simply searches for the solution files and returns their paths.
-        /// </summary>
-        /// <param name="rootDirectory">
-        /// The root Directory.
-        /// </param>
-        /// <returns>
-        /// The solution paths.
-        /// </returns>
-        private string[] GetSolutionPaths(string rootDirectory)
-        {
-            return Directory.GetFiles(rootDirectory, "*.sln", SearchOption.AllDirectories);
-        }
     }
 }
\ No newline at end of file

From f545f6b9f6151c224feb8c73b6de2725330276e6 Mon Sep 17 00:00:00 2001
From: Josh Varty <joshvarty@gmail.com>
Date: Sun, 31 Jan 2016 23:46:12 -0500
Subject: [PATCH 3/6] Layout for ProjectJson support

---
 .../SolutionAnalyzer.cs                       |  2 +
 .../Controllers/UploadController.cs           | 66 +++++++++----------
 .../Repositories/UploadRepository.cs          | 22 ++++++-
 3 files changed, 54 insertions(+), 36 deletions(-)

diff --git a/src/SourceBrowser.Generator/SolutionAnalyzer.cs b/src/SourceBrowser.Generator/SolutionAnalyzer.cs
index 16369a1..ee25f0d 100644
--- a/src/SourceBrowser.Generator/SolutionAnalyzer.cs
+++ b/src/SourceBrowser.Generator/SolutionAnalyzer.cs
@@ -21,6 +21,7 @@ namespace SourceBrowser.Generator
 {
     public class SolutionAnalayzer
     {
+        public bool WorkspaceFailed { get; set; } 
         MSBuildWorkspace _workspace;
         Solution _solution;
         private ReferencesourceLinkProvider _refsourceLinkProvider = new ReferencesourceLinkProvider();
@@ -35,6 +36,7 @@ public SolutionAnalayzer(string solutionPath)
 
         private void _workspace_WorkspaceFailed(object sender, WorkspaceDiagnosticEventArgs e)
         {
+            WorkspaceFailed = true;
             try
             {
                 var logDirectory = System.Web.Hosting.HostingEnvironment.MapPath("/WorkspaceLogs/");
diff --git a/src/SourceBrowser.Site/Controllers/UploadController.cs b/src/SourceBrowser.Site/Controllers/UploadController.cs
index cb76302..0777e96 100644
--- a/src/SourceBrowser.Site/Controllers/UploadController.cs
+++ b/src/SourceBrowser.Site/Controllers/UploadController.cs
@@ -7,7 +7,7 @@
     using SourceBrowser.Site.Repositories;
     using System;
     using System.Linq;
-
+    using Generator.Model;
     public class UploadController : Controller
     {
         // GET: Upload
@@ -62,49 +62,45 @@ public ActionResult Submit(string githubUrl)
                 var omnisharpPaths = Directory.GetFiles(repoRootPath, "omnisharp.json", SearchOption.AllDirectories);
                 var projectJsonPaths= Directory.GetFiles(repoRootPath, "project.json", SearchOption.AllDirectories);
 
-                // TODO: Use parallel for.
-                // TODO: Process all solutions.
-                // For now, we're assuming the shallowest and shortest .sln file is the one we're interested in
-                foreach (var solutionPath in solutionPaths.OrderBy(n => n.Length).Take(1))
-                {
-                    try
-                    {
-                        var workspaceModel = UploadRepository.ProcessSolution(solutionPath, repoRootPath);
-
-                        //One pass to lookup all declarations
-                        var typeTransformer = new TokenLookupTransformer();
-                        typeTransformer.Visit(workspaceModel);
-                        var tokenLookup = typeTransformer.TokenLookup;
-
-                        //Another pass to generate HTMLs
-                        var htmlTransformer = new HtmlTransformer(tokenLookup, repoPath);
-                        htmlTransformer.Visit(workspaceModel);
+                string solutionPath = solutionPaths.OrderBy(n => n.Length).FirstOrDefault();
+                string omnisharpPath = omnisharpPaths.OrderBy(n => n.Length).FirstOrDefault();
 
-                        var searchTransformer = new SearchIndexTransformer(retriever.UserName, retriever.RepoName);
-                        searchTransformer.Visit(workspaceModel);
+                WorkspaceModel workspaceModel = null;
+                if(solutionPath != null)
+                {
+                    workspaceModel = UploadRepository.ProcessSolution(solutionPath, repoRootPath);
+                }
 
-                        // Generate HTML of the tree view
-                        var treeViewTransformer = new TreeViewTransformer(repoPath, retriever.UserName, retriever.RepoName);
-                        treeViewTransformer.Visit(workspaceModel);
-                    }
-                    catch (Exception ex)
-                    {
-                        // TODO: Log this
-                        ViewBag.Error = "There was an error processing solution " + Path.GetFileName(solutionPath);
-                        return View("Index");
-                    }
+                if(workspaceModel == null && omnisharpPath != null)
+                {
+                    workspaceModel = UploadRepository.ProcessOmnisharp(omnisharpPath, repoRootPath);
                 }
 
-                try
+                if(workspaceModel == null && projectJsonPaths.Count() > 0)
                 {
-                    UploadRepository.SaveReadme(repoPath, retriever.ProvideParsedReadme());
+                    workspaceModel = UploadRepository.ProcessProjectJson(projectJsonPaths, repoRootPath);
                 }
-                catch (Exception ex)
+
+                if (workspaceModel != null)
                 {
-                    // TODO: Log and swallow - readme is not essential.
+                    //One pass to lookup all declarations
+                    var typeTransformer = new TokenLookupTransformer();
+                    typeTransformer.Visit(workspaceModel);
+                    var tokenLookup = typeTransformer.TokenLookup;
+
+                    //Another pass to generate HTMLs
+                    var htmlTransformer = new HtmlTransformer(tokenLookup, repoPath);
+                    htmlTransformer.Visit(workspaceModel);
+
+                    var searchTransformer = new SearchIndexTransformer(retriever.UserName, retriever.RepoName);
+                    searchTransformer.Visit(workspaceModel);
+
+                    // Generate HTML of the tree view
+                    var treeViewTransformer = new TreeViewTransformer(repoPath, retriever.UserName, retriever.RepoName);
+                    treeViewTransformer.Visit(workspaceModel);
+                    processingSuccessful = true;
                 }
 
-                processingSuccessful = true;
                 return Redirect("/Browse/" + retriever.UserName + "/" + retriever.RepoName);
             }
             finally
diff --git a/src/SourceBrowser.Site/Repositories/UploadRepository.cs b/src/SourceBrowser.Site/Repositories/UploadRepository.cs
index 8e878c5..09eaef2 100644
--- a/src/SourceBrowser.Site/Repositories/UploadRepository.cs
+++ b/src/SourceBrowser.Site/Repositories/UploadRepository.cs
@@ -7,6 +7,7 @@
 using System.Security;
 using System.IO;
 using System.Configuration;
+using SourceBrowser.Generator.Model;
 
 namespace SourceBrowser.Site.Repositories
 {
@@ -18,7 +19,7 @@ public class UploadRepository
         [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
         private extern static bool CloseHandle(IntPtr handle);
 
-        internal static Generator.Model.WorkspaceModel ProcessSolution(string solutionPath, string repoRootPath)
+        internal static WorkspaceModel ProcessSolution(string solutionPath, string repoRootPath)
         {
             SafeTokenHandle safeTokenHandle;
             string safeUserName = ConfigurationManager.AppSettings["safeUserName"];
@@ -28,6 +29,11 @@ internal static Generator.Model.WorkspaceModel ProcessSolution(string solutionPa
             if (String.IsNullOrEmpty(safeUserName))
             {
                 var sourceGenerator = new Generator.SolutionAnalayzer(solutionPath);
+                if(sourceGenerator.WorkspaceFailed)
+                {
+                    return null;
+                }
+
                 var workspaceModel = sourceGenerator.BuildWorkspaceModel(repoRootPath);
                 return workspaceModel;
             }
@@ -54,6 +60,10 @@ internal static Generator.Model.WorkspaceModel ProcessSolution(string solutionPa
                 using (WindowsImpersonationContext impersonatedUser = WindowsIdentity.Impersonate(safeTokenHandle.DangerousGetHandle()))
                 {
                     var sourceGenerator = new Generator.SolutionAnalayzer(solutionPath);
+                    if (sourceGenerator.WorkspaceFailed)
+                    {
+                        return null;
+                    }
                     var workspaceModel = sourceGenerator.BuildWorkspaceModel(repoRootPath);
                     return workspaceModel;
                 }
@@ -61,6 +71,16 @@ internal static Generator.Model.WorkspaceModel ProcessSolution(string solutionPa
             }
         }
 
+        internal static WorkspaceModel ProcessOmnisharp(string omnisharpPath, string repoRootPath)
+        {
+            throw new NotImplementedException();
+        }
+
+        internal static WorkspaceModel ProcessProjectJson(string[] projectJsonPaths, string repoRootPath)
+        {
+            throw new NotImplementedException();
+        }
+
         internal static void SaveReadme(string repoPath, string readmeInHtml)
         {
             string readmePath = Path.Combine(repoPath, "readme.html");

From b34b7d29459fe58b06979616d0538229d4abed61 Mon Sep 17 00:00:00 2001
From: Josh Varty <joshvarty@gmail.com>
Date: Mon, 1 Feb 2016 01:16:09 -0500
Subject: [PATCH 4/6] Update to latest version of Roslyn

---
 src/SourceBrowser.Generator/App.config        | 26 ++++-
 .../DocumentWalkers/CSWalkerUtils.cs          |  6 +-
 .../DocumentWalkers/DocumentWalker.cs         |  5 +-
 .../DocumentWalkers/VBWalkerUtils.cs          |  6 +-
 .../SourceBrowser.Generator.csproj            | 98 +++++++++++--------
 src/SourceBrowser.Generator/packages.config   | 35 +++++--
 .../SourceBrowser.Samples.csproj              | 58 ++---------
 src/SourceBrowser.Samples/packages.config     | 34 +++++--
 .../SourceBrowser.Site.csproj                 | 58 ++---------
 src/SourceBrowser.Site/packages.config        | 34 +++++--
 .../SourceBrowser.Tests.csproj                | 60 ++----------
 src/SourceBrowser.Tests/app.config            | 16 +--
 src/SourceBrowser.Tests/packages.config       | 34 +++++--
 13 files changed, 218 insertions(+), 252 deletions(-)

diff --git a/src/SourceBrowser.Generator/App.config b/src/SourceBrowser.Generator/App.config
index 8e15646..c8cc771 100644
--- a/src/SourceBrowser.Generator/App.config
+++ b/src/SourceBrowser.Generator/App.config
@@ -1,6 +1,26 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
     <startup> 
-        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
     </startup>
-</configuration>
\ No newline at end of file
+  <runtime>
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <dependentAssembly>
+        <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Microsoft.CodeAnalysis.Workspaces" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Microsoft.CodeAnalysis.CSharp" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
+      </dependentAssembly>
+    </assemblyBinding>
+  </runtime>
+</configuration>
diff --git a/src/SourceBrowser.Generator/DocumentWalkers/CSWalkerUtils.cs b/src/SourceBrowser.Generator/DocumentWalkers/CSWalkerUtils.cs
index e8c76ae..704571f 100644
--- a/src/SourceBrowser.Generator/DocumentWalkers/CSWalkerUtils.cs
+++ b/src/SourceBrowser.Generator/DocumentWalkers/CSWalkerUtils.cs
@@ -29,13 +29,13 @@ internal CSWalkerUtils(DocumentWalker<CSWalkerUtils> walker)
         public string LocalVariableDelimiter { get; } = CSharpDelimiters.LOCAL_VARIABLE;
 
 
-        public string GetFullName(SyntaxToken token) => token.CSharpKind().ToString();
+        public string GetFullName(SyntaxToken token) => token.Kind().ToString();
 
-        public bool IsIdentifier(SyntaxToken token) => token.CSharpKind() == SyntaxKind.IdentifierToken;
+        public bool IsIdentifier(SyntaxToken token) => token.Kind() == SyntaxKind.IdentifierToken;
 
         public bool IsKeyword(SyntaxToken token) => token.IsKeyword();
 
-        public bool IsLiteral(SyntaxToken token) => token.CSharpKind() == SyntaxKind.StringLiteralToken;
+        public bool IsLiteral(SyntaxToken token) => token.Kind() == SyntaxKind.StringLiteralToken;
 
         public override void VisitToken(SyntaxToken token) => _walker.VisitToken(token);
     }
diff --git a/src/SourceBrowser.Generator/DocumentWalkers/DocumentWalker.cs b/src/SourceBrowser.Generator/DocumentWalkers/DocumentWalker.cs
index a44fe93..09a2e8d 100644
--- a/src/SourceBrowser.Generator/DocumentWalkers/DocumentWalker.cs
+++ b/src/SourceBrowser.Generator/DocumentWalkers/DocumentWalker.cs
@@ -5,6 +5,7 @@
 using SourceBrowser.Generator.Model;
 using SourceBrowser.Generator.Extensions;
 using Microsoft.CodeAnalysis.FindSymbols;
+using Microsoft.CodeAnalysis.CSharp;
 
 namespace SourceBrowser.Generator.DocumentWalkers
 {
@@ -81,7 +82,7 @@ private ICollection<Trivia> ProcessTrivia(SyntaxTriviaList triviaList)
         {
             var triviaModelList = triviaList.Select(n => new Trivia(
                 value: n.ToFullString(),
-                type: n.CSharpKind().ToString()
+                type: n.Kind().ToString()
             )).ToList();
 
             return triviaModelList;
@@ -92,7 +93,7 @@ private ICollection<Trivia> ProcessTrivia(SyntaxTriviaList triviaList)
         /// </summary>
         private Token ProcessOtherToken(SyntaxToken token)
         {
-            string fullName = token.CSharpKind().ToString();
+            string fullName = token.Kind().ToString();
             string value = token.ToString();
             string type = _walkerUtils.OtherTokenTypeName;
             int lineNumber = token.GetLocation().GetLineSpan().StartLinePosition.Line + 1;
diff --git a/src/SourceBrowser.Generator/DocumentWalkers/VBWalkerUtils.cs b/src/SourceBrowser.Generator/DocumentWalkers/VBWalkerUtils.cs
index 4f2a6cf..68c9011 100644
--- a/src/SourceBrowser.Generator/DocumentWalkers/VBWalkerUtils.cs
+++ b/src/SourceBrowser.Generator/DocumentWalkers/VBWalkerUtils.cs
@@ -29,13 +29,13 @@ internal VBWalkerUtils(DocumentWalker<VBWalkerUtils> walker)
         public string LocalVariableDelimiter { get; } = VBDelimiters.LOCAL_VARIABLE;
 
 
-        public string GetFullName(SyntaxToken token) => token.CSharpKind().ToString();
+        public string GetFullName(SyntaxToken token) => token.Kind().ToString();
 
-        public bool IsIdentifier(SyntaxToken token) => token.VBKind() == SyntaxKind.IdentifierToken;
+        public bool IsIdentifier(SyntaxToken token) => token.Kind() == SyntaxKind.IdentifierToken;
 
         public bool IsKeyword(SyntaxToken token) => token.IsKeyword();
 
-        public bool IsLiteral(SyntaxToken token) => token.VBKind() == SyntaxKind.StringLiteralToken;
+        public bool IsLiteral(SyntaxToken token) => token.Kind() == SyntaxKind.StringLiteralToken;
 
         public override void VisitToken(SyntaxToken token) => _walker.VisitToken(token);
     }
diff --git a/src/SourceBrowser.Generator/SourceBrowser.Generator.csproj b/src/SourceBrowser.Generator/SourceBrowser.Generator.csproj
index e614bf7..f0edf7c 100644
--- a/src/SourceBrowser.Generator/SourceBrowser.Generator.csproj
+++ b/src/SourceBrowser.Generator/SourceBrowser.Generator.csproj
@@ -9,8 +9,9 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>SourceBrowser.Generator</RootNamespace>
     <AssemblyName>SourceBrowser.Generator</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <PlatformTarget>AnyCPU</PlatformTarget>
@@ -35,50 +36,39 @@
     <StartupObject />
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="Microsoft.CodeAnalysis, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
+    <Reference Include="Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.dll</HintPath>
+      <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces.Desktop">
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.Desktop.dll</HintPath>
+    <Reference Include="Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.1.1\lib\net45\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
+      <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Desktop.dll</HintPath>
+    <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.1.1\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
+      <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
+    <Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.1.1.1\lib\net45\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
+      <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Desktop.dll</HintPath>
+    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.1.1\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
+      <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
+    <Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
+      <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces.Desktop">
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.Desktop.dll</HintPath>
+    <Reference Include="Microsoft.CodeAnalysis.Workspaces.Desktop, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.Workspaces.Desktop.dll</HintPath>
+      <Private>True</Private>
     </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
+    <Reference Include="Microsoft.DotNet.ProjectModel">
+      <HintPath>..\lib\Microsoft.DotNet.ProjectModel.dll</HintPath>
     </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.Workspaces.Desktop">
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Workspaces.Desktop.dll</HintPath>
+    <Reference Include="Microsoft.DotNet.ProjectModel.Workspaces">
+      <HintPath>..\lib\Microsoft.DotNet.ProjectModel.Workspaces.dll</HintPath>
     </Reference>
     <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
@@ -86,15 +76,35 @@
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Collections" />
-    <Reference Include="System.Collections.Immutable, Version=1.1.32.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+    <Reference Include="System.Collections.Immutable, Version=1.1.37.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Collections.Immutable.1.1.37\lib\dotnet\System.Collections.Immutable.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Composition.AttributedModel, Version=1.0.27.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.AttributedModel.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Composition.Convention, Version=1.0.27.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.Convention.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Composition.Hosting, Version=1.0.27.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.Hosting.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Composition.Runtime, Version=1.0.27.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.Runtime.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Composition.TypedParts, Version=1.0.27.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.TypedParts.dll</HintPath>
       <Private>True</Private>
-      <HintPath>..\packages\System.Collections.Immutable.1.1.32-beta\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
     </Reference>
     <Reference Include="System.Core" />
     <Reference Include="System.Net.Http" />
-    <Reference Include="System.Reflection.Metadata, Version=1.0.17.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\System.Reflection.Metadata.1.0.17-beta\lib\portable-net45+win8\System.Reflection.Metadata.dll</HintPath>
+    <Reference Include="System.Reflection.Metadata, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Reflection.Metadata.1.1.0\lib\dotnet5.2\System.Reflection.Metadata.dll</HintPath>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System.Web" />
     <Reference Include="System.Xml.Linq" />
@@ -148,6 +158,10 @@
       <Name>SourceBrowser.Search</Name>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
+    <Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
        Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/src/SourceBrowser.Generator/packages.config b/src/SourceBrowser.Generator/packages.config
index 84ee7aa..d961c97 100644
--- a/src/SourceBrowser.Generator/packages.config
+++ b/src/SourceBrowser.Generator/packages.config
@@ -1,13 +1,30 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Microsoft.CodeAnalysis" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.Common" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.CSharp" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.CSharp.Workspaces" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.VisualBasic" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.VisualBasic.Workspaces" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.Workspaces.Common" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis" version="1.1.1" targetFramework="net461" />
+  <package id="Microsoft.CodeAnalysis.Analyzers" version="1.1.0" targetFramework="net461" />
+  <package id="Microsoft.CodeAnalysis.Common" version="1.1.1" targetFramework="net461" />
+  <package id="Microsoft.CodeAnalysis.CSharp" version="1.1.1" targetFramework="net461" />
+  <package id="Microsoft.CodeAnalysis.CSharp.Workspaces" version="1.1.1" targetFramework="net461" />
+  <package id="Microsoft.CodeAnalysis.VisualBasic" version="1.1.1" targetFramework="net461" />
+  <package id="Microsoft.CodeAnalysis.VisualBasic.Workspaces" version="1.1.1" targetFramework="net461" />
+  <package id="Microsoft.CodeAnalysis.Workspaces.Common" version="1.1.1" targetFramework="net461" />
+  <package id="Microsoft.Composition" version="1.0.27" targetFramework="net461" />
   <package id="Newtonsoft.Json" version="6.0.5" targetFramework="net45" />
-  <package id="System.Collections.Immutable" version="1.1.32-beta" targetFramework="net45" />
-  <package id="System.Reflection.Metadata" version="1.0.17-beta" targetFramework="net45" />
+  <package id="System.Collections" version="4.0.0" targetFramework="net461" />
+  <package id="System.Collections.Immutable" version="1.1.37" targetFramework="net461" />
+  <package id="System.Diagnostics.Debug" version="4.0.0" targetFramework="net461" />
+  <package id="System.Globalization" version="4.0.0" targetFramework="net461" />
+  <package id="System.IO" version="4.0.0" targetFramework="net461" />
+  <package id="System.Linq" version="4.0.0" targetFramework="net461" />
+  <package id="System.Reflection" version="4.0.0" targetFramework="net461" />
+  <package id="System.Reflection.Extensions" version="4.0.0" targetFramework="net461" />
+  <package id="System.Reflection.Metadata" version="1.1.0" targetFramework="net461" />
+  <package id="System.Reflection.Primitives" version="4.0.0" targetFramework="net461" />
+  <package id="System.Resources.ResourceManager" version="4.0.0" targetFramework="net461" />
+  <package id="System.Runtime" version="4.0.0" targetFramework="net461" />
+  <package id="System.Runtime.Extensions" version="4.0.0" targetFramework="net461" />
+  <package id="System.Runtime.InteropServices" version="4.0.0" targetFramework="net461" />
+  <package id="System.Text.Encoding" version="4.0.0" targetFramework="net461" />
+  <package id="System.Text.Encoding.Extensions" version="4.0.0" targetFramework="net461" />
+  <package id="System.Threading" version="4.0.0" targetFramework="net461" />
 </packages>
\ No newline at end of file
diff --git a/src/SourceBrowser.Samples/SourceBrowser.Samples.csproj b/src/SourceBrowser.Samples/SourceBrowser.Samples.csproj
index 509b004..2e886f9 100644
--- a/src/SourceBrowser.Samples/SourceBrowser.Samples.csproj
+++ b/src/SourceBrowser.Samples/SourceBrowser.Samples.csproj
@@ -32,56 +32,10 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="Microsoft.CodeAnalysis, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces.Desktop">
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces.Desktop">
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.Workspaces.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Workspaces.Desktop.dll</HintPath>
-    </Reference>
     <Reference Include="System" />
-    <Reference Include="System.Collections.Immutable, Version=1.1.32.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+    <Reference Include="System.Collections.Immutable, Version=1.1.37.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Collections.Immutable.1.1.37\lib\dotnet\System.Collections.Immutable.dll</HintPath>
       <Private>True</Private>
-      <HintPath>..\packages\System.Collections.Immutable.1.1.32-beta\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
     </Reference>
     <Reference Include="System.Composition.AttributedModel">
       <HintPath>..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.AttributedModel.dll</HintPath>
@@ -100,10 +54,6 @@
     </Reference>
     <Reference Include="System.Core" />
     <Reference Include="System.Net.Http" />
-    <Reference Include="System.Reflection.Metadata, Version=1.0.17.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\System.Reflection.Metadata.1.0.17-beta\lib\portable-net45+win8\System.Reflection.Metadata.dll</HintPath>
-    </Reference>
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
     <Reference Include="Microsoft.CSharp" />
@@ -124,6 +74,10 @@
       <Name>SourceBrowser.Generator</Name>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
+    <Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/src/SourceBrowser.Samples/packages.config b/src/SourceBrowser.Samples/packages.config
index 8364729..8fd055a 100644
--- a/src/SourceBrowser.Samples/packages.config
+++ b/src/SourceBrowser.Samples/packages.config
@@ -1,13 +1,29 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Microsoft.CodeAnalysis" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.Common" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.CSharp" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.CSharp.Workspaces" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.VisualBasic" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.VisualBasic.Workspaces" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.Workspaces.Common" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.Analyzers" version="1.1.0" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.Common" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.CSharp" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.CSharp.Workspaces" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.VisualBasic" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.VisualBasic.Workspaces" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.Workspaces.Common" version="1.1.1" targetFramework="net45" />
   <package id="Microsoft.Composition" version="1.0.27" targetFramework="net45" />
-  <package id="System.Collections.Immutable" version="1.1.32-beta" targetFramework="net45" />
-  <package id="System.Reflection.Metadata" version="1.0.17-beta" targetFramework="net45" />
+  <package id="System.Collections" version="4.0.0" targetFramework="net45" />
+  <package id="System.Collections.Immutable" version="1.1.37" targetFramework="net45" />
+  <package id="System.Diagnostics.Debug" version="4.0.0" targetFramework="net45" />
+  <package id="System.Globalization" version="4.0.0" targetFramework="net45" />
+  <package id="System.IO" version="4.0.0" targetFramework="net45" />
+  <package id="System.Linq" version="4.0.0" targetFramework="net45" />
+  <package id="System.Reflection" version="4.0.0" targetFramework="net45" />
+  <package id="System.Reflection.Extensions" version="4.0.0" targetFramework="net45" />
+  <package id="System.Reflection.Metadata" version="1.1.0" targetFramework="net45" />
+  <package id="System.Reflection.Primitives" version="4.0.0" targetFramework="net45" />
+  <package id="System.Resources.ResourceManager" version="4.0.0" targetFramework="net45" />
+  <package id="System.Runtime" version="4.0.0" targetFramework="net45" />
+  <package id="System.Runtime.Extensions" version="4.0.0" targetFramework="net45" />
+  <package id="System.Runtime.InteropServices" version="4.0.0" targetFramework="net45" />
+  <package id="System.Text.Encoding" version="4.0.0" targetFramework="net45" />
+  <package id="System.Text.Encoding.Extensions" version="4.0.0" targetFramework="net45" />
+  <package id="System.Threading" version="4.0.0" targetFramework="net45" />
 </packages>
\ No newline at end of file
diff --git a/src/SourceBrowser.Site/SourceBrowser.Site.csproj b/src/SourceBrowser.Site/SourceBrowser.Site.csproj
index 571db01..2ebaca2 100644
--- a/src/SourceBrowser.Site/SourceBrowser.Site.csproj
+++ b/src/SourceBrowser.Site/SourceBrowser.Site.csproj
@@ -20,6 +20,7 @@
     <IISExpressAnonymousAuthentication />
     <IISExpressWindowsAuthentication />
     <IISExpressUseClassicPipelineMode />
+    <UseGlobalApplicationHostFile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
@@ -56,60 +57,15 @@
     <Reference Include="Microsoft.AspNet.Identity.Owin">
       <HintPath>..\packages\Microsoft.AspNet.Identity.Owin.2.1.0\lib\net45\Microsoft.AspNet.Identity.Owin.dll</HintPath>
     </Reference>
-    <Reference Include="Microsoft.CodeAnalysis, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp.Desktop">
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Desktop">
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces.Desktop">
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.Workspaces.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Workspaces.Desktop.dll</HintPath>
-    </Reference>
     <Reference Include="Microsoft.CSharp" />
     <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\packages\Newtonsoft.Json.6.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
     </Reference>
     <Reference Include="System" />
-    <Reference Include="System.Collections.Immutable, Version=1.1.32.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+    <Reference Include="System.Collections.Immutable, Version=1.1.37.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Collections.Immutable.1.1.37\lib\dotnet\System.Collections.Immutable.dll</HintPath>
       <Private>True</Private>
-      <HintPath>..\packages\System.Collections.Immutable.1.1.32-beta\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
     </Reference>
     <Reference Include="System.Composition.AttributedModel">
       <HintPath>..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.AttributedModel.dll</HintPath>
@@ -128,10 +84,6 @@
     </Reference>
     <Reference Include="System.Data" />
     <Reference Include="System.Drawing" />
-    <Reference Include="System.Reflection.Metadata, Version=1.0.17.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\System.Reflection.Metadata.1.0.17-beta\lib\portable-net45+win8\System.Reflection.Metadata.dll</HintPath>
-    </Reference>
     <Reference Include="System.Web.DynamicData" />
     <Reference Include="System.Web.Entity" />
     <Reference Include="System.Web.ApplicationServices" />
@@ -531,6 +483,10 @@
       <Name>SourceBrowser.SolutionRetriever</Name>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
+    <Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
+  </ItemGroup>
   <PropertyGroup>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
     <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
diff --git a/src/SourceBrowser.Site/packages.config b/src/SourceBrowser.Site/packages.config
index 1b6217e..ab38c01 100644
--- a/src/SourceBrowser.Site/packages.config
+++ b/src/SourceBrowser.Site/packages.config
@@ -15,13 +15,14 @@
   <package id="Microsoft.AspNet.Razor" version="3.2.2" targetFramework="net45" />
   <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net45" />
   <package id="Microsoft.AspNet.WebPages" version="3.2.2" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.Common" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.CSharp" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.CSharp.Workspaces" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.VisualBasic" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.VisualBasic.Workspaces" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.Workspaces.Common" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.Analyzers" version="1.1.0" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.Common" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.CSharp" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.CSharp.Workspaces" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.VisualBasic" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.VisualBasic.Workspaces" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.Workspaces.Common" version="1.1.1" targetFramework="net45" />
   <package id="Microsoft.Composition" version="1.0.27" targetFramework="net45" />
   <package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.1.2" targetFramework="net45" />
   <package id="Microsoft.Owin" version="2.1.0" targetFramework="net45" />
@@ -38,7 +39,22 @@
   <package id="Newtonsoft.Json" version="6.0.6" targetFramework="net45" />
   <package id="Owin" version="1.0" targetFramework="net45" />
   <package id="Respond" version="1.2.0" targetFramework="net45" />
-  <package id="System.Collections.Immutable" version="1.1.32-beta" targetFramework="net45" />
-  <package id="System.Reflection.Metadata" version="1.0.17-beta" targetFramework="net45" />
+  <package id="System.Collections" version="4.0.0" targetFramework="net45" />
+  <package id="System.Collections.Immutable" version="1.1.37" targetFramework="net45" />
+  <package id="System.Diagnostics.Debug" version="4.0.0" targetFramework="net45" />
+  <package id="System.Globalization" version="4.0.0" targetFramework="net45" />
+  <package id="System.IO" version="4.0.0" targetFramework="net45" />
+  <package id="System.Linq" version="4.0.0" targetFramework="net45" />
+  <package id="System.Reflection" version="4.0.0" targetFramework="net45" />
+  <package id="System.Reflection.Extensions" version="4.0.0" targetFramework="net45" />
+  <package id="System.Reflection.Metadata" version="1.1.0" targetFramework="net45" />
+  <package id="System.Reflection.Primitives" version="4.0.0" targetFramework="net45" />
+  <package id="System.Resources.ResourceManager" version="4.0.0" targetFramework="net45" />
+  <package id="System.Runtime" version="4.0.0" targetFramework="net45" />
+  <package id="System.Runtime.Extensions" version="4.0.0" targetFramework="net45" />
+  <package id="System.Runtime.InteropServices" version="4.0.0" targetFramework="net45" />
+  <package id="System.Text.Encoding" version="4.0.0" targetFramework="net45" />
+  <package id="System.Text.Encoding.Extensions" version="4.0.0" targetFramework="net45" />
+  <package id="System.Threading" version="4.0.0" targetFramework="net45" />
   <package id="WebGrease" version="1.5.2" targetFramework="net45" />
 </packages>
\ No newline at end of file
diff --git a/src/SourceBrowser.Tests/SourceBrowser.Tests.csproj b/src/SourceBrowser.Tests/SourceBrowser.Tests.csproj
index daef377..380eec0 100644
--- a/src/SourceBrowser.Tests/SourceBrowser.Tests.csproj
+++ b/src/SourceBrowser.Tests/SourceBrowser.Tests.csproj
@@ -35,54 +35,6 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="Microsoft.CodeAnalysis, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CodeAnalysis.Workspaces.Desktop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0-beta1-20141031-01\lib\net45\Microsoft.CodeAnalysis.Workspaces.Desktop.dll</HintPath>
-    </Reference>
     <Reference Include="Roslyn.Services.UnitTests">
       <HintPath>..\lib\Roslyn.Services.UnitTests.dll</HintPath>
     </Reference>
@@ -90,9 +42,9 @@
       <HintPath>..\lib\Roslyn.Test.Utilities.dll</HintPath>
     </Reference>
     <Reference Include="System" />
-    <Reference Include="System.Collections.Immutable, Version=1.1.32.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+    <Reference Include="System.Collections.Immutable, Version=1.1.37.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Collections.Immutable.1.1.37\lib\dotnet\System.Collections.Immutable.dll</HintPath>
       <Private>True</Private>
-      <HintPath>..\packages\System.Collections.Immutable.1.1.32-beta\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
     </Reference>
     <Reference Include="System.Composition.AttributedModel">
       <HintPath>..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.AttributedModel.dll</HintPath>
@@ -109,10 +61,6 @@
     <Reference Include="System.Composition.TypedParts">
       <HintPath>..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.TypedParts.dll</HintPath>
     </Reference>
-    <Reference Include="System.Reflection.Metadata, Version=1.0.17.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\System.Reflection.Metadata.1.0.17-beta\lib\portable-net45+win8\System.Reflection.Metadata.dll</HintPath>
-    </Reference>
   </ItemGroup>
   <Choose>
     <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
@@ -140,6 +88,10 @@
       <Name>SourceBrowser.Generator</Name>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
+    <Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
+  </ItemGroup>
   <Choose>
     <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
       <ItemGroup>
diff --git a/src/SourceBrowser.Tests/app.config b/src/SourceBrowser.Tests/app.config
index 38cf066..1c195be 100644
--- a/src/SourceBrowser.Tests/app.config
+++ b/src/SourceBrowser.Tests/app.config
@@ -4,32 +4,36 @@
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
         <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.1.32.0" newVersion="1.1.32.0" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.37.0" newVersion="1.1.37.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.0.17.0" newVersion="1.0.17.0" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Microsoft.CodeAnalysis.CSharp" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-0.7.0.0" newVersion="0.7.0.0" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Microsoft.CodeAnalysis.Workspaces" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-0.7.0.0" newVersion="0.7.0.0" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-0.7.0.0" newVersion="0.7.0.0" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Microsoft.CodeAnalysis.VisualBasic" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-0.7.0.0" newVersion="0.7.0.0" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Microsoft.CodeAnalysis.Desktop" publicKeyToken="31bf3856ad364e35" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-0.7.0.0" newVersion="0.7.0.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Microsoft.CodeAnalysis.Workspaces.Desktop" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
 </configuration>
\ No newline at end of file
diff --git a/src/SourceBrowser.Tests/packages.config b/src/SourceBrowser.Tests/packages.config
index 8364729..8fd055a 100644
--- a/src/SourceBrowser.Tests/packages.config
+++ b/src/SourceBrowser.Tests/packages.config
@@ -1,13 +1,29 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="Microsoft.CodeAnalysis" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.Common" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.CSharp" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.CSharp.Workspaces" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.VisualBasic" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.VisualBasic.Workspaces" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
-  <package id="Microsoft.CodeAnalysis.Workspaces.Common" version="1.0.0-beta1-20141031-01" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.Analyzers" version="1.1.0" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.Common" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.CSharp" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.CSharp.Workspaces" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.VisualBasic" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.VisualBasic.Workspaces" version="1.1.1" targetFramework="net45" />
+  <package id="Microsoft.CodeAnalysis.Workspaces.Common" version="1.1.1" targetFramework="net45" />
   <package id="Microsoft.Composition" version="1.0.27" targetFramework="net45" />
-  <package id="System.Collections.Immutable" version="1.1.32-beta" targetFramework="net45" />
-  <package id="System.Reflection.Metadata" version="1.0.17-beta" targetFramework="net45" />
+  <package id="System.Collections" version="4.0.0" targetFramework="net45" />
+  <package id="System.Collections.Immutable" version="1.1.37" targetFramework="net45" />
+  <package id="System.Diagnostics.Debug" version="4.0.0" targetFramework="net45" />
+  <package id="System.Globalization" version="4.0.0" targetFramework="net45" />
+  <package id="System.IO" version="4.0.0" targetFramework="net45" />
+  <package id="System.Linq" version="4.0.0" targetFramework="net45" />
+  <package id="System.Reflection" version="4.0.0" targetFramework="net45" />
+  <package id="System.Reflection.Extensions" version="4.0.0" targetFramework="net45" />
+  <package id="System.Reflection.Metadata" version="1.1.0" targetFramework="net45" />
+  <package id="System.Reflection.Primitives" version="4.0.0" targetFramework="net45" />
+  <package id="System.Resources.ResourceManager" version="4.0.0" targetFramework="net45" />
+  <package id="System.Runtime" version="4.0.0" targetFramework="net45" />
+  <package id="System.Runtime.Extensions" version="4.0.0" targetFramework="net45" />
+  <package id="System.Runtime.InteropServices" version="4.0.0" targetFramework="net45" />
+  <package id="System.Text.Encoding" version="4.0.0" targetFramework="net45" />
+  <package id="System.Text.Encoding.Extensions" version="4.0.0" targetFramework="net45" />
+  <package id="System.Threading" version="4.0.0" targetFramework="net45" />
 </packages>
\ No newline at end of file

From d17e076acd9c5115f43fd8e4a0f3fc2368e88384 Mon Sep 17 00:00:00 2001
From: Josh Varty <joshvarty@gmail.com>
Date: Mon, 1 Feb 2016 01:16:34 -0500
Subject: [PATCH 5/6] SolutionAnalyzer can handle ProjectJsonWorkspace

---
 .../SolutionAnalyzer.cs                       | 24 +++++++++++++++----
 src/SourceBrowser.Samples/Program.cs          |  2 +-
 .../Repositories/UploadRepository.cs          | 16 +++++++++----
 3 files changed, 32 insertions(+), 10 deletions(-)

diff --git a/src/SourceBrowser.Generator/SolutionAnalyzer.cs b/src/SourceBrowser.Generator/SolutionAnalyzer.cs
index ee25f0d..8f21de0 100644
--- a/src/SourceBrowser.Generator/SolutionAnalyzer.cs
+++ b/src/SourceBrowser.Generator/SolutionAnalyzer.cs
@@ -16,21 +16,34 @@
 using SourceBrowser.Generator.Extensions;
 using SourceBrowser.Generator.Model;
 using SourceBrowser.Generator.DocumentWalkers;
+using Microsoft.DotNet.ProjectModel.Workspaces;
 
 namespace SourceBrowser.Generator
 {
     public class SolutionAnalayzer
     {
         public bool WorkspaceFailed { get; set; } 
-        MSBuildWorkspace _workspace;
+        Workspace _workspace;
         Solution _solution;
         private ReferencesourceLinkProvider _refsourceLinkProvider = new ReferencesourceLinkProvider();
 
-        public SolutionAnalayzer(string solutionPath)
+        public static SolutionAnalayzer FromSolutionPath(string solutionPath)
         {
-            _workspace = MSBuildWorkspace.Create();
-            _workspace.WorkspaceFailed += _workspace_WorkspaceFailed;
-            _solution = _workspace.OpenSolutionAsync(solutionPath).Result;
+            var workspace = MSBuildWorkspace.Create();
+            var soln = workspace.OpenSolutionAsync(solutionPath).Result;
+            return new SolutionAnalayzer(workspace);
+        }
+
+        public static SolutionAnalayzer FromProjectJsonPaths(string[] projectJsonPaths)
+        {
+            var projectJsonWorkspace = new ProjectJsonWorkspace(projectJsonPaths);
+            return new SolutionAnalayzer(projectJsonWorkspace);
+        }
+
+        private SolutionAnalayzer(Workspace workspace)
+        {
+            _workspace = workspace;
+            _solution = workspace.CurrentSolution;
             _refsourceLinkProvider.Init();
         }
 
@@ -91,6 +104,7 @@ private void buildDocumentModel(WorkspaceModel workspaceModel, Document document
             containingFolder.Children.Add(documentModel);
         }
 
+       
         private IProjectItem findDocumentParent(WorkspaceModel workspaceModel, Document document)
         {
             IProjectItem currentNode = workspaceModel;
diff --git a/src/SourceBrowser.Samples/Program.cs b/src/SourceBrowser.Samples/Program.cs
index 922940d..2520bd2 100644
--- a/src/SourceBrowser.Samples/Program.cs
+++ b/src/SourceBrowser.Samples/Program.cs
@@ -38,7 +38,7 @@ static void Main(string[] args)
                 Console.Write("Opening " + absoluteSolutionPath);
                 Console.WriteLine("...");
 
-                var solutionAnalyzer = new SolutionAnalayzer(absoluteSolutionPath);
+                var solutionAnalyzer = SolutionAnalayzer.FromSolutionPath(absoluteSolutionPath);
 
                 Console.Write("Analyzing and saving into " + absoluteSaveDirectory);
                 Console.WriteLine("...");
diff --git a/src/SourceBrowser.Site/Repositories/UploadRepository.cs b/src/SourceBrowser.Site/Repositories/UploadRepository.cs
index 09eaef2..1d2e779 100644
--- a/src/SourceBrowser.Site/Repositories/UploadRepository.cs
+++ b/src/SourceBrowser.Site/Repositories/UploadRepository.cs
@@ -8,6 +8,7 @@
 using System.IO;
 using System.Configuration;
 using SourceBrowser.Generator.Model;
+using SourceBrowser.Generator;
 
 namespace SourceBrowser.Site.Repositories
 {
@@ -28,7 +29,7 @@ internal static WorkspaceModel ProcessSolution(string solutionPath, string repoR
             // When testing, give full trust to the developer's machine
             if (String.IsNullOrEmpty(safeUserName))
             {
-                var sourceGenerator = new Generator.SolutionAnalayzer(solutionPath);
+                var sourceGenerator = SolutionAnalayzer.FromSolutionPath(solutionPath);
                 if(sourceGenerator.WorkspaceFailed)
                 {
                     return null;
@@ -59,7 +60,7 @@ internal static WorkspaceModel ProcessSolution(string solutionPath, string repoR
                 // Use the token handle returned by LogonUser. 
                 using (WindowsImpersonationContext impersonatedUser = WindowsIdentity.Impersonate(safeTokenHandle.DangerousGetHandle()))
                 {
-                    var sourceGenerator = new Generator.SolutionAnalayzer(solutionPath);
+                    var sourceGenerator = SolutionAnalayzer.FromSolutionPath(solutionPath);
                     if (sourceGenerator.WorkspaceFailed)
                     {
                         return null;
@@ -73,12 +74,19 @@ internal static WorkspaceModel ProcessSolution(string solutionPath, string repoR
 
         internal static WorkspaceModel ProcessOmnisharp(string omnisharpPath, string repoRootPath)
         {
-            throw new NotImplementedException();
+            return null;
         }
 
         internal static WorkspaceModel ProcessProjectJson(string[] projectJsonPaths, string repoRootPath)
         {
-            throw new NotImplementedException();
+            
+            var sourceGenerator = SolutionAnalayzer.FromProjectJsonPaths(projectJsonPaths);
+            if (sourceGenerator.WorkspaceFailed)
+            {
+                return null;
+            }
+            var workspaceModel = sourceGenerator.BuildWorkspaceModel(repoRootPath);
+            return workspaceModel;
         }
 
         internal static void SaveReadme(string repoPath, string readmeInHtml)

From 7810542c1e324f3af275d1313251fa4d1cf3b42b Mon Sep 17 00:00:00 2001
From: Josh Varty <joshvarty@gmail.com>
Date: Mon, 1 Feb 2016 13:44:59 -0500
Subject: [PATCH 6/6] Update .csproj(s) with latest Roslyn bits

---
 .../SourceBrowser.Samples.csproj              | 32 +++++++++++++++++++
 .../SourceBrowser.Site.csproj                 | 32 +++++++++++++++++++
 .../SourceBrowser.Tests.csproj                | 32 +++++++++++++++++++
 3 files changed, 96 insertions(+)

diff --git a/src/SourceBrowser.Samples/SourceBrowser.Samples.csproj b/src/SourceBrowser.Samples/SourceBrowser.Samples.csproj
index 2e886f9..f833608 100644
--- a/src/SourceBrowser.Samples/SourceBrowser.Samples.csproj
+++ b/src/SourceBrowser.Samples/SourceBrowser.Samples.csproj
@@ -32,6 +32,34 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.1.1\lib\net45\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.1.1\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.1.1.1\lib\net45\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.1.1\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.Workspaces.Desktop, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.Workspaces.Desktop.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Collections.Immutable, Version=1.1.37.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
       <HintPath>..\packages\System.Collections.Immutable.1.1.37\lib\dotnet\System.Collections.Immutable.dll</HintPath>
@@ -54,6 +82,10 @@
     </Reference>
     <Reference Include="System.Core" />
     <Reference Include="System.Net.Http" />
+    <Reference Include="System.Reflection.Metadata, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Reflection.Metadata.1.1.0\lib\dotnet5.2\System.Reflection.Metadata.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
     <Reference Include="Microsoft.CSharp" />
diff --git a/src/SourceBrowser.Site/SourceBrowser.Site.csproj b/src/SourceBrowser.Site/SourceBrowser.Site.csproj
index 2ebaca2..eb5454d 100644
--- a/src/SourceBrowser.Site/SourceBrowser.Site.csproj
+++ b/src/SourceBrowser.Site/SourceBrowser.Site.csproj
@@ -57,6 +57,34 @@
     <Reference Include="Microsoft.AspNet.Identity.Owin">
       <HintPath>..\packages\Microsoft.AspNet.Identity.Owin.2.1.0\lib\net45\Microsoft.AspNet.Identity.Owin.dll</HintPath>
     </Reference>
+    <Reference Include="Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.1.1\lib\net45\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.1.1\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.1.1.1\lib\net45\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.1.1\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.Workspaces.Desktop, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.Workspaces.Desktop.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="Microsoft.CSharp" />
     <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
@@ -84,6 +112,10 @@
     </Reference>
     <Reference Include="System.Data" />
     <Reference Include="System.Drawing" />
+    <Reference Include="System.Reflection.Metadata, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Reflection.Metadata.1.1.0\lib\dotnet5.2\System.Reflection.Metadata.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="System.Web.DynamicData" />
     <Reference Include="System.Web.Entity" />
     <Reference Include="System.Web.ApplicationServices" />
diff --git a/src/SourceBrowser.Tests/SourceBrowser.Tests.csproj b/src/SourceBrowser.Tests/SourceBrowser.Tests.csproj
index 380eec0..32b3a6e 100644
--- a/src/SourceBrowser.Tests/SourceBrowser.Tests.csproj
+++ b/src/SourceBrowser.Tests/SourceBrowser.Tests.csproj
@@ -35,6 +35,34 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.1.1\lib\net45\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.1.1\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.1.1.1\lib\net45\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.1.1.1\lib\net45\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CodeAnalysis.Workspaces.Desktop, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.1.1\lib\net45\Microsoft.CodeAnalysis.Workspaces.Desktop.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="Roslyn.Services.UnitTests">
       <HintPath>..\lib\Roslyn.Services.UnitTests.dll</HintPath>
     </Reference>
@@ -61,6 +89,10 @@
     <Reference Include="System.Composition.TypedParts">
       <HintPath>..\packages\Microsoft.Composition.1.0.27\lib\portable-net45+win8+wp8+wpa81\System.Composition.TypedParts.dll</HintPath>
     </Reference>
+    <Reference Include="System.Reflection.Metadata, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Reflection.Metadata.1.1.0\lib\dotnet5.2\System.Reflection.Metadata.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
   </ItemGroup>
   <Choose>
     <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">