diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000000..bea4e492df
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,6 @@
+# top-most EditorConfig file
+root = true
+
+[*.cs]
+indent_style = space
+indent_size = 4
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index c950f83d8e..9f7ec8f882 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,9 +16,11 @@ x86/
bld/
[Bb]in/
[Oo]bj/
+build/
# Roslyn cache directories
*.ide/
+.vs/
# MSTest test Results
[Tt]est[Rr]esult*/
@@ -233,6 +235,5 @@ $RECYCLE.BIN/
AkavacheSqliteLinkerOverride.cs
NuGetBuild
WiX.Toolset.DummyFile.txt
-nunit-UnitTests.xml
-nunit-TrackingCollectionTests.xml
+nunit-*.xml
GitHubVS.sln.DotSettings
diff --git a/.gitmodules b/.gitmodules
index 1e655d0621..f37964cd09 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,21 +1,15 @@
-[submodule "submodules/rothko"]
- path = submodules/rothko
- url = https://github.com/Haacked/Rothko.git
[submodule "submodules/reactiveui"]
path = submodules/reactiveui
- url = https://github.com/shana/ReactiveUI
+ url = https://github.com/editor-tools/ReactiveUI
[submodule "submodules/octokit.net"]
path = submodules/octokit.net
- url = https://github.com/shana/Octokit.Net
+ url = https://github.com/editor-tools/Octokit.Net
[submodule "submodules/splat"]
path = submodules/splat
- url = https://github.com/shana/splat.git
+ url = https://github.com/editor-tools/splat.git
[submodule "submodules/akavache"]
path = submodules/akavache
- url = https://github.com/shana/Akavache
-[submodule "submodules/libgit2sharp"]
- path = submodules/libgit2sharp
- url = https://github.com/shana/libgit2sharp.git
+ url = https://github.com/editor-tools/Akavache
[submodule "script"]
path = script
- url = git@github.com:github/VisualStudioBuildScripts
+ url = git@github.com:github/VisualStudioBuildScripts
\ No newline at end of file
diff --git a/.ncrunch/Akavache.Sqlite3.v3.ncrunchproject b/.ncrunch/Akavache.Sqlite3.v3.ncrunchproject
new file mode 100644
index 0000000000..161aafaa0b
--- /dev/null
+++ b/.ncrunch/Akavache.Sqlite3.v3.ncrunchproject
@@ -0,0 +1,6 @@
+
+
+ False
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/Akavache_Net45.v3.ncrunchproject b/.ncrunch/Akavache_Net45.v3.ncrunchproject
new file mode 100644
index 0000000000..161aafaa0b
--- /dev/null
+++ b/.ncrunch/Akavache_Net45.v3.ncrunchproject
@@ -0,0 +1,6 @@
+
+
+ False
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/Akavache_Portable.v3.ncrunchproject b/.ncrunch/Akavache_Portable.v3.ncrunchproject
new file mode 100644
index 0000000000..161aafaa0b
--- /dev/null
+++ b/.ncrunch/Akavache_Portable.v3.ncrunchproject
@@ -0,0 +1,6 @@
+
+
+ False
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/CredentialManagement.v3.ncrunchproject b/.ncrunch/CredentialManagement.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/CredentialManagement.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/DesignTimeStyleHelper.v3.ncrunchproject b/.ncrunch/DesignTimeStyleHelper.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/DesignTimeStyleHelper.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.Api.v3.ncrunchproject b/.ncrunch/GitHub.Api.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.Api.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.App.v3.ncrunchproject b/.ncrunch/GitHub.App.v3.ncrunchproject
new file mode 100644
index 0000000000..586daf0054
--- /dev/null
+++ b/.ncrunch/GitHub.App.v3.ncrunchproject
@@ -0,0 +1,6 @@
+
+
+ False
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.Exports.Reactive.v3.ncrunchproject b/.ncrunch/GitHub.Exports.Reactive.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.Exports.Reactive.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.Exports.v3.ncrunchproject b/.ncrunch/GitHub.Exports.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.Exports.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.Extensions.Reactive.v3.ncrunchproject b/.ncrunch/GitHub.Extensions.Reactive.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.Extensions.Reactive.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.Extensions.v3.ncrunchproject b/.ncrunch/GitHub.Extensions.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.Extensions.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.InlineReviews.UnitTests.v3.ncrunchproject b/.ncrunch/GitHub.InlineReviews.UnitTests.v3.ncrunchproject
new file mode 100644
index 0000000000..0cef203ae5
--- /dev/null
+++ b/.ncrunch/GitHub.InlineReviews.UnitTests.v3.ncrunchproject
@@ -0,0 +1,9 @@
+
+
+ True
+
+ CopyReferencedAssembliesToWorkspaceIsOn
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.InlineReviews.v3.ncrunchproject b/.ncrunch/GitHub.InlineReviews.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.InlineReviews.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.Logging.v3.ncrunchproject b/.ncrunch/GitHub.Logging.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.Logging.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.StartPage.v3.ncrunchproject b/.ncrunch/GitHub.StartPage.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.StartPage.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.TeamFoundation.14.v3.ncrunchproject b/.ncrunch/GitHub.TeamFoundation.14.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.TeamFoundation.14.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.TeamFoundation.15.v3.ncrunchproject b/.ncrunch/GitHub.TeamFoundation.15.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.TeamFoundation.15.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.UI.Reactive.v3.ncrunchproject b/.ncrunch/GitHub.UI.Reactive.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.UI.Reactive.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.UI.UnitTests.v3.ncrunchproject b/.ncrunch/GitHub.UI.UnitTests.v3.ncrunchproject
new file mode 100644
index 0000000000..0cef203ae5
--- /dev/null
+++ b/.ncrunch/GitHub.UI.UnitTests.v3.ncrunchproject
@@ -0,0 +1,9 @@
+
+
+ True
+
+ CopyReferencedAssembliesToWorkspaceIsOn
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.UI.v3.ncrunchproject b/.ncrunch/GitHub.UI.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.UI.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.VisualStudio.UI.v3.ncrunchproject b/.ncrunch/GitHub.VisualStudio.UI.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.VisualStudio.UI.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GitHub.VisualStudio.v3.ncrunchproject b/.ncrunch/GitHub.VisualStudio.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GitHub.VisualStudio.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/GithubVSTestAutomationIDs.v3.ncrunchproject b/.ncrunch/GithubVSTestAutomationIDs.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/GithubVSTestAutomationIDs.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/Markdig.Wpf.v3.ncrunchproject b/.ncrunch/Markdig.Wpf.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/Markdig.Wpf.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/Octokit.Reactive.v3.ncrunchproject b/.ncrunch/Octokit.Reactive.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/Octokit.Reactive.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/Octokit.v3.ncrunchproject b/.ncrunch/Octokit.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/Octokit.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/ReactiveUI.Events_Net45.v3.ncrunchproject b/.ncrunch/ReactiveUI.Events_Net45.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/ReactiveUI.Events_Net45.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/ReactiveUI.Testing_Net45.v3.ncrunchproject b/.ncrunch/ReactiveUI.Testing_Net45.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/ReactiveUI.Testing_Net45.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/ReactiveUI_Net45.v3.ncrunchproject b/.ncrunch/ReactiveUI_Net45.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/ReactiveUI_Net45.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/Rothko.v3.ncrunchproject b/.ncrunch/Rothko.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/Rothko.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/Splat-Net45.v3.ncrunchproject b/.ncrunch/Splat-Net45.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/Splat-Net45.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/Splat-Portable.v3.ncrunchproject b/.ncrunch/Splat-Portable.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/Splat-Portable.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/TrackingCollectionTests.v3.ncrunchproject b/.ncrunch/TrackingCollectionTests.v3.ncrunchproject
new file mode 100644
index 0000000000..74f25ff082
--- /dev/null
+++ b/.ncrunch/TrackingCollectionTests.v3.ncrunchproject
@@ -0,0 +1,15 @@
+
+
+ 5000
+
+ AbnormalReferenceResolution
+
+
+
+ TrackingTests.OrderByDoesntMatchOriginalOrderTimings
+
+
+ True
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/UnitTests.v3.ncrunchproject b/.ncrunch/UnitTests.v3.ncrunchproject
new file mode 100644
index 0000000000..8400a07ba0
--- /dev/null
+++ b/.ncrunch/UnitTests.v3.ncrunchproject
@@ -0,0 +1,22 @@
+
+
+ True
+ 2000
+
+ AbnormalReferenceResolution
+ CopyReferencedAssembliesToWorkspaceIsOn
+
+
+
+ SimpleRepositoryModelTests
+
+
+ UIControllerTests+PullRequestsFlow
+
+
+ UIProviderTests
+
+
+ True
+
+
\ No newline at end of file
diff --git a/Build-Solution.cmd b/Build-Solution.cmd
deleted file mode 100644
index 822884e5cc..0000000000
--- a/Build-Solution.cmd
+++ /dev/null
@@ -1 +0,0 @@
-Powershell -ExecutionPolicy Unrestricted %~dp0Build-Solution.ps1
\ No newline at end of file
diff --git a/Build-Solution.ps1 b/Build-Solution.ps1
deleted file mode 100644
index 5e78326dce..0000000000
--- a/Build-Solution.ps1
+++ /dev/null
@@ -1,147 +0,0 @@
-param(
- [ValidateSet('Full', 'Tests', 'Build', 'Clean')]
- [string]
- $build = "Build"
- ,
- [ValidateSet('Debug', 'Release')]
- [string]
- $config = "Release"
- ,
- [ValidateSet('Any CPU', 'x86', 'x64')]
- [string]
- $platform = "Any CPU"
- ,
- [string]
- $verbosity = "minimal"
-)
-
-$rootDirectory = Split-Path $MyInvocation.MyCommand.Path
-$projFile = join-path $rootDirectory GitHubVS.msbuild
-$msbuild = "C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe"
-
-function Die([string]$message, [object[]]$output) {
- if ($output) {
- Write-Output $output
- $message += ". See output above."
- }
- Throw (New-Object -TypeName ScriptException -ArgumentList $message)
-}
-
-function Run-Command([scriptblock]$Command, [switch]$Fatal, [switch]$Quiet) {
- $output = ""
- if ($Quiet) {
- $output = & $Command 2>&1
- } else {
- & $Command
- }
-
- if (!$Fatal) {
- return
- }
-
- $exitCode = 0
- if (!$? -and $LastExitCode -ne 0) {
- $exitCode = $LastExitCode
- } elseif (!$?) {
- $exitCode = 1
- } else {
- return
- }
-
- Die "``$Command`` failed" $output
-}
-
-function Run-XUnit([string]$project, [int]$timeoutDuration, [string]$configuration) {
- $dll = "src\$project\bin\$configuration\$project.dll"
-
- $xunitDirectory = Join-Path $rootDirectory packages\xunit.runner.console.2.1.0\tools
- $consoleRunner = Join-Path $xunitDirectory xunit.console.x86.exe
- $xml = Join-Path $rootDirectory "nunit-$project.xml"
- $outputPath = [System.IO.Path]::GetTempFileName()
-
- $args = $dll, "-noshadow", "-xml", $xml, "-parallel", "all"
- [object[]] $output = "$consoleRunner " + ($args -join " ")
-
- $process = Start-Process -PassThru -NoNewWindow -RedirectStandardOutput $outputPath $consoleRunner ($args | %{ "`"$_`"" })
- Wait-Process -InputObject $process -Timeout $timeoutDuration -ErrorAction SilentlyContinue
- if ($process.HasExited) {
- $output += Get-Content $outputPath
- $exitCode = $process.ExitCode
- } else {
- $output += "Tests timed out. Backtrace:"
- $output += Get-DotNetStack $process.Id
- $exitCode = 9999
- }
- Stop-Process -InputObject $process
- Remove-Item $outputPath
-
- $result = New-Object System.Object
- $result | Add-Member -Type NoteProperty -Name Output -Value $output
- $result | Add-Member -Type NoteProperty -Name ExitCode -Value $exitCode
- $result
-}
-
-function Run-NUnit([string]$project, [int]$timeoutDuration, [string]$configuration) {
- $dll = "src\$project\bin\$configuration\$project.dll"
-
- $nunitDirectory = Join-Path $rootDirectory packages\NUnit.Runners.2.6.4\tools
- $consoleRunner = Join-Path $nunitDirectory nunit-console-x86.exe
- $xml = Join-Path $rootDirectory "nunit-$project.xml"
- $outputPath = [System.IO.Path]::GetTempFileName()
-
- $args = "-noshadow", "-xml:$xml", "-framework:net-4.5", "-exclude:Timings", $dll
- [object[]] $output = "$consoleRunner " + ($args -join " ")
-
- $process = Start-Process -PassThru -NoNewWindow -RedirectStandardOutput $outputPath $consoleRunner ($args | %{ "`"$_`"" })
- Wait-Process -InputObject $process -Timeout $timeoutDuration -ErrorAction SilentlyContinue
- if ($process.HasExited) {
- $output += Get-Content $outputPath
- $exitCode = $process.ExitCode
- } else {
- $output += "Tests timed out. Backtrace:"
- $output += Get-DotNetStack $process.Id
- $exitCode = 9999
- }
-
- Stop-Process -InputObject $process
- Remove-Item $outputPath
-
- $result = New-Object System.Object
- $result | Add-Member -Type NoteProperty -Name Output -Value $output
- $result | Add-Member -Type NoteProperty -Name ExitCode -Value $exitCode
- $result
-}
-
-function Build-Solution([string]$solution) {
- Run-Command -Fatal { & $msbuild $solution /t:Build /property:Configuration=$config /verbosity:$verbosity /p:VisualStudioVersion=14.0 /p:DeployExtension=false }
-}
-
-Write-Output "Building GitHub for Visual Studio..."
-Write-Output ""
-
-Build-Solution GitHubVs.sln
-
-$exitCode = 0
-
-Write-Output "Running Unit Tests..."
-$result = Run-XUnit UnitTests 180 $config
-if ($result.ExitCode -eq 0) {
- # Print out the test result summary.
- Write-Output $result.Output[-1]
-} else {
- $exitCode = $result.ExitCode
- Write-Output $result.Output
-}
-
-Write-Output "Running TrackingCollection Tests..."
-$result = Run-NUnit TrackingCollectionTests 180 $config
-if ($result.ExitCode -eq 0) {
- # Print out the test result summary.
- Write-Output $result.Output[-3]
-} else {
- $exitCode = $result.ExitCode
- Write-Output $result.Output
-}
-Write-Output ""
-
-exit $exitCode
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 788b3848ea..15e2f4ad6d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,26 +1,28 @@
-## Contributing
+## Contributing to the _GitHub Extension for Visual Studio_
[fork]: https://github.com/github/VisualStudio/fork
[pr]: https://github.com/github/VisualStudio/compare
[code-of-conduct]: http://todogroup.org/opencodeofconduct/#VisualStudio/opensource@github.com
[readme]: https://github.com/github/VisualStudio#build
-Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great.
+Hi there! We're thrilled that you'd like to contribute to the __GitHub Extension for Visual Studio__. Your help is essential for keeping it great.
+
+Contributions to this project are [released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) to the public under the [project's open source license](LICENSE.md).
This project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are expected to uphold this code.
## Submitting a pull request
-0. [Fork][] and clone the repository (see Build Instructions in the [README][readme])
-0. Create a new branch: `git checkout -b my-branch-name`
-0. Make your change, add tests, and make sure the tests still pass
-0. Push to your fork and [submit a pull request][pr]
-0. Pat your self on the back and wait for your pull request to be reviewed and merged.
+1. [Fork][] and clone the repository (see Build Instructions in the [README][readme])
+2. Create a new branch: `git checkout -b my-branch-name`
+3. Make your change, add tests, and make sure the tests still pass
+4. Push to your fork and [submit a pull request][pr]
+5. Pat your self on the back and wait for your pull request to be reviewed and merged.
Here are a few things you can do that will increase the likelihood of your pull request being accepted:
-- Follow the existing code's style.
-- Write tests.
+- Follow the style/format of the existing code.
+- Write tests for your changes.
- Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests.
- Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
@@ -31,9 +33,33 @@ There are certain areas of the extension that are restricted in what they can do
- Team Explorer content outside the Home page is slightly less restricted, but not by much
- Dialogs and views that don't inherit from TeamExplorer classes are free to use what they need.
+## Submitting an Issue
+
+### Bug Reporting
+
+Here are a few helpful tips when reporting a bug:
+- Verify that the bug resides in the GitHub for Visual Studio extension
+ - A lot of functionality provided by this extension resides in the Team Explorer pane, alongside other non-GitHub tools to manage and collaborate on source code, including Visual Studio's Git support, which is owned by Microsoft.
+ - If this bug not is related to the GitHub extension, visit the [Visual Studio support page](https://www.visualstudio.com/support/support-overview-vs) for help
+- Screenshots are very helpful in diagnosing bugs and understanding the state of the extension when it's experiencing problems. Please include them whenever possible.
+- A log file is helpful in diagnosing bug issues. To include log files in your issue:
+
+ 1. Close Visual Studio if it's open
+ 2. Open a Developer Command Prompt for VS2015
+ 3. Run devenv /log
+ 4. Reproduce your issue
+ 5. Close VS
+ 6. Locate the following files on your system and email them to windows@github.com or create a gist and link it in the issue report:
+ - `%appdata%\Microsoft\VisualStudio\14.0\ActivityLog.xml`
+ - `%localappdata%\temp\extension.log`
+ - `%localappdata%\GitHubVisualStudio\extension.log`
+
+### Feature Requests
+If you have a feature that you think would be a great addition to the extension, we might already have thought about it too, so be sure to check if your suggestion matches our [roadmap](#roadmap-and-future-feature-ideas) before making a request. Also take a peek at our [pull requests](https://github.com/github/VisualStudio/pulls) to see what we're currently working on. Additionally, someone might have already thought of your idea, so check out Issues labeled as [features](https://github.com/github/VisualStudio/issues?q=is%3Aopen+is%3Aissue+label%3Afeature) to see if it already exists.
+
## Things to improve in the current version
-- Localization
+- [Localization](https://github.com/github/VisualStudio/issues/18)
## Roadmap and future feature ideas
diff --git a/GitHubVS.sln b/GitHubVS.sln
index cc8c0cb875..97eeb887a0 100644
--- a/GitHubVS.sln
+++ b/GitHubVS.sln
@@ -1,17 +1,18 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.24720.0
+# Visual Studio 15
+VisualStudioVersion = 15.0.27703.2035
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.VisualStudio", "src\GitHub.VisualStudio\GitHub.VisualStudio.csproj", "{11569514-5AE5-4B5B-92A2-F10B0967DE5F}"
+ ProjectSection(ProjectDependencies) = postProject
+ {7F5ED78B-74A3-4406-A299-70CFB5885B8B} = {7F5ED78B-74A3-4406-A299-70CFB5885B8B}
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Meta", "Meta", "{72036B62-2FA6-4A22-8B33-69F698A18CF1}"
ProjectSection(SolutionItems) = preProject
README.md = README.md
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "src\UnitTests\UnitTests.csproj", "{596595A6-2A3C-469E-9386-9E3767D863A5}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.UI", "src\GitHub.UI\GitHub.UI.csproj", "{346384DD-2445-4A28-AF22-B45F3957BD89}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.UI.Reactive", "src\GitHub.UI.Reactive\GitHub.UI.Reactive.csproj", "{158B05E8-FDBC-4D71-B871-C96E28D5ADF5}"
@@ -23,53 +24,41 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.App", "src\GitHub.App\GitHub.App.csproj", "{1A1DA411-8D1F-4578-80A6-04576BEA2DC5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Submodules", "Submodules", "{1E7F7253-A6AF-43C4-A955-37BEDDA01AB8}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Rothko", "submodules\Rothko\src\Rothko.csproj", "{4A84E568-CA86-4510-8CD0-90D3EF9B65F9}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LibGit2Sharp", "LibGit2Sharp", "{8446C785-A5B4-4676-9B38-560FCA0563E0}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibGit2Sharp", "submodules\libgit2sharp\LibGit2Sharp\LibGit2Sharp.csproj", "{EE6ED99F-CB12-4683-B055-D28FC7357A34}"
+ ProjectSection(SolutionItems) = preProject
+ test\UnitTests\Args.cs = test\UnitTests\Args.cs
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{8E1F1B4E-AEA2-4AB1-8F73-423A903550A1}"
ProjectSection(SolutionItems) = preProject
- script\Modules\BuildUtils.psm1 = script\Modules\BuildUtils.psm1
- script\Modules\Debugging.psm1 = script\Modules\Debugging.psm1
- script\Modules\Vsix.psm1 = script\Modules\Vsix.psm1
- script\Modules\WiX.psm1 = script\Modules\WiX.psm1
+ scripts\Modules\BuildUtils.psm1 = scripts\Modules\BuildUtils.psm1
+ scripts\Modules\Debugging.psm1 = scripts\Modules\Debugging.psm1
+ scripts\Modules\Vsix.psm1 = scripts\Modules\Vsix.psm1
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Script", "Script", "{7B6C5F8D-14B3-443D-B044-0E209AE12BDF}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Scripts", "Scripts", "{7B6C5F8D-14B3-443D-B044-0E209AE12BDF}"
ProjectSection(SolutionItems) = preProject
.gitattributes = .gitattributes
.gitignore = .gitignore
- script\Bootstrap.ps1 = script\Bootstrap.ps1
- build.cmd = build.cmd
- script\Bump-Version.ps1 = script\Bump-Version.ps1
- script\cibuild.ps1 = script\cibuild.ps1
- script\common.ps1 = script\common.ps1
- script\Deploy.ps1 = script\Deploy.ps1
- script\Get-CheckedOutBranch.ps1 = script\Get-CheckedOutBranch.ps1
- script\HubotTell-NativeRoom.ps1 = script\HubotTell-NativeRoom.ps1
+ scripts\build.ps1 = scripts\build.ps1
+ scripts\Bump-Version.ps1 = scripts\Bump-Version.ps1
+ scripts\common.ps1 = scripts\common.ps1
+ scripts\Get-CheckedOutBranch.ps1 = scripts\Get-CheckedOutBranch.ps1
+ scripts\Get-HeadSha1.ps1 = scripts\Get-HeadSha1.ps1
nuget.config = nuget.config
- script\Require-CleanWorkTree.ps1 = script\Require-CleanWorkTree.ps1
- script\SolutionInfo.cs = script\SolutionInfo.cs
- script\Upload-DirectoryToS3.ps1 = script\Upload-DirectoryToS3.ps1
+ scripts\Require-CleanWorkTree.ps1 = scripts\Require-CleanWorkTree.ps1
+ scripts\Run-NUnit.ps1 = scripts\Run-NUnit.ps1
+ scripts\Run-Tests.ps1 = scripts\Run-Tests.ps1
+ scripts\Run-XUnit.ps1 = scripts\Run-XUnit.ps1
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{8A7DA2E7-262B-4581-807A-1C45CE79CDFD}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Support", "Support", "{8A7DA2E7-262B-4581-807A-1C45CE79CDFF}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Exports", "src\GitHub.Exports\GitHub.Exports.csproj", "{9AEA02DB-02B5-409C-B0CA-115D05331A6B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Api", "src\GitHub.Api\GitHub.Api.csproj", "{B389ADAF-62CC-486E-85B4-2D8B078DF763}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Exports.Reactive", "src\GitHub.Exports.Reactive\GitHub.Exports.Reactive.csproj", "{E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesignTimeStyleHelper", "src\DesignTimeStyleHelper\DesignTimeStyleHelper.csproj", "{B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}"
-EndProject
-Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MsiInstaller", "src\MsiInstaller\MsiInstaller.wixproj", "{1ED83084-2A57-4F89-915C-8A2167C0D6BC}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Octokit", "Octokit", "{1E7F7253-A6AF-43C4-A955-37BEDDA01AC0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Octokit", "submodules\octokit.net\Octokit\Octokit.csproj", "{08DD4305-7787-4823-A53F-4D0F725A07F3}"
@@ -82,365 +71,472 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI_Net45", "submodu
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Events_Net45", "submodules\reactiveui\ReactiveUI.Events\ReactiveUI.Events_Net45.csproj", "{600998C4-54DD-4755-BFA8-6F44544D8E2E}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EventBuilder", "submodules\reactiveui\ReactiveUI.Events\EventBuilder.csproj", "{3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Akavache", "Akavache", "{1E7F7253-A6AF-43C4-A955-37BEDDA01AC9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Akavache_Net45", "submodules\akavache\Akavache\Akavache_Net45.csproj", "{B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Akavache.Sqlite3", "submodules\akavache\Akavache.Sqlite3\Akavache.Sqlite3.csproj", "{241C47DF-CA8E-4296-AA03-2C48BB646ABD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Akavache_Portable", "submodules\akavache\Akavache\Akavache_Portable.csproj", "{EB73ADDD-2FE9-44C0-A1AB-20709B979B64}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Splat", "Splat", "{1E7F7253-A6AF-43C4-A955-37BEDDA01AF9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Splat-Net45", "submodules\splat\Splat\Splat-Net45.csproj", "{252CE1C2-027A-4445-A3C2-E4D6C80A935A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Splat-Portable", "submodules\splat\Splat\Splat-Portable.csproj", "{0EC8DBA1-D745-4EE5-993A-6026440EC3BF}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CredentialManagement", "src\CredentialManagement\CredentialManagement.csproj", "{41A47C5B-C606-45B4-B83C-22B9239E4DA0}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Testing_Net45", "submodules\reactiveui\ReactiveUI.Testing\ReactiveUI.Testing_Net45.csproj", "{DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TrackingCollectionTests", "test\TrackingCollectionTests\TrackingCollectionTests.csproj", "{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.TeamFoundation.14", "src\GitHub.TeamFoundation.14\GitHub.TeamFoundation.14.csproj", "{161DBF01-1DBF-4B00-8551-C5C00F26720D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.TeamFoundation.15", "src\GitHub.TeamFoundation.15\GitHub.TeamFoundation.15.csproj", "{161DBF01-1DBF-4B00-8551-C5C00F26720E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.VisualStudio.UI", "src\GitHub.VisualStudio.UI\GitHub.VisualStudio.UI.csproj", "{D1DFBB0C-B570-4302-8F1E-2E3A19C41961}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.StartPage", "src\GitHub.StartPage\GitHub.StartPage.csproj", "{50E277B8-8580-487A-8F8E-5C3B9FBF0F77}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TrackingCollectionTests", "src\TrackingCollectionTests\TrackingCollectionTests.csproj", "{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.UI.UnitTests", "test\GitHub.UI.UnitTests\GitHub.UI.UnitTests.csproj", "{110B206F-8554-4B51-BF86-94DAA32F5E26}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.InlineReviews", "src\GitHub.InlineReviews\GitHub.InlineReviews.csproj", "{7F5ED78B-74A3-4406-A299-70CFB5885B8B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.InlineReviews.UnitTests", "test\GitHub.InlineReviews.UnitTests\GitHub.InlineReviews.UnitTests.csproj", "{17EB676B-BB91-48B5-AA59-C67695C647C2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Logging", "src\GitHub.Logging\GitHub.Logging.csproj", "{8D73575A-A89F-47CC-B153-B47DD06837F0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Services.Vssdk", "src\GitHub.Services.Vssdk\GitHub.Services.Vssdk.csproj", "{2D3D2834-33BE-45CA-B3CC-12F853557D7B}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Metrics", "Metrics", "{C2D88962-BD6B-4F11-B914-535B38377962}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MetricsServer", "test\MetricsTests\MetricsServer\MetricsServer.csproj", "{14FDEE91-7301-4247-846C-049647BF8E99}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MetricsTests", "test\MetricsTests\MetricsTests\MetricsTests.csproj", "{09313E65-7ADB-48C1-AD3A-572020C5BDCB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Api.UnitTests", "test\GitHub.Api.UnitTests\GitHub.Api.UnitTests.csproj", "{EFDE0798-ACDB-431D-B7F1-548A7231C853}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.App.UnitTests", "test\GitHub.App.UnitTests\GitHub.App.UnitTests.csproj", "{3525D819-6AEC-4879-89FB-56B41F026571}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Exports.UnitTests", "test\GitHub.Exports.UnitTests\GitHub.Exports.UnitTests.csproj", "{94509FCB-6C97-4ED6-AED6-6E74AB3CA336}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Exports.Reactive.UnitTests", "test\GitHub.Exports.Reactive.UnitTests\GitHub.Exports.Reactive.UnitTests.csproj", "{C59868FC-D8BC-4D47-B4F3-16908D2641C6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Extensions.UnitTests", "test\GitHub.Extensions.UnitTests\GitHub.Extensions.UnitTests.csproj", "{DE704BBB-6EC6-4173-B695-D9EBF5AEB092}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Primitives.UnitTests", "test\GitHub.Primitives.UnitTests\GitHub.Primitives.UnitTests.csproj", "{E687457A-BEDC-422D-8D9D-2DA58099EBBA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.TeamFoundation.UnitTests", "test\GitHub.TeamFoundation.UnitTests\GitHub.TeamFoundation.UnitTests.csproj", "{93778A89-3E58-4853-B772-948EBB3F17BE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.VisualStudio.UnitTests", "test\GitHub.VisualStudio.UnitTests\GitHub.VisualStudio.UnitTests.csproj", "{8B14F90B-0781-465D-AB94-19C8C56E3A94}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
- Debug|x86 = Debug|x86
- Publish|Any CPU = Publish|Any CPU
- Publish|x86 = Publish|x86
+ DebugCodeAnalysis|Any CPU = DebugCodeAnalysis|Any CPU
+ DebugWithoutVsix|Any CPU = DebugWithoutVsix|Any CPU
Release|Any CPU = Release|Any CPU
- Release|x86 = Release|x86
+ ReleaseWithoutVsix|Any CPU = ReleaseWithoutVsix|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{11569514-5AE5-4B5B-92A2-F10B0967DE5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{11569514-5AE5-4B5B-92A2-F10B0967DE5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.Debug|x86.Build.0 = Debug|Any CPU
- {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.Publish|x86.ActiveCfg = Release|Any CPU
- {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.Publish|x86.Build.0 = Release|Any CPU
+ {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.DebugWithoutVsix|Any CPU.ActiveCfg = DebugWithoutVsix|Any CPU
+ {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.DebugWithoutVsix|Any CPU.Build.0 = DebugWithoutVsix|Any CPU
{11569514-5AE5-4B5B-92A2-F10B0967DE5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{11569514-5AE5-4B5B-92A2-F10B0967DE5F}.Release|Any CPU.Build.0 = Release|Any CPU
- {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.Release|x86.ActiveCfg = Release|Any CPU
- {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.Release|x86.Build.0 = Release|Any CPU
- {596595A6-2A3C-469E-9386-9E3767D863A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {596595A6-2A3C-469E-9386-9E3767D863A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {596595A6-2A3C-469E-9386-9E3767D863A5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {596595A6-2A3C-469E-9386-9E3767D863A5}.Debug|x86.Build.0 = Debug|Any CPU
- {596595A6-2A3C-469E-9386-9E3767D863A5}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {596595A6-2A3C-469E-9386-9E3767D863A5}.Publish|x86.ActiveCfg = Release|Any CPU
- {596595A6-2A3C-469E-9386-9E3767D863A5}.Publish|x86.Build.0 = Release|Any CPU
- {596595A6-2A3C-469E-9386-9E3767D863A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {596595A6-2A3C-469E-9386-9E3767D863A5}.Release|Any CPU.Build.0 = Release|Any CPU
- {596595A6-2A3C-469E-9386-9E3767D863A5}.Release|x86.ActiveCfg = Release|Any CPU
- {596595A6-2A3C-469E-9386-9E3767D863A5}.Release|x86.Build.0 = Release|Any CPU
+ {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.ReleaseWithoutVsix|Any CPU.ActiveCfg = ReleaseWithoutVsix|Any CPU
+ {11569514-5AE5-4B5B-92A2-F10B0967DE5F}.ReleaseWithoutVsix|Any CPU.Build.0 = ReleaseWithoutVsix|Any CPU
{346384DD-2445-4A28-AF22-B45F3957BD89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{346384DD-2445-4A28-AF22-B45F3957BD89}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {346384DD-2445-4A28-AF22-B45F3957BD89}.Debug|x86.ActiveCfg = Debug|Any CPU
- {346384DD-2445-4A28-AF22-B45F3957BD89}.Debug|x86.Build.0 = Debug|Any CPU
- {346384DD-2445-4A28-AF22-B45F3957BD89}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {346384DD-2445-4A28-AF22-B45F3957BD89}.Publish|x86.ActiveCfg = Release|Any CPU
- {346384DD-2445-4A28-AF22-B45F3957BD89}.Publish|x86.Build.0 = Release|Any CPU
+ {346384DD-2445-4A28-AF22-B45F3957BD89}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {346384DD-2445-4A28-AF22-B45F3957BD89}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {346384DD-2445-4A28-AF22-B45F3957BD89}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {346384DD-2445-4A28-AF22-B45F3957BD89}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{346384DD-2445-4A28-AF22-B45F3957BD89}.Release|Any CPU.ActiveCfg = Release|Any CPU
{346384DD-2445-4A28-AF22-B45F3957BD89}.Release|Any CPU.Build.0 = Release|Any CPU
- {346384DD-2445-4A28-AF22-B45F3957BD89}.Release|x86.ActiveCfg = Release|Any CPU
- {346384DD-2445-4A28-AF22-B45F3957BD89}.Release|x86.Build.0 = Release|Any CPU
+ {346384DD-2445-4A28-AF22-B45F3957BD89}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {346384DD-2445-4A28-AF22-B45F3957BD89}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.Debug|x86.Build.0 = Debug|Any CPU
- {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.Publish|x86.ActiveCfg = Release|Any CPU
- {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.Publish|x86.Build.0 = Release|Any CPU
+ {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.Release|Any CPU.Build.0 = Release|Any CPU
- {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.Release|x86.ActiveCfg = Release|Any CPU
- {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.Release|x86.Build.0 = Release|Any CPU
+ {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {158B05E8-FDBC-4D71-B871-C96E28D5ADF5}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.Debug|x86.ActiveCfg = Debug|Any CPU
- {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.Debug|x86.Build.0 = Debug|Any CPU
- {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.Publish|x86.ActiveCfg = Release|Any CPU
- {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.Publish|x86.Build.0 = Release|Any CPU
+ {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.Release|Any CPU.Build.0 = Release|Any CPU
- {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.Release|x86.ActiveCfg = Release|Any CPU
- {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.Release|x86.Build.0 = Release|Any CPU
+ {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {6AFE2E2D-6DB0-4430-A2EA-F5F5388D2F78}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{6559E128-8B40-49A5-85A8-05565ED0C7E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6559E128-8B40-49A5-85A8-05565ED0C7E3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6559E128-8B40-49A5-85A8-05565ED0C7E3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {6559E128-8B40-49A5-85A8-05565ED0C7E3}.Debug|x86.Build.0 = Debug|Any CPU
- {6559E128-8B40-49A5-85A8-05565ED0C7E3}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {6559E128-8B40-49A5-85A8-05565ED0C7E3}.Publish|x86.ActiveCfg = Release|Any CPU
- {6559E128-8B40-49A5-85A8-05565ED0C7E3}.Publish|x86.Build.0 = Release|Any CPU
+ {6559E128-8B40-49A5-85A8-05565ED0C7E3}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {6559E128-8B40-49A5-85A8-05565ED0C7E3}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {6559E128-8B40-49A5-85A8-05565ED0C7E3}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {6559E128-8B40-49A5-85A8-05565ED0C7E3}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{6559E128-8B40-49A5-85A8-05565ED0C7E3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6559E128-8B40-49A5-85A8-05565ED0C7E3}.Release|Any CPU.Build.0 = Release|Any CPU
- {6559E128-8B40-49A5-85A8-05565ED0C7E3}.Release|x86.ActiveCfg = Release|Any CPU
- {6559E128-8B40-49A5-85A8-05565ED0C7E3}.Release|x86.Build.0 = Release|Any CPU
+ {6559E128-8B40-49A5-85A8-05565ED0C7E3}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {6559E128-8B40-49A5-85A8-05565ED0C7E3}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.Debug|x86.Build.0 = Debug|Any CPU
- {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.Publish|x86.ActiveCfg = Release|Any CPU
- {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.Publish|x86.Build.0 = Release|Any CPU
+ {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.Release|Any CPU.Build.0 = Release|Any CPU
- {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.Release|x86.ActiveCfg = Release|Any CPU
- {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.Release|x86.Build.0 = Release|Any CPU
- {4A84E568-CA86-4510-8CD0-90D3EF9B65F9}.Debug|Any CPU.ActiveCfg = Release|Any CPU
- {4A84E568-CA86-4510-8CD0-90D3EF9B65F9}.Debug|Any CPU.Build.0 = Release|Any CPU
- {4A84E568-CA86-4510-8CD0-90D3EF9B65F9}.Debug|x86.ActiveCfg = Debug|Any CPU
- {4A84E568-CA86-4510-8CD0-90D3EF9B65F9}.Debug|x86.Build.0 = Debug|Any CPU
- {4A84E568-CA86-4510-8CD0-90D3EF9B65F9}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {4A84E568-CA86-4510-8CD0-90D3EF9B65F9}.Publish|x86.ActiveCfg = Release|Any CPU
- {4A84E568-CA86-4510-8CD0-90D3EF9B65F9}.Publish|x86.Build.0 = Release|Any CPU
- {4A84E568-CA86-4510-8CD0-90D3EF9B65F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4A84E568-CA86-4510-8CD0-90D3EF9B65F9}.Release|Any CPU.Build.0 = Release|Any CPU
- {4A84E568-CA86-4510-8CD0-90D3EF9B65F9}.Release|x86.ActiveCfg = Release|Any CPU
- {4A84E568-CA86-4510-8CD0-90D3EF9B65F9}.Release|x86.Build.0 = Release|Any CPU
- {EE6ED99F-CB12-4683-B055-D28FC7357A34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EE6ED99F-CB12-4683-B055-D28FC7357A34}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EE6ED99F-CB12-4683-B055-D28FC7357A34}.Debug|x86.ActiveCfg = Debug|Any CPU
- {EE6ED99F-CB12-4683-B055-D28FC7357A34}.Debug|x86.Build.0 = Debug|Any CPU
- {EE6ED99F-CB12-4683-B055-D28FC7357A34}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {EE6ED99F-CB12-4683-B055-D28FC7357A34}.Publish|Any CPU.Build.0 = Release|Any CPU
- {EE6ED99F-CB12-4683-B055-D28FC7357A34}.Publish|x86.ActiveCfg = Release|Any CPU
- {EE6ED99F-CB12-4683-B055-D28FC7357A34}.Publish|x86.Build.0 = Release|Any CPU
- {EE6ED99F-CB12-4683-B055-D28FC7357A34}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EE6ED99F-CB12-4683-B055-D28FC7357A34}.Release|Any CPU.Build.0 = Release|Any CPU
- {EE6ED99F-CB12-4683-B055-D28FC7357A34}.Release|x86.ActiveCfg = Release|Any CPU
- {EE6ED99F-CB12-4683-B055-D28FC7357A34}.Release|x86.Build.0 = Release|Any CPU
+ {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {1A1DA411-8D1F-4578-80A6-04576BEA2DC5}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{9AEA02DB-02B5-409C-B0CA-115D05331A6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9AEA02DB-02B5-409C-B0CA-115D05331A6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.Debug|x86.Build.0 = Debug|Any CPU
- {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.Publish|x86.ActiveCfg = Release|Any CPU
- {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.Publish|x86.Build.0 = Release|Any CPU
+ {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{9AEA02DB-02B5-409C-B0CA-115D05331A6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9AEA02DB-02B5-409C-B0CA-115D05331A6B}.Release|Any CPU.Build.0 = Release|Any CPU
- {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.Release|x86.ActiveCfg = Release|Any CPU
- {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.Release|x86.Build.0 = Release|Any CPU
+ {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {9AEA02DB-02B5-409C-B0CA-115D05331A6B}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{B389ADAF-62CC-486E-85B4-2D8B078DF763}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B389ADAF-62CC-486E-85B4-2D8B078DF763}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B389ADAF-62CC-486E-85B4-2D8B078DF763}.Debug|x86.ActiveCfg = Debug|Any CPU
- {B389ADAF-62CC-486E-85B4-2D8B078DF763}.Debug|x86.Build.0 = Debug|Any CPU
- {B389ADAF-62CC-486E-85B4-2D8B078DF763}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {B389ADAF-62CC-486E-85B4-2D8B078DF763}.Publish|x86.ActiveCfg = Release|Any CPU
- {B389ADAF-62CC-486E-85B4-2D8B078DF763}.Publish|x86.Build.0 = Release|Any CPU
+ {B389ADAF-62CC-486E-85B4-2D8B078DF763}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {B389ADAF-62CC-486E-85B4-2D8B078DF763}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {B389ADAF-62CC-486E-85B4-2D8B078DF763}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {B389ADAF-62CC-486E-85B4-2D8B078DF763}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{B389ADAF-62CC-486E-85B4-2D8B078DF763}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B389ADAF-62CC-486E-85B4-2D8B078DF763}.Release|Any CPU.Build.0 = Release|Any CPU
- {B389ADAF-62CC-486E-85B4-2D8B078DF763}.Release|x86.ActiveCfg = Release|Any CPU
- {B389ADAF-62CC-486E-85B4-2D8B078DF763}.Release|x86.Build.0 = Release|Any CPU
+ {B389ADAF-62CC-486E-85B4-2D8B078DF763}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {B389ADAF-62CC-486E-85B4-2D8B078DF763}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.Debug|x86.Build.0 = Debug|Any CPU
- {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.Publish|x86.ActiveCfg = Release|Any CPU
- {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.Publish|x86.Build.0 = Release|Any CPU
+ {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.Release|Any CPU.Build.0 = Release|Any CPU
- {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.Release|x86.ActiveCfg = Release|Any CPU
- {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.Release|x86.Build.0 = Release|Any CPU
- {B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.Debug|x86.Build.0 = Debug|Any CPU
- {B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.Publish|x86.ActiveCfg = Release|Any CPU
- {B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.Publish|x86.Build.0 = Release|Any CPU
- {B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.Release|Any CPU.Build.0 = Release|Any CPU
- {B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.Release|x86.ActiveCfg = Release|Any CPU
- {B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.Release|x86.Build.0 = Release|Any CPU
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Debug|Any CPU.ActiveCfg = Debug|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Debug|x86.ActiveCfg = Debug|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Debug|x86.Build.0 = Debug|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Publish|Any CPU.ActiveCfg = Publish|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Publish|Any CPU.Build.0 = Publish|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Publish|x86.ActiveCfg = Publish|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Publish|x86.Build.0 = Publish|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Release|Any CPU.ActiveCfg = Release|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Release|x86.ActiveCfg = Release|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Release|x86.Build.0 = Release|x86
- {08DD4305-7787-4823-A53F-4D0F725A07F3}.Debug|Any CPU.ActiveCfg = Release|Any CPU
- {08DD4305-7787-4823-A53F-4D0F725A07F3}.Debug|Any CPU.Build.0 = Release|Any CPU
- {08DD4305-7787-4823-A53F-4D0F725A07F3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {08DD4305-7787-4823-A53F-4D0F725A07F3}.Debug|x86.Build.0 = Debug|Any CPU
- {08DD4305-7787-4823-A53F-4D0F725A07F3}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {08DD4305-7787-4823-A53F-4D0F725A07F3}.Publish|x86.ActiveCfg = Release|Any CPU
- {08DD4305-7787-4823-A53F-4D0F725A07F3}.Publish|x86.Build.0 = Release|Any CPU
+ {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {E4ED0537-D1D9-44B6-9212-3096D7C3F7A1}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {08DD4305-7787-4823-A53F-4D0F725A07F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {08DD4305-7787-4823-A53F-4D0F725A07F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {08DD4305-7787-4823-A53F-4D0F725A07F3}.DebugCodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU
+ {08DD4305-7787-4823-A53F-4D0F725A07F3}.DebugCodeAnalysis|Any CPU.Build.0 = Release|Any CPU
+ {08DD4305-7787-4823-A53F-4D0F725A07F3}.DebugWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {08DD4305-7787-4823-A53F-4D0F725A07F3}.DebugWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{08DD4305-7787-4823-A53F-4D0F725A07F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{08DD4305-7787-4823-A53F-4D0F725A07F3}.Release|Any CPU.Build.0 = Release|Any CPU
- {08DD4305-7787-4823-A53F-4D0F725A07F3}.Release|x86.ActiveCfg = Release|Any CPU
- {08DD4305-7787-4823-A53F-4D0F725A07F3}.Release|x86.Build.0 = Release|Any CPU
+ {08DD4305-7787-4823-A53F-4D0F725A07F3}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {08DD4305-7787-4823-A53F-4D0F725A07F3}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{674B69B8-0780-4D54-AE2B-C15821FA51CB}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{674B69B8-0780-4D54-AE2B-C15821FA51CB}.Debug|Any CPU.Build.0 = Release|Any CPU
- {674B69B8-0780-4D54-AE2B-C15821FA51CB}.Debug|x86.ActiveCfg = Debug|Any CPU
- {674B69B8-0780-4D54-AE2B-C15821FA51CB}.Debug|x86.Build.0 = Debug|Any CPU
- {674B69B8-0780-4D54-AE2B-C15821FA51CB}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {674B69B8-0780-4D54-AE2B-C15821FA51CB}.Publish|x86.ActiveCfg = Release|Any CPU
- {674B69B8-0780-4D54-AE2B-C15821FA51CB}.Publish|x86.Build.0 = Release|Any CPU
+ {674B69B8-0780-4D54-AE2B-C15821FA51CB}.DebugCodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU
+ {674B69B8-0780-4D54-AE2B-C15821FA51CB}.DebugCodeAnalysis|Any CPU.Build.0 = Release|Any CPU
+ {674B69B8-0780-4D54-AE2B-C15821FA51CB}.DebugWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {674B69B8-0780-4D54-AE2B-C15821FA51CB}.DebugWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{674B69B8-0780-4D54-AE2B-C15821FA51CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{674B69B8-0780-4D54-AE2B-C15821FA51CB}.Release|Any CPU.Build.0 = Release|Any CPU
- {674B69B8-0780-4D54-AE2B-C15821FA51CB}.Release|x86.ActiveCfg = Release|Any CPU
- {674B69B8-0780-4D54-AE2B-C15821FA51CB}.Release|x86.Build.0 = Release|Any CPU
+ {674B69B8-0780-4D54-AE2B-C15821FA51CB}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {674B69B8-0780-4D54-AE2B-C15821FA51CB}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.Debug|Any CPU.Build.0 = Release|Any CPU
- {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.Debug|x86.Build.0 = Debug|Any CPU
- {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.Publish|x86.ActiveCfg = Release|Any CPU
- {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.Publish|x86.Build.0 = Release|Any CPU
+ {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.DebugCodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU
+ {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.DebugCodeAnalysis|Any CPU.Build.0 = Release|Any CPU
+ {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.DebugWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.DebugWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.Release|Any CPU.Build.0 = Release|Any CPU
- {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.Release|x86.ActiveCfg = Release|Any CPU
- {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.Release|x86.Build.0 = Release|Any CPU
+ {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {1CE2D235-8072-4649-BA5A-CFB1AF8776E0}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{600998C4-54DD-4755-BFA8-6F44544D8E2E}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{600998C4-54DD-4755-BFA8-6F44544D8E2E}.Debug|Any CPU.Build.0 = Release|Any CPU
- {600998C4-54DD-4755-BFA8-6F44544D8E2E}.Debug|x86.ActiveCfg = Debug|Any CPU
- {600998C4-54DD-4755-BFA8-6F44544D8E2E}.Debug|x86.Build.0 = Debug|Any CPU
- {600998C4-54DD-4755-BFA8-6F44544D8E2E}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {600998C4-54DD-4755-BFA8-6F44544D8E2E}.Publish|x86.ActiveCfg = Release|Any CPU
- {600998C4-54DD-4755-BFA8-6F44544D8E2E}.Publish|x86.Build.0 = Release|Any CPU
+ {600998C4-54DD-4755-BFA8-6F44544D8E2E}.DebugCodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU
+ {600998C4-54DD-4755-BFA8-6F44544D8E2E}.DebugCodeAnalysis|Any CPU.Build.0 = Release|Any CPU
+ {600998C4-54DD-4755-BFA8-6F44544D8E2E}.DebugWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {600998C4-54DD-4755-BFA8-6F44544D8E2E}.DebugWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{600998C4-54DD-4755-BFA8-6F44544D8E2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{600998C4-54DD-4755-BFA8-6F44544D8E2E}.Release|Any CPU.Build.0 = Release|Any CPU
- {600998C4-54DD-4755-BFA8-6F44544D8E2E}.Release|x86.ActiveCfg = Release|Any CPU
- {600998C4-54DD-4755-BFA8-6F44544D8E2E}.Release|x86.Build.0 = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Debug|Any CPU.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Debug|Any CPU.Build.0 = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Debug|x86.Build.0 = Debug|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Publish|x86.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Publish|x86.Build.0 = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Release|Any CPU.Build.0 = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Release|x86.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Release|x86.Build.0 = Release|Any CPU
+ {600998C4-54DD-4755-BFA8-6F44544D8E2E}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {600998C4-54DD-4755-BFA8-6F44544D8E2E}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Debug|Any CPU.Build.0 = Release|Any CPU
- {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Debug|x86.ActiveCfg = Debug|Any CPU
- {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Debug|x86.Build.0 = Debug|Any CPU
- {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Publish|x86.ActiveCfg = Release|Any CPU
- {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Publish|x86.Build.0 = Release|Any CPU
+ {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.DebugCodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU
+ {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.DebugCodeAnalysis|Any CPU.Build.0 = Release|Any CPU
+ {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.DebugWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.DebugWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Release|Any CPU.Build.0 = Release|Any CPU
- {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Release|x86.ActiveCfg = Release|Any CPU
- {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Release|x86.Build.0 = Release|Any CPU
+ {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{241C47DF-CA8E-4296-AA03-2C48BB646ABD}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{241C47DF-CA8E-4296-AA03-2C48BB646ABD}.Debug|Any CPU.Build.0 = Release|Any CPU
- {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.Debug|x86.ActiveCfg = Debug|Any CPU
- {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.Debug|x86.Build.0 = Debug|Any CPU
- {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.Publish|x86.ActiveCfg = Release|Any CPU
- {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.Publish|x86.Build.0 = Release|Any CPU
+ {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.DebugCodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU
+ {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.DebugCodeAnalysis|Any CPU.Build.0 = Release|Any CPU
+ {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.DebugWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.DebugWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{241C47DF-CA8E-4296-AA03-2C48BB646ABD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{241C47DF-CA8E-4296-AA03-2C48BB646ABD}.Release|Any CPU.Build.0 = Release|Any CPU
- {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.Release|x86.ActiveCfg = Release|Any CPU
- {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.Release|x86.Build.0 = Release|Any CPU
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64}.Debug|Any CPU.ActiveCfg = Release|Any CPU
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64}.Debug|Any CPU.Build.0 = Release|Any CPU
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64}.Debug|x86.ActiveCfg = Debug|Any CPU
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64}.Debug|x86.Build.0 = Debug|Any CPU
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64}.Publish|Any CPU.Build.0 = Release|Any CPU
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64}.Publish|x86.ActiveCfg = Release|Any CPU
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64}.Publish|x86.Build.0 = Release|Any CPU
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64}.Release|Any CPU.Build.0 = Release|Any CPU
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64}.Release|x86.ActiveCfg = Release|Any CPU
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64}.Release|x86.Build.0 = Release|Any CPU
+ {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {241C47DF-CA8E-4296-AA03-2C48BB646ABD}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{252CE1C2-027A-4445-A3C2-E4D6C80A935A}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{252CE1C2-027A-4445-A3C2-E4D6C80A935A}.Debug|Any CPU.Build.0 = Release|Any CPU
- {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.Debug|x86.ActiveCfg = Debug|Any CPU
- {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.Debug|x86.Build.0 = Debug|Any CPU
- {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.Publish|x86.ActiveCfg = Release|Any CPU
- {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.Publish|x86.Build.0 = Release|Any CPU
+ {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.DebugCodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU
+ {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.DebugCodeAnalysis|Any CPU.Build.0 = Release|Any CPU
+ {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.DebugWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.DebugWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{252CE1C2-027A-4445-A3C2-E4D6C80A935A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{252CE1C2-027A-4445-A3C2-E4D6C80A935A}.Release|Any CPU.Build.0 = Release|Any CPU
- {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.Release|x86.ActiveCfg = Release|Any CPU
- {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.Release|x86.Build.0 = Release|Any CPU
- {0EC8DBA1-D745-4EE5-993A-6026440EC3BF}.Debug|Any CPU.ActiveCfg = Release|Any CPU
- {0EC8DBA1-D745-4EE5-993A-6026440EC3BF}.Debug|Any CPU.Build.0 = Release|Any CPU
- {0EC8DBA1-D745-4EE5-993A-6026440EC3BF}.Debug|x86.ActiveCfg = Debug|Any CPU
- {0EC8DBA1-D745-4EE5-993A-6026440EC3BF}.Debug|x86.Build.0 = Debug|Any CPU
- {0EC8DBA1-D745-4EE5-993A-6026440EC3BF}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {0EC8DBA1-D745-4EE5-993A-6026440EC3BF}.Publish|x86.ActiveCfg = Release|Any CPU
- {0EC8DBA1-D745-4EE5-993A-6026440EC3BF}.Publish|x86.Build.0 = Release|Any CPU
- {0EC8DBA1-D745-4EE5-993A-6026440EC3BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0EC8DBA1-D745-4EE5-993A-6026440EC3BF}.Release|Any CPU.Build.0 = Release|Any CPU
- {0EC8DBA1-D745-4EE5-993A-6026440EC3BF}.Release|x86.ActiveCfg = Release|Any CPU
- {0EC8DBA1-D745-4EE5-993A-6026440EC3BF}.Release|x86.Build.0 = Release|Any CPU
+ {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {252CE1C2-027A-4445-A3C2-E4D6C80A935A}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Debug|x86.Build.0 = Debug|Any CPU
- {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Publish|Any CPU.Build.0 = Release|Any CPU
- {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Publish|x86.ActiveCfg = Release|Any CPU
- {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Publish|x86.Build.0 = Release|Any CPU
+ {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Release|Any CPU.Build.0 = Release|Any CPU
- {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Release|x86.ActiveCfg = Release|Any CPU
- {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Release|x86.Build.0 = Release|Any CPU
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Debug|x86.ActiveCfg = Debug|Any CPU
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Debug|x86.Build.0 = Debug|Any CPU
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Publish|Any CPU.Build.0 = Release|Any CPU
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Publish|x86.ActiveCfg = Release|Any CPU
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Publish|x86.Build.0 = Release|Any CPU
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Release|Any CPU.Build.0 = Release|Any CPU
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Release|x86.ActiveCfg = Release|Any CPU
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Release|x86.Build.0 = Release|Any CPU
+ {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {41A47C5B-C606-45B4-B83C-22B9239E4DA0}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Debug|x86.ActiveCfg = Debug|Any CPU
- {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Debug|x86.Build.0 = Debug|Any CPU
- {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Publish|Any CPU.Build.0 = Release|Any CPU
- {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Publish|x86.ActiveCfg = Release|Any CPU
- {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Publish|x86.Build.0 = Release|Any CPU
+ {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Release|Any CPU.Build.0 = Release|Any CPU
- {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Release|x86.ActiveCfg = Release|Any CPU
- {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Release|x86.Build.0 = Release|Any CPU
+ {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720D}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720D}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720D}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720D}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720D}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720D}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720E}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720E}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720E}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720E}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720E}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {161DBF01-1DBF-4B00-8551-C5C00F26720E}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {50E277B8-8580-487A-8F8E-5C3B9FBF0F77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {50E277B8-8580-487A-8F8E-5C3B9FBF0F77}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {50E277B8-8580-487A-8F8E-5C3B9FBF0F77}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {50E277B8-8580-487A-8F8E-5C3B9FBF0F77}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {50E277B8-8580-487A-8F8E-5C3B9FBF0F77}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {50E277B8-8580-487A-8F8E-5C3B9FBF0F77}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {50E277B8-8580-487A-8F8E-5C3B9FBF0F77}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {50E277B8-8580-487A-8F8E-5C3B9FBF0F77}.Release|Any CPU.Build.0 = Release|Any CPU
+ {50E277B8-8580-487A-8F8E-5C3B9FBF0F77}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {50E277B8-8580-487A-8F8E-5C3B9FBF0F77}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {110B206F-8554-4B51-BF86-94DAA32F5E26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {110B206F-8554-4B51-BF86-94DAA32F5E26}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {110B206F-8554-4B51-BF86-94DAA32F5E26}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {110B206F-8554-4B51-BF86-94DAA32F5E26}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {110B206F-8554-4B51-BF86-94DAA32F5E26}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {110B206F-8554-4B51-BF86-94DAA32F5E26}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {110B206F-8554-4B51-BF86-94DAA32F5E26}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {110B206F-8554-4B51-BF86-94DAA32F5E26}.Release|Any CPU.Build.0 = Release|Any CPU
+ {110B206F-8554-4B51-BF86-94DAA32F5E26}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {110B206F-8554-4B51-BF86-94DAA32F5E26}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {7F5ED78B-74A3-4406-A299-70CFB5885B8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7F5ED78B-74A3-4406-A299-70CFB5885B8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7F5ED78B-74A3-4406-A299-70CFB5885B8B}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {7F5ED78B-74A3-4406-A299-70CFB5885B8B}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {7F5ED78B-74A3-4406-A299-70CFB5885B8B}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {7F5ED78B-74A3-4406-A299-70CFB5885B8B}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {7F5ED78B-74A3-4406-A299-70CFB5885B8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7F5ED78B-74A3-4406-A299-70CFB5885B8B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7F5ED78B-74A3-4406-A299-70CFB5885B8B}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {7F5ED78B-74A3-4406-A299-70CFB5885B8B}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {17EB676B-BB91-48B5-AA59-C67695C647C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {17EB676B-BB91-48B5-AA59-C67695C647C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {17EB676B-BB91-48B5-AA59-C67695C647C2}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {17EB676B-BB91-48B5-AA59-C67695C647C2}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {17EB676B-BB91-48B5-AA59-C67695C647C2}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {17EB676B-BB91-48B5-AA59-C67695C647C2}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {17EB676B-BB91-48B5-AA59-C67695C647C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {17EB676B-BB91-48B5-AA59-C67695C647C2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {17EB676B-BB91-48B5-AA59-C67695C647C2}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {17EB676B-BB91-48B5-AA59-C67695C647C2}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {8D73575A-A89F-47CC-B153-B47DD06837F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8D73575A-A89F-47CC-B153-B47DD06837F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8D73575A-A89F-47CC-B153-B47DD06837F0}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {8D73575A-A89F-47CC-B153-B47DD06837F0}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {8D73575A-A89F-47CC-B153-B47DD06837F0}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {8D73575A-A89F-47CC-B153-B47DD06837F0}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {8D73575A-A89F-47CC-B153-B47DD06837F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8D73575A-A89F-47CC-B153-B47DD06837F0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8D73575A-A89F-47CC-B153-B47DD06837F0}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {8D73575A-A89F-47CC-B153-B47DD06837F0}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {2D3D2834-33BE-45CA-B3CC-12F853557D7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2D3D2834-33BE-45CA-B3CC-12F853557D7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2D3D2834-33BE-45CA-B3CC-12F853557D7B}.DebugCodeAnalysis|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {2D3D2834-33BE-45CA-B3CC-12F853557D7B}.DebugCodeAnalysis|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {2D3D2834-33BE-45CA-B3CC-12F853557D7B}.DebugWithoutVsix|Any CPU.ActiveCfg = DebugCodeAnalysis|Any CPU
+ {2D3D2834-33BE-45CA-B3CC-12F853557D7B}.DebugWithoutVsix|Any CPU.Build.0 = DebugCodeAnalysis|Any CPU
+ {2D3D2834-33BE-45CA-B3CC-12F853557D7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2D3D2834-33BE-45CA-B3CC-12F853557D7B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2D3D2834-33BE-45CA-B3CC-12F853557D7B}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {2D3D2834-33BE-45CA-B3CC-12F853557D7B}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {14FDEE91-7301-4247-846C-049647BF8E99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {14FDEE91-7301-4247-846C-049647BF8E99}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {14FDEE91-7301-4247-846C-049647BF8E99}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {14FDEE91-7301-4247-846C-049647BF8E99}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {14FDEE91-7301-4247-846C-049647BF8E99}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {14FDEE91-7301-4247-846C-049647BF8E99}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {14FDEE91-7301-4247-846C-049647BF8E99}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {14FDEE91-7301-4247-846C-049647BF8E99}.Release|Any CPU.Build.0 = Release|Any CPU
+ {14FDEE91-7301-4247-846C-049647BF8E99}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {14FDEE91-7301-4247-846C-049647BF8E99}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {09313E65-7ADB-48C1-AD3A-572020C5BDCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {09313E65-7ADB-48C1-AD3A-572020C5BDCB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {09313E65-7ADB-48C1-AD3A-572020C5BDCB}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {09313E65-7ADB-48C1-AD3A-572020C5BDCB}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {09313E65-7ADB-48C1-AD3A-572020C5BDCB}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {09313E65-7ADB-48C1-AD3A-572020C5BDCB}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {09313E65-7ADB-48C1-AD3A-572020C5BDCB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {09313E65-7ADB-48C1-AD3A-572020C5BDCB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {09313E65-7ADB-48C1-AD3A-572020C5BDCB}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {09313E65-7ADB-48C1-AD3A-572020C5BDCB}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {EFDE0798-ACDB-431D-B7F1-548A7231C853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EFDE0798-ACDB-431D-B7F1-548A7231C853}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EFDE0798-ACDB-431D-B7F1-548A7231C853}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {EFDE0798-ACDB-431D-B7F1-548A7231C853}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {EFDE0798-ACDB-431D-B7F1-548A7231C853}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {EFDE0798-ACDB-431D-B7F1-548A7231C853}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {EFDE0798-ACDB-431D-B7F1-548A7231C853}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EFDE0798-ACDB-431D-B7F1-548A7231C853}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EFDE0798-ACDB-431D-B7F1-548A7231C853}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {EFDE0798-ACDB-431D-B7F1-548A7231C853}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {3525D819-6AEC-4879-89FB-56B41F026571}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3525D819-6AEC-4879-89FB-56B41F026571}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3525D819-6AEC-4879-89FB-56B41F026571}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {3525D819-6AEC-4879-89FB-56B41F026571}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {3525D819-6AEC-4879-89FB-56B41F026571}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {3525D819-6AEC-4879-89FB-56B41F026571}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {3525D819-6AEC-4879-89FB-56B41F026571}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3525D819-6AEC-4879-89FB-56B41F026571}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3525D819-6AEC-4879-89FB-56B41F026571}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {3525D819-6AEC-4879-89FB-56B41F026571}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {94509FCB-6C97-4ED6-AED6-6E74AB3CA336}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {94509FCB-6C97-4ED6-AED6-6E74AB3CA336}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {94509FCB-6C97-4ED6-AED6-6E74AB3CA336}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {94509FCB-6C97-4ED6-AED6-6E74AB3CA336}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {94509FCB-6C97-4ED6-AED6-6E74AB3CA336}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {94509FCB-6C97-4ED6-AED6-6E74AB3CA336}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {94509FCB-6C97-4ED6-AED6-6E74AB3CA336}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {94509FCB-6C97-4ED6-AED6-6E74AB3CA336}.Release|Any CPU.Build.0 = Release|Any CPU
+ {94509FCB-6C97-4ED6-AED6-6E74AB3CA336}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {94509FCB-6C97-4ED6-AED6-6E74AB3CA336}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {C59868FC-D8BC-4D47-B4F3-16908D2641C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C59868FC-D8BC-4D47-B4F3-16908D2641C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C59868FC-D8BC-4D47-B4F3-16908D2641C6}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {C59868FC-D8BC-4D47-B4F3-16908D2641C6}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {C59868FC-D8BC-4D47-B4F3-16908D2641C6}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {C59868FC-D8BC-4D47-B4F3-16908D2641C6}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {C59868FC-D8BC-4D47-B4F3-16908D2641C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C59868FC-D8BC-4D47-B4F3-16908D2641C6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C59868FC-D8BC-4D47-B4F3-16908D2641C6}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {C59868FC-D8BC-4D47-B4F3-16908D2641C6}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {DE704BBB-6EC6-4173-B695-D9EBF5AEB092}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DE704BBB-6EC6-4173-B695-D9EBF5AEB092}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DE704BBB-6EC6-4173-B695-D9EBF5AEB092}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {DE704BBB-6EC6-4173-B695-D9EBF5AEB092}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {DE704BBB-6EC6-4173-B695-D9EBF5AEB092}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {DE704BBB-6EC6-4173-B695-D9EBF5AEB092}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {DE704BBB-6EC6-4173-B695-D9EBF5AEB092}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DE704BBB-6EC6-4173-B695-D9EBF5AEB092}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DE704BBB-6EC6-4173-B695-D9EBF5AEB092}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {DE704BBB-6EC6-4173-B695-D9EBF5AEB092}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {E687457A-BEDC-422D-8D9D-2DA58099EBBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E687457A-BEDC-422D-8D9D-2DA58099EBBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E687457A-BEDC-422D-8D9D-2DA58099EBBA}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {E687457A-BEDC-422D-8D9D-2DA58099EBBA}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {E687457A-BEDC-422D-8D9D-2DA58099EBBA}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {E687457A-BEDC-422D-8D9D-2DA58099EBBA}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {E687457A-BEDC-422D-8D9D-2DA58099EBBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E687457A-BEDC-422D-8D9D-2DA58099EBBA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E687457A-BEDC-422D-8D9D-2DA58099EBBA}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {E687457A-BEDC-422D-8D9D-2DA58099EBBA}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {93778A89-3E58-4853-B772-948EBB3F17BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {93778A89-3E58-4853-B772-948EBB3F17BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {93778A89-3E58-4853-B772-948EBB3F17BE}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {93778A89-3E58-4853-B772-948EBB3F17BE}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {93778A89-3E58-4853-B772-948EBB3F17BE}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {93778A89-3E58-4853-B772-948EBB3F17BE}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {93778A89-3E58-4853-B772-948EBB3F17BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {93778A89-3E58-4853-B772-948EBB3F17BE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {93778A89-3E58-4853-B772-948EBB3F17BE}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {93778A89-3E58-4853-B772-948EBB3F17BE}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
+ {8B14F90B-0781-465D-AB94-19C8C56E3A94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8B14F90B-0781-465D-AB94-19C8C56E3A94}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8B14F90B-0781-465D-AB94-19C8C56E3A94}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
+ {8B14F90B-0781-465D-AB94-19C8C56E3A94}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
+ {8B14F90B-0781-465D-AB94-19C8C56E3A94}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
+ {8B14F90B-0781-465D-AB94-19C8C56E3A94}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
+ {8B14F90B-0781-465D-AB94-19C8C56E3A94}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8B14F90B-0781-465D-AB94-19C8C56E3A94}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8B14F90B-0781-465D-AB94-19C8C56E3A94}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
+ {8B14F90B-0781-465D-AB94-19C8C56E3A94}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {596595A6-2A3C-469E-9386-9E3767D863A5} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
- {4A84E568-CA86-4510-8CD0-90D3EF9B65F9} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB8}
- {8446C785-A5B4-4676-9B38-560FCA0563E0} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB8}
- {EE6ED99F-CB12-4683-B055-D28FC7357A34} = {8446C785-A5B4-4676-9B38-560FCA0563E0}
{8E1F1B4E-AEA2-4AB1-8F73-423A903550A1} = {7B6C5F8D-14B3-443D-B044-0E209AE12BDF}
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFF}
{1E7F7253-A6AF-43C4-A955-37BEDDA01AC0} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB8}
{08DD4305-7787-4823-A53F-4D0F725A07F3} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AC0}
{674B69B8-0780-4D54-AE2B-C15821FA51CB} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AC0}
{1E7F7253-A6AF-43C4-A955-37BEDDA01AB9} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB8}
{1CE2D235-8072-4649-BA5A-CFB1AF8776E0} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB9}
{600998C4-54DD-4755-BFA8-6F44544D8E2E} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB9}
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB9}
{1E7F7253-A6AF-43C4-A955-37BEDDA01AC9} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB8}
{B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AC9}
{241C47DF-CA8E-4296-AA03-2C48BB646ABD} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AC9}
- {EB73ADDD-2FE9-44C0-A1AB-20709B979B64} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AC9}
{1E7F7253-A6AF-43C4-A955-37BEDDA01AF9} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB8}
{252CE1C2-027A-4445-A3C2-E4D6C80A935A} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AF9}
- {0EC8DBA1-D745-4EE5-993A-6026440EC3BF} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AF9}
- {DD99FD0F-82F6-4C30-930E-4A1D0DF01D65} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB9}
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ {110B206F-8554-4B51-BF86-94DAA32F5E26} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ {17EB676B-BB91-48B5-AA59-C67695C647C2} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ {C2D88962-BD6B-4F11-B914-535B38377962} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ {14FDEE91-7301-4247-846C-049647BF8E99} = {C2D88962-BD6B-4F11-B914-535B38377962}
+ {09313E65-7ADB-48C1-AD3A-572020C5BDCB} = {C2D88962-BD6B-4F11-B914-535B38377962}
+ {EFDE0798-ACDB-431D-B7F1-548A7231C853} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ {3525D819-6AEC-4879-89FB-56B41F026571} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ {94509FCB-6C97-4ED6-AED6-6E74AB3CA336} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ {C59868FC-D8BC-4D47-B4F3-16908D2641C6} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ {DE704BBB-6EC6-4173-B695-D9EBF5AEB092} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ {E687457A-BEDC-422D-8D9D-2DA58099EBBA} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ {93778A89-3E58-4853-B772-948EBB3F17BE} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ {8B14F90B-0781-465D-AB94-19C8C56E3A94} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {556014CF-5B35-4CE5-B3EF-6AB0007001AC}
EndGlobalSection
EndGlobal
diff --git a/GitHubVS.v3.ncrunchsolution b/GitHubVS.v3.ncrunchsolution
new file mode 100644
index 0000000000..2cd8e79788
--- /dev/null
+++ b/GitHubVS.v3.ncrunchsolution
@@ -0,0 +1,14 @@
+
+
+
+ packages\Fody.1.29.4\**.*
+ packages\EntryExitDecorator.Fody.0.3.0\**.*
+
+
+ lib\**.*
+
+ False
+ .ncrunch
+ True
+
+
\ No newline at end of file
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000000..2c895f02d6
--- /dev/null
+++ b/ISSUE_TEMPLATE.md
@@ -0,0 +1,24 @@
+
+
+## Version
+
+- GitHub Extension for Visual Studio version:
+- Visual Studio version:
+
+## What happened
+
+**Steps to Reproduce**
+
+1. [First Step]
+2. [Second Step]
+3. [and so on...]
+
+**Expected behavior:** [What you expect to happen]
+
+**Actual behavior:** [What actually happens]
+
+**Screenshot or GIF:**
+
+**Log file:**
+
+
diff --git a/LICENSE.md b/LICENSE.md
index 0b506974f9..a9872c8b69 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,4 +1,4 @@
-Copyright (c) 2015 GitHub Inc.
+Copyright (c) GitHub Inc.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
diff --git a/README.md b/README.md
index f6a804ccf2..9eedee0630 100644
--- a/README.md
+++ b/README.md
@@ -1,22 +1,49 @@
# GitHub Extension for Visual Studio
+## Notices
+
+### If you are having issues with the installer, please read
+
+If you need to upgrade, downgrade, or uninstall the extension, and are having problems doing so, refer to this issue: https://github.com/github/VisualStudio/issues/1394 which details common problems and solutions when using the installer.
+
+### The location of the submodules has changed as of 31-01-2017
+
+If you have an existing clone, make sure to run `git submodule sync` to update your local clone with the new locations for the submodules.
+
+## About
+
The GitHub Extension for Visual Studio provides GitHub integration in Visual Studio 2015.
Most of the extension UI lives in the Team Explorer pane, which is available from the View menu.
Official builds of this extension are available at [the official website](https://visualstudio.github.com).
-[](https://gitter.im/github/VisualStudio?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
+[](https://ci.appveyor.com/project/github-windows/visualstudio/branch/master)
+[](https://codecov.io/gh/GitHub/VisualStudio)
+
+[](http://webchat.freenode.net/?channels=%23github-vs) [](https://gitter.im/github/VisualStudio?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
+## Documentation
+Visit the [documentation](https://github.com/github/VisualStudio/tree/master/docs) for details on how to use the features in the GitHub Extension for Visual Studio.
+
+## Installing beta versions
+
+Older and pre-release/beta/untested versions are available at [the releases page](https://github.com/github/VisualStudio/releases), and also via a custom gallery feed for Visual Studio.
+
+You can configure the gallery by going to `Tools / Options / Extensions and Updates` and adding a new gallery with the url https://visualstudio.github.com/releases/feed.rss. The gallery will now be available from `Tools / Extensions and Updates`.
+
+Beta releases will have `(beta)` in their title in the gallery, following the version number. You can view the release notes in the gallery by hovering over the description, or by clicking the `Release Notes` link on the right side.
## Build requirements
-* Visual Studio 2015
+* Visual Studio 2017 (15.7.4)+
* Visual Studio SDK
## Build
Clone the repository and its submodules in a git GUI client or via the command line:
-```
+```txt
git clone https://github.com/github/VisualStudio
cd VisualStudio
git submodule init
@@ -24,11 +51,48 @@ git submodule deinit script
git submodule update
```
-Open the `GitHubVS.sln` solution with Visual Studio 2015.
+Open the `GitHubVS.sln` solution with Visual Studio 2017+.
To be able to use the GitHub API, you'll need to:
- [Register a new developer application](https://github.com/settings/developers) in your profile.
-- Open [src/GitHub.App/Api/ApiClientConfiguration.cs](src/GitHub.App/Api/ApiClientConfiguration.cs) and fill out the clientId/clientSecret fields for your application.
+- Open [src/GitHub.Api/ApiClientConfiguration_User.cs](src/GitHub.Api/ApiClientConfiguration_User.cs) and fill out the clientId/clientSecret fields for your application. **Note this has recently changed location, so you may need to re-do this**
+
+Build using Visual Studio 2017 or:
+
+```txt
+build.cmd
+```
+
+Install in live (non-Experimental) instances of Visual Studio 2015 and 2017:
+
+```txt
+install.cmd
+```
+
+Note, the script will only install in one instance of Visual Studio 2017 (Enterprise, Professional or Community).
+
+## Build Flavors
+
+The following can be executed via `cmd.exe`.
+
+To build and install a `Debug` configuration VSIX:
+```txt
+build.cmd Debug
+install.cmd Debug
+```
+
+To build and install a `Release` configuration VSIX:
+```txt
+build.cmd Release
+install.cmd Release
+```
+## Logs
+Logs can be viewed at the following location:
+
+`%LOCALAPPDATA%\GitHubVisualStudio\extension.log`
+
+## More information
+- Andreia Gaita's [presentation](https://www.youtube.com/watch?v=hz2hCO8e_8w) at Codemania 2016 about this extension.
## Contributing
@@ -36,6 +100,7 @@ Visit the [Contributor Guidelines](CONTRIBUTING.md) for details on how to contri
## Copyright
-Copyright 2015 GitHub, Inc.
+Copyright 2015 - 2018 GitHub, Inc.
Licensed under the [MIT License](LICENSE.md)
+
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 0000000000..d103ff2160
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,37 @@
+os: Visual Studio 2017
+version: '2.5.6.{build}'
+skip_tags: true
+install:
+- ps: |
+ $full_build = Test-Path env:GHFVS_KEY
+ git submodule init
+ git submodule sync
+
+ if ($full_build) {
+ $fileContent = "-----BEGIN RSA PRIVATE KEY-----`n"
+ $fileContent += $env:GHFVS_KEY.Replace(' ', "`n")
+ $fileContent += "`n-----END RSA PRIVATE KEY-----`n"
+ Set-Content c:\users\appveyor\.ssh\id_rsa $fileContent
+ } else {
+ git submodule deinit script
+ }
+
+ git submodule update --recursive --force
+ nuget restore GitHubVS.sln
+build_script:
+- ps: scripts\build.ps1 -AppVeyor -BuildNumber:$env:APPVEYOR_BUILD_NUMBER
+test:
+ categories:
+ except:
+ - Timings
+after_test:
+- ps: |
+ choco install opencover.portable codecov
+ OpenCover.Console.exe --% "-target:nunit3-console.exe" "-targetargs: test\GitHub.Api.UnitTests\bin\Release\GitHub.Api.UnitTests.dll test\GitHub.App.UnitTests\bin\Release\GitHub.App.UnitTests.dll test\GitHub.Exports.Reactive.UnitTests\bin\Release\GitHub.Exports.Reactive.UnitTests.dll test\GitHub.Exports.UnitTests\bin\Release\GitHub.Exports.UnitTests.dll test\GitHub.Extensions.UnitTests\bin\Release\GitHub.Extensions.UnitTests.dll test\GitHub.InlineReviews.UnitTests\bin\Release\GitHub.InlineReviews.UnitTests.dll test\GitHub.Primitives.UnitTests\bin\Release\GitHub.Primitives.UnitTests.dll test\GitHub.TeamFoundation.UnitTests\bin\Release\GitHub.TeamFoundation.UnitTests.dll test\GitHub.UI.UnitTests\bin\Release\GitHub.UI.UnitTests.dll test\GitHub.VisualStudio.UnitTests\bin\Release\GitHub.VisualStudio.UnitTests.dll test\MetricsTests\MetricsTests\bin\Release\MetricsTests.dll test\TrackingCollectionTests\bin\Release\TrackingCollectionTests.dll --where cat!=Timings" -filter:"+[GitHub*]* -[GitHub*]*UnitTests" -register:user -output:".\coverage.xml"
+ codecov -f "coverage.xml"
+ Push-AppveyorArtifact coverage.xml
+on_success:
+- ps: |
+ if ($full_build) {
+ script\Sign-Package -AppVeyor
+ }
diff --git a/build.cmd b/build.cmd
index 7b7f67072a..ed204a53a7 100644
--- a/build.cmd
+++ b/build.cmd
@@ -1 +1,2 @@
-powershell.exe .\script\cibuild.ps1
\ No newline at end of file
+@if "%1" == "" echo Please specify Debug or Release && EXIT /B
+powershell -ExecutionPolicy Unrestricted scripts\build.ps1 -Package:$true -Config:%1
diff --git a/codecov.yml b/codecov.yml
new file mode 100644
index 0000000000..1727ea602d
--- /dev/null
+++ b/codecov.yml
@@ -0,0 +1,29 @@
+codecov:
+ notify:
+ require_ci_to_pass: yes
+
+coverage:
+ precision: 2
+ round: down
+ range: "70...100"
+
+ status:
+ project: yes
+ patch: yes
+ changes: no
+
+parsers:
+ gcov:
+ branch_detection:
+ conditional: yes
+ loop: yes
+ method: no
+ macro: no
+
+comment:
+ layout: "header, diff"
+ behavior: default
+ require_changes: no
+
+fixes:
+ - "C:\projects\visualstudio\::"
diff --git a/deploy-local.cmd b/deploy-local.cmd
new file mode 100644
index 0000000000..64f80141d9
--- /dev/null
+++ b/deploy-local.cmd
@@ -0,0 +1 @@
+powershell.exe .\script\deploy.ps1 -Force -NoChat -NoPush -NoUpload
\ No newline at end of file
diff --git a/deploy.cmd b/deploy.cmd
deleted file mode 100644
index 0998692f9f..0000000000
--- a/deploy.cmd
+++ /dev/null
@@ -1 +0,0 @@
-powershell.exe .\script\deploy.ps1 staff development %1 -Force -NoCampfire
\ No newline at end of file
diff --git a/docs/contributing/cloning-a-repository-to-visual-studio.md b/docs/contributing/cloning-a-repository-to-visual-studio.md
new file mode 100644
index 0000000000..1ccea26979
--- /dev/null
+++ b/docs/contributing/cloning-a-repository-to-visual-studio.md
@@ -0,0 +1,19 @@
+# Cloning a repository to Visual Studio
+
+After you provide your GitHub or GitHub Enterprise credentials to GitHub for Visual Studio, the extension automatically detects the personal and organization repositories you have access to on your account.
+
+1. Open **Team Explorer** by clicking on its tab next to *Solution Explorer*, or via the *View* menu.
+2. Click the **Manage Connections** toolbar button.
+
+
+
+3. Next to the account you want to clone from, click **Clone**.
+
+
+
+4. In the list of repositories, click the repository you'd like to clone.
+
+
+
+5. If desired, change the local path where the repository will be cloned into, or leave the default as-is. Click **Clone**.
+6. In Team Explorer, under the list of repositories, locate the repository and double-click to open the project in Visual Studio.
diff --git a/docs/contributing/creating-a-pull-request.md b/docs/contributing/creating-a-pull-request.md
new file mode 100644
index 0000000000..c2eb313cd0
--- /dev/null
+++ b/docs/contributing/creating-a-pull-request.md
@@ -0,0 +1,10 @@
+# Creating a pull request
+
+1. Open a solution in a GitHub repository.
+2. Open **Team Explorer** and click the **Pull Requests** button to open the **GitHub** pane.
+
+3. Click the **Create New** link above the list of pull requests for the repository.
+4. Select the target branch by clicking the link. If the current repository is a fork, then there will be two sets of branches in the dropdown - to submit a pull request upstream then select a branch with the `owner:` prefix of the upstream repository.
+
+5. Enter a pull request title and an optional description.
+6. Click the **Create Pull Request** button.
diff --git a/docs/contributing/creating-an-empty-repository-from-visual-studio.md b/docs/contributing/creating-an-empty-repository-from-visual-studio.md
new file mode 100644
index 0000000000..4252863095
--- /dev/null
+++ b/docs/contributing/creating-an-empty-repository-from-visual-studio.md
@@ -0,0 +1,27 @@
+# Creating an empty repository from Visual Studio
+
+1. [Sign in](../getting-started/authenticating-to-github.md) to GitHub.
+
+2. Open **Team Explorer** by clicking on its tab next to *Solution Explorer*, or via the *View* menu.
+
+3. Click the **Manage Connections** toolbar button.
+
+ 
+
+4. Click the **Create** link next to the account you want to create the repository in.
+
+ 
+
+5. In the **Create a GitHub Repository** dialog, enter a name, description and local path for the repository.
+
+ 
+
+6. Select a license for the repository.
+
+7. Check the **Private Repository** box if you want to upload the repository as a private repository on GitHub. You must have a [Developer, Team or Business account](https://github.com/pricing) to create private repositories.
+
+8. Click the **Create** button to create the repository
+
+9. When the repository is created, click the **Create a new Project or Solution** link in Team Explorer to create a project or solution in the repository.
+
+ 
diff --git a/docs/contributing/creating-gists.md b/docs/contributing/creating-gists.md
new file mode 100644
index 0000000000..1a5547457b
--- /dev/null
+++ b/docs/contributing/creating-gists.md
@@ -0,0 +1,23 @@
+# Creating gists
+
+GitHub for Visual Studio enables easy creation of gists directly from the Visual Studio Editor.
+
+1. [Sign in](../getting-started/authenticating-to-github.md) to GitHub.
+
+2. Open a file in the Visual Studio text editor.
+
+3. Select the section of text that you want to create a gist from.
+
+4. Right click and select **Create a GitHub Gist** from the **GitHub** submenu.
+
+ 
+
+5. In the **Create a GitHub Gist** dialog, check that the filename is correct and optionally add a description.
+
+ 
+
+6. If you want the gist to be private, check the **Private Gist** checkbox.
+
+7. Click **Create**.
+
+8. Once the gist is created it will be opened in your browser.
diff --git a/docs/contributing/images/add-comment.png b/docs/contributing/images/add-comment.png
new file mode 100644
index 0000000000..3bbc5244f4
Binary files /dev/null and b/docs/contributing/images/add-comment.png differ
diff --git a/docs/contributing/images/add-to-source-control.png b/docs/contributing/images/add-to-source-control.png
new file mode 100644
index 0000000000..7154c14a63
Binary files /dev/null and b/docs/contributing/images/add-to-source-control.png differ
diff --git a/docs/contributing/images/clone-dialog.png b/docs/contributing/images/clone-dialog.png
new file mode 100644
index 0000000000..2e44a61916
Binary files /dev/null and b/docs/contributing/images/clone-dialog.png differ
diff --git a/docs/contributing/images/clone-link.png b/docs/contributing/images/clone-link.png
new file mode 100644
index 0000000000..eb8a26bae8
Binary files /dev/null and b/docs/contributing/images/clone-link.png differ
diff --git a/docs/contributing/images/create-dialog.png b/docs/contributing/images/create-dialog.png
new file mode 100644
index 0000000000..16f3dfd013
Binary files /dev/null and b/docs/contributing/images/create-dialog.png differ
diff --git a/docs/contributing/images/create-gist-dialog.png b/docs/contributing/images/create-gist-dialog.png
new file mode 100644
index 0000000000..fbab9a2abf
Binary files /dev/null and b/docs/contributing/images/create-gist-dialog.png differ
diff --git a/docs/contributing/images/create-gist-menu.png b/docs/contributing/images/create-gist-menu.png
new file mode 100644
index 0000000000..015aafbe54
Binary files /dev/null and b/docs/contributing/images/create-gist-menu.png differ
diff --git a/docs/contributing/images/create-link.png b/docs/contributing/images/create-link.png
new file mode 100644
index 0000000000..1636ec6ae2
Binary files /dev/null and b/docs/contributing/images/create-link.png differ
diff --git a/docs/contributing/images/github-pane-toolbar.png b/docs/contributing/images/github-pane-toolbar.png
new file mode 100644
index 0000000000..f146ac0b80
Binary files /dev/null and b/docs/contributing/images/github-pane-toolbar.png differ
diff --git a/docs/contributing/images/hover-to-add-comment.png b/docs/contributing/images/hover-to-add-comment.png
new file mode 100644
index 0000000000..231441e0f9
Binary files /dev/null and b/docs/contributing/images/hover-to-add-comment.png differ
diff --git a/docs/contributing/images/manage-connections.png b/docs/contributing/images/manage-connections.png
new file mode 100644
index 0000000000..fb8c01d58e
Binary files /dev/null and b/docs/contributing/images/manage-connections.png differ
diff --git a/docs/contributing/images/open-on-github.png b/docs/contributing/images/open-on-github.png
new file mode 100644
index 0000000000..186bda86d9
Binary files /dev/null and b/docs/contributing/images/open-on-github.png differ
diff --git a/docs/contributing/images/open-team-explorer.png b/docs/contributing/images/open-team-explorer.png
new file mode 100644
index 0000000000..25a750c85f
Binary files /dev/null and b/docs/contributing/images/open-team-explorer.png differ
diff --git a/docs/contributing/images/pr-create.png b/docs/contributing/images/pr-create.png
new file mode 100644
index 0000000000..02aededb85
Binary files /dev/null and b/docs/contributing/images/pr-create.png differ
diff --git a/docs/contributing/images/pr-details-checkout-link.png b/docs/contributing/images/pr-details-checkout-link.png
new file mode 100644
index 0000000000..543ac38e49
Binary files /dev/null and b/docs/contributing/images/pr-details-checkout-link.png differ
diff --git a/docs/contributing/images/pr-details.png b/docs/contributing/images/pr-details.png
new file mode 100644
index 0000000000..222b2edc1a
Binary files /dev/null and b/docs/contributing/images/pr-details.png differ
diff --git a/docs/contributing/images/pr-diff-files.png b/docs/contributing/images/pr-diff-files.png
new file mode 100644
index 0000000000..5ae7800009
Binary files /dev/null and b/docs/contributing/images/pr-diff-files.png differ
diff --git a/docs/contributing/images/pr-pull-changes.png b/docs/contributing/images/pr-pull-changes.png
new file mode 100644
index 0000000000..3073e77536
Binary files /dev/null and b/docs/contributing/images/pr-pull-changes.png differ
diff --git a/docs/contributing/images/publish-to-github.png b/docs/contributing/images/publish-to-github.png
new file mode 100644
index 0000000000..59c3abb36b
Binary files /dev/null and b/docs/contributing/images/publish-to-github.png differ
diff --git a/docs/contributing/images/pull-request-list.png b/docs/contributing/images/pull-request-list.png
new file mode 100644
index 0000000000..9b5d32b881
Binary files /dev/null and b/docs/contributing/images/pull-request-list.png differ
diff --git a/docs/contributing/images/pull-requests-button.png b/docs/contributing/images/pull-requests-button.png
new file mode 100644
index 0000000000..365494defb
Binary files /dev/null and b/docs/contributing/images/pull-requests-button.png differ
diff --git a/docs/contributing/images/pull-requests-button2.png b/docs/contributing/images/pull-requests-button2.png
new file mode 100644
index 0000000000..4d03c1b0dc
Binary files /dev/null and b/docs/contributing/images/pull-requests-button2.png differ
diff --git a/docs/contributing/images/successful-creation-message.png b/docs/contributing/images/successful-creation-message.png
new file mode 100644
index 0000000000..45fe34e34b
Binary files /dev/null and b/docs/contributing/images/successful-creation-message.png differ
diff --git a/docs/contributing/images/team-explorer-sync.png b/docs/contributing/images/team-explorer-sync.png
new file mode 100644
index 0000000000..32d4bce4a3
Binary files /dev/null and b/docs/contributing/images/team-explorer-sync.png differ
diff --git a/docs/contributing/index.md b/docs/contributing/index.md
new file mode 100644
index 0000000000..5bf9eb0791
--- /dev/null
+++ b/docs/contributing/index.md
@@ -0,0 +1,29 @@
+# Contributing to Projects with GitHub for Visual Studio
+
+Use GitHub for Visual Studio to manage your projects and work with pull requests.
+
+### Table of Contents
+
+- Adding and cloning repositories
+ - [Publishing an existing project to GitHub](publishing-an-existing-project-to-github.md)
+ - [Creating an empty repository from Visual Studio](creating-an-empty-repository-from-visual-studio.md)
+ - [Cloning a repository to Visual Studio](cloning-a-repository-to-visual-studio.md)
+- Working with pull requests
+ - [Viewing pull requests for a repository](viewing-the-pull-requests-for-a-repository.md)
+ - [Creating a pull request](creating-a-pull-request.md)
+ - [Reviewing a pull request in Visual Studio](reviewing-a-pull-request-in-visual-studio.md)
+ - [Making changes to a pull request](making-changes-to-a-pull-request.md)
+- [Creating gists](creating-gists.md)
+- [Viewing existing code on GitHub](viewing-code-on-github.md)
+ - [Viewing the selected code on GitHub](viewing-code-on-github.md#viewing-the-selected-code-on-github)
+ - [Copying the URL of the selected code's location on GitHub](viewing-code-on-github.md#copying-the-url-of-the-selected-codes-location-on-github)
+ - [Viewing the selected code in blame view on GitHub](viewing-code-on-github.md#viewing-the-selected-code-in-blame-view-on-github)
+- [Using the GitHub toolbar](using-the-github-toolbar.md)
+- Operations provided by Visual Studio
+ - [Committing](https://www.visualstudio.com/en-us/docs/git/tutorial/commits)
+ - [Pushing commits to the remote repository](https://www.visualstudio.com/en-us/docs/git/tutorial/pushing)
+ - [Fetching and pulling](https://www.visualstudio.com/en-us/docs/git/tutorial/pulling)
+ - [Working with branches](https://www.visualstudio.com/en-us/docs/git/tutorial/branches)
+ - [Viewing history](https://www.visualstudio.com/en-us/docs/git/tutorial/history)
+ - [Ignoring files](https://www.visualstudio.com/en-us/docs/git/tutorial/ignore-files)
+- [Contact a human](https://github.com/contact)
diff --git a/docs/contributing/making-changes-to-a-pull-request.md b/docs/contributing/making-changes-to-a-pull-request.md
new file mode 100644
index 0000000000..d16d728dfb
--- /dev/null
+++ b/docs/contributing/making-changes-to-a-pull-request.md
@@ -0,0 +1,17 @@
+# Making changes to a pull request
+
+When a topic branch is [checked out](review-a-pull-request-in-visual-studio.md), you can commit changes to it and push and pull like any other branch. If the pull request branch is located in a fork and was checked out from the Pull Request Details view in the GitHub pane, then a remote to that fork will be created automatically and the branch set to track the fork branch.
+
+## Pulling changes to your local clone
+
+If a Pull Request is checked out and the author adds new commits to the branch, then the option will be given to pull the changes locally. This works both for pull requests from the same repository and from a fork.
+
+
+
+## Pushing changes
+
+If you make commits locally to a topic branch, then you can push the changes to the remote branch. You can also do this from Git itself or from the Visual Studio Team Explorer **Sync** view.
+
+> Note: for this to work with Pull Requests that come from forks, then you must be a maintainer on the repository and the Pull Request submitter must have checked [Allow edits from maintainers](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) when submitting the Pull Request.
+
+If there are commits on the branch on the remote repository that you don't have on your local clone, you must pull them to your local clone and [resolve any conflicts](https://help.github.com/articles/addressing-merge-conflicts/) before you can push your local commits back to the remote repository.
diff --git a/docs/contributing/publishing-an-existing-project-to-github.md b/docs/contributing/publishing-an-existing-project-to-github.md
new file mode 100644
index 0000000000..7b296056ce
--- /dev/null
+++ b/docs/contributing/publishing-an-existing-project-to-github.md
@@ -0,0 +1,14 @@
+# Publishing an existing project to GitHub
+
+1. Open a solution in Visual Studio.
+2. If solution is not already initialized as a Git repository, select **Add to Source Control** from the **File** menu.
+
+3. Open **Team Explorer**.
+
+4. In Team Explorer, click **Sync**.
+
+5. Click the **Publish to GitHub** button.
+
+6. Enter a name and description for the repository on GitHub.
+7. Check the **Private Repository** box if you want to upload the repository as a private repository on GitHub. You must have a [Developer, Team or Business account](https://github.com/pricing) to create private repositories.
+8. Click the **Publish** button.
diff --git a/docs/contributing/reviewing-a-pull-request-in-visual-studio.md b/docs/contributing/reviewing-a-pull-request-in-visual-studio.md
new file mode 100644
index 0000000000..904af9dab3
--- /dev/null
+++ b/docs/contributing/reviewing-a-pull-request-in-visual-studio.md
@@ -0,0 +1,51 @@
+# Reviewing a pull request in Visual Studio
+
+GitHub for Visual Studio provides facilities for reviewing a pull request directly in Visual Studio.
+
+1. Open a solution in a GitHub repository.
+
+2. Open **Team Explorer** and click the **Pull Requests** button to open the **GitHub** pane.
+
+ 
+
+3. Click the title of the pull request to be reviewed.
+
+## Viewing a pull request
+
+The Pull Request Details view shows the current state of the pull request, including information about who created the pull request, the source and target branch, and the files changed.
+
+
+
+## Checking out a pull request
+
+To check out the pull request branch, click the **Checkout [branch]** link where [branch] is the name of the branch that will be checked out.
+
+
+
+If the pull request is from a fork then a remote will be added to the forked repository and the branch checked out locally. This remote will automatically be cleaned up when the local branch is deleted.
+
+> Note that you cannot check out a pull request branch when your working directory has uncommitted changes. First commit or stash your changes and then refresh the Pull Request view.
+
+## Viewing Changes
+
+To view the changes in the pull request for a file, double click a file in the **Changed Files** tree. This will open the Visual Studio diff viewer.
+
+
+
+You can also right-click on a file in the changed files tree to get more options:
+
+- **View Changes**: This is the default option that is also triggered when the file is double-clicked. It shows the changes to the file that are introduced by the pull request.
+- **View File**: This opens a read-only editor showing the contents of the file in the pull request.
+- **View Changes in Solution**: This menu item is only available when the pull request branch is checked out. It shows the changes in the pull request, but the right hand side of the diff is the file in the working directory. This view allows you to use Visual Studio navigation commands such as **Go to Definition (F12)**.
+- **Open File in Solution**: This menu item opens the working directory file in an editor.
+
+## Leaving Comments
+
+You can add comments to a pull request directly from Visual Studio. When a file is [open in the diff viewer](#viewing-changes) you can click the **Add Comment** icon in the margin to add a comment on a line.
+
+
+
+Then click the icon on the desired line and leave a comment.
+
+
+Existing comments left by you or other reviewers will also show up in this margin. Click the icon to open an inline conversation view from which you can review and reply to comments:
diff --git a/docs/contributing/using-the-github-toolbar.md b/docs/contributing/using-the-github-toolbar.md
new file mode 100644
index 0000000000..0cc353babd
--- /dev/null
+++ b/docs/contributing/using-the-github-toolbar.md
@@ -0,0 +1,29 @@
+# Using the GitHub pane toolbar
+
+The GitHub pane toolbar provides a way to navigate between views, refresh views, and open the current view on GitHub.
+
+
+
+1. Open a solution in a GitHub repository.
+2. Open **Team Explorer** and click the **Pull Requests** button to open the **GitHub** pane.
+
+## Using the back navigation button
+1. At the top of the **GitHub** pane, locate the button furthest to the left. This is the **Back** button.
+2. Click **Back** to navigate to the previous view. If **Back** is grey, you have reached the initial point in the view navigation.
+
+## Using the forward navigation button
+1. At the top of the **GitHub** pane, locate the second button from the left, which is the **Forward** button.
+2. Click **Forward** to navigate to the next view. If **Forward** is grey, you have reached the furthest point in the view navigation.
+
+## Using the pull request toolbar icon
+1. At the top of the **GitHub** pane, locate the third button from the left. This is the **Pull Requests** button.
+2. Click **Pull Requests** to navigate to the list of pull requests in the repository.
+
+## Using the GitHub toolbar button
+1. At the top of the **GitHub** pane, locate the fourth button from the left. This is the **View On GitHub** button.
+2. While viewing the list of pull requests, click **View On Github**. Your browser will open and navigate to the repository's pull requests on GitHub.
+3. While viewing the details of a pull request, click **View On Github**. Your browser will open and navigate to the pull request on GitHub.
+
+## Using the refresh toolbar button
+1. At the top of the **GitHub** pane, locate the fifth button from the left. This is the **Refresh** button.
+2. Click **Refresh** to refresh the current view in the **GitHub** pane.
diff --git a/docs/contributing/viewing-code-on-github.md b/docs/contributing/viewing-code-on-github.md
new file mode 100644
index 0000000000..2f3d587fc3
--- /dev/null
+++ b/docs/contributing/viewing-code-on-github.md
@@ -0,0 +1,21 @@
+# Viewing existing code on GitHub
+
+GitHub for Visual Studio enables easy navigation to code that exists on GitHub directly from the Visual Studio code editor.
+
+1. Open a solution in a GitHub repository.
+2. Open *Solution Explorer* by clicking on its tab, or via the *View* menu.
+3. In *Solution Explorer*, double click on a file to open it in Visual Studio code editor.
+3. In the code editor, highlight the section of text that you want to view in the browser.
+
+## Viewing the selected code on GitHub
+1. Right click and select **Open on GitHub** from the **GitHub** submenu.
+
+2. Your browser will open and navigate to the code on GitHub.
+
+## Copying the URL of the selected code's location on GitHub
+1. Right click and select **Copy link to clipboard** from the **GitHub** submenu. The URL will be copied to the clipboard.
+2. Paste the URL into your browser to view it on GitHub.
+
+## Viewing the selected code in blame view on GitHub
+1. Right click and select **Blame** from the **GitHub** submenu.
+2. Your browser will open and navigate to the code in blame view on GitHub.
diff --git a/docs/contributing/viewing-the-pull-requests-for-a-repository.md b/docs/contributing/viewing-the-pull-requests-for-a-repository.md
new file mode 100644
index 0000000000..83a2ae3e7c
--- /dev/null
+++ b/docs/contributing/viewing-the-pull-requests-for-a-repository.md
@@ -0,0 +1,15 @@
+# Viewing the pull requests for a repository
+
+GitHub for Visual Studio exposes the pull requests for the current repository and lets you create new pull requests and review pull requests from other contributors.
+
+1. [Sign in](../getting-started/authenticating-to-github.md) to GitHub.
+2. Open a solution in a GitHub repository.
+3. Open **Team Explorer** and click the **Pull Requests** button to open the **GitHub** pane.
+
+4. The open pull requests will be displayed.
+
+5. Change the Open/Closed filter by clicking the **Open** link and selecting the filter you want to use from the dropdown.
+6. Filter pull requests by Assignee by clicking the **Assignee** link and selecting the assignee you want to view from the dropdown.
+7. Filter pull requests by Author by clicking the **Author** link and selecting the author you want to view from the dropdown.
+8. Click on a pull request title to [view the pull request details and review the pull request](review-a-pull-request-in-visual-studio.md)
+9. Click on the **Create New** link to [create a pull request from the current branch](sending-a-pull-request.md)
diff --git a/docs/developer/dialog-views-with-connections.md b/docs/developer/dialog-views-with-connections.md
new file mode 100644
index 0000000000..856b4ae67e
--- /dev/null
+++ b/docs/developer/dialog-views-with-connections.md
@@ -0,0 +1,24 @@
+# Dialog Views with Connections
+
+Some dialog views need a connection to operate - if there is no connection, a login dialog should be shown: for example, clicking Create Gist without a connection will first prompt the user to log in.
+
+Achieving this is simple, first make your view model interface implement `IConnectionInitializedViewModel` and do any initialization that requires a connection in the `InitializeAsync` method in your view model:
+
+```csharp
+public Task InitializeAsync(IConnection connection)
+{
+ // .. at this point, you're guaranteed to have a connection.
+}
+```
+
+To show the dialog, call `IShowDialogService.ShowWithFirstConnection` instead of `Show`:
+
+```csharp
+public async Task ShowExampleDialog()
+{
+ var viewModel = serviceProvider.ExportProvider.GetExportedValue();
+ await showDialog.ShowWithFirstConnection(viewModel);
+}
+```
+
+`ShowFirstConnection` first checks if there are any logged in connections. If there are, the first logged in connection will be passed to `InitializeAsync` and the view shown immediately. If there are no logged in connections, the login view will first be shown. Once the user has successfully logged in, the new connection will be passed to `InitalizeAsync` and the view shown.
\ No newline at end of file
diff --git a/docs/developer/how-viewmodels-are-turned-into-views.md b/docs/developer/how-viewmodels-are-turned-into-views.md
new file mode 100644
index 0000000000..a0df01241a
--- /dev/null
+++ b/docs/developer/how-viewmodels-are-turned-into-views.md
@@ -0,0 +1,86 @@
+# How ViewModels are Turned into Views
+
+We make use of the [MVVM pattern](https://msdn.microsoft.com/en-us/library/ff798384.aspx), in which application level code is not aware of the view level. MVVM takes advantage of the fact that `DataTemplate`s can be used to create views from view models.
+
+## DataTemplates
+
+[`DataTemplate`](https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/data-templating-overview)s are a WPF feature that allow you to define the presentation of your data. Consider a simple view model:
+
+```csharp
+public class ViewModel
+{
+ public string Greeting => "Hello World!";
+}
+```
+
+And a window:
+
+```csharp
+public class MainWindow : Window
+{
+ public MainWindow()
+ {
+ DataContext = new ViewModel();
+ InitializeComponent();
+ }
+}
+```
+
+```xml
+
+
+
+```
+
+Here we're binding the `Content` of the `Window` to the `Window.DataContext`, which we're setting in the constructor to be an instance of `ViewModel`.
+
+One can choose to display the `ViewModel` instance in any way we want by using a `DataTemplate`:
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+This is the basis for converting view models to views.
+
+## ViewLocator
+
+There are currently two top-level controls for our UI:
+
+- [GitHubDialogWindow](../../src/GitHub.VisualStudio/Views/Dialog/GitHubDialogWindow.xaml) for the dialog which shows the login, clone, etc views
+- [GitHubPaneView](../../src/GitHub.VisualStudio/Views/GitHubPane/GitHubPaneView.xaml) for the GitHub pane
+
+In the resources for each of these top-level controls we define a `DataTemplate` like so:
+
+```xml
+
+
+
+
+```
+
+The `DataTemplate.DataType` here applies the template to all classes inherited from [`GitHub.ViewModels.ViewModelBase`](../../src/GitHub.Exports.Reactive/ViewModels/ViewModelBase.cs) [1]. The template defines a single `ContentControl` whose contents are created by a `ViewLocator`.
+
+The [`ViewLocator`](../../src/GitHub.VisualStudio/Views/ViewLocator.cs) class is an `IValueConverter` which then creates an instance of the appropriate view for the view model using MEF.
+
+And thus a view model becomes a view.
+
+[1]: it would be nice to make it apply to all classes that inherit `IViewModel` but unfortunately WPF's `DataTemplate`s don't work with interfaces.
diff --git a/docs/developer/implementing-a-dialog-view.md b/docs/developer/implementing-a-dialog-view.md
new file mode 100644
index 0000000000..332ddd4aa9
--- /dev/null
+++ b/docs/developer/implementing-a-dialog-view.md
@@ -0,0 +1,113 @@
+# Implementing a Dialog View
+
+GitHub for Visual Studio has a common dialog which is used to show the login, clone, create repository etc. operations. To add a new view to the dialog and show the dialog with this view, you need to do the following:
+
+## Create a View Model and Interface
+
+- Create an interface for the view model that implements `IDialogContentViewModel` in `GitHub.Exports.Reactive\ViewModels\Dialog`
+- Create a view model that inherits from `NewViewModelBase` and implements the interface in `GitHub.App\ViewModels\Dialog`
+- Export the view model with the interface as the contract and add a `[PartCreationPolicy(CreationPolicy.NonShared)]` attribute
+
+A minimal example that just exposes a command that will dismiss the dialog:
+
+```csharp
+using System;
+using ReactiveUI;
+
+namespace GitHub.ViewModels.Dialog
+{
+ public interface IExampleDialogViewModel : IDialogContentViewModel
+ {
+ ReactiveCommand