diff --git a/build/Targets/Packages.props b/build/Targets/Packages.props
index ce31808aea8d083afb5250640e8286b3119cddec..6a41c3f92351d7dbc010e2b9c9b2f87a02a10b78 100644
--- a/build/Targets/Packages.props
+++ b/build/Targets/Packages.props
@@ -98,6 +98,7 @@
15.0.26730-alpha
15.0.26730-alpha
15.3.178-pre-g209fb07c2e
+ 2.3.6152103
10.0.0.0-alpha
14.0.249-master2E2DC10C
1.11.2290
diff --git a/src/Compilers/Extension/CompilerExtension.csproj b/src/Compilers/Extension/CompilerExtension.csproj
index 7a79b854b1161a3fb7c477b41780acb1c7358f72..afe5d3ba4ed1647fcc46fa611dfa1705c684f1f8 100644
--- a/src/Compilers/Extension/CompilerExtension.csproj
+++ b/src/Compilers/Extension/CompilerExtension.csproj
@@ -134,6 +134,7 @@
TargetFramework=net46
+
@@ -141,5 +142,11 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Compilers/Extension/CompilerPackage.cs b/src/Compilers/Extension/CompilerPackage.cs
index 510b2dfdef2d954c889f7533469acc1512999d75..28a20497a619cafa578092fc57d201f5b257d332 100644
--- a/src/Compilers/Extension/CompilerPackage.cs
+++ b/src/Compilers/Extension/CompilerPackage.cs
@@ -13,6 +13,8 @@ namespace Roslyn.Compilers.Extension
[ProvideAutoLoad(UIContextGuids.SolutionExists)]
public sealed class CompilerPackage : Package
{
+ public static string RoslynHive = null;
+
protected override void Initialize()
{
base.Initialize();
@@ -30,14 +32,14 @@ protected override void Initialize()
{
var skuName = registryParts[2];
var hiveName = registryParts[3];
- var roslynHive = string.Format(@"{0}.{1}", registryParts[2], registryParts[3]);
+ RoslynHive = string.Format(@"{0}.{1}", registryParts[2], registryParts[3]);
- WriteMSBuildFiles(packagePath, roslynHive);
+ WriteMSBuildFiles(packagePath, RoslynHive);
try
{
Microsoft.Build.Evaluation.ProjectCollection.GlobalProjectCollection.DisableMarkDirty = true;
- Microsoft.Build.Evaluation.ProjectCollection.GlobalProjectCollection.SetGlobalProperty("RoslynHive", roslynHive);
+ Microsoft.Build.Evaluation.ProjectCollection.GlobalProjectCollection.SetGlobalProperty("RoslynHive", RoslynHive);
}
finally
{
diff --git a/src/Compilers/Extension/SetGlobalGlobalPropertiesForCPS.cs b/src/Compilers/Extension/SetGlobalGlobalPropertiesForCPS.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b73d958b1360f81ebeba99d12916ac6c9357bba1
--- /dev/null
+++ b/src/Compilers/Extension/SetGlobalGlobalPropertiesForCPS.cs
@@ -0,0 +1,30 @@
+// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.Collections.Immutable;
+using System.ComponentModel.Composition;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.VisualStudio.ProjectSystem;
+using Microsoft.VisualStudio.ProjectSystem.Build;
+using Microsoft.VisualStudio.Shell.Interop;
+
+namespace Roslyn.Compilers.Extension
+{
+ [ExportBuildGlobalPropertiesProvider]
+ [AppliesTo("(" + ProjectCapabilities.CSharp + " | " + ProjectCapabilities.VB + ")" + " & " + ProjectCapabilities.LanguageService)]
+ public class SetGlobalGlobalPropertiesForCPS : StaticGlobalPropertiesProviderBase
+ {
+ [ImportingConstructor]
+ public SetGlobalGlobalPropertiesForCPS(IProjectService projectService)
+ : base(projectService.Services)
+ {
+ }
+
+ public override Task> GetGlobalPropertiesAsync(CancellationToken cancellationToken)
+ {
+ return CompilerPackage.RoslynHive != null
+ ? Task.FromResult>(Empty.PropertiesMap.Add("RoslynHive", CompilerPackage.RoslynHive))
+ : Task.FromResult>(Empty.PropertiesMap);
+ }
+ }
+}
diff --git a/src/Compilers/Extension/source.extension.vsixmanifest b/src/Compilers/Extension/source.extension.vsixmanifest
index 724f3eb4f66bde862eddf4b461b5c2494615763c..42c393f43042a29af6fe7c252aec7842035ecb96 100644
--- a/src/Compilers/Extension/source.extension.vsixmanifest
+++ b/src/Compilers/Extension/source.extension.vsixmanifest
@@ -12,6 +12,7 @@
+