提交 4325d301 编写于 作者: K Kevin Pilch-Bisson 提交者: GitHub

Merge pull request #12463 from Pilchie/RemoveTelemetryVsix

Merge telemetry sources into existing projects
......@@ -368,8 +368,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perf.Utilities", "src\Test\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perf.Runner", "src\Test\Perf\Runner\Perf.Runner.csproj", "{1AA6D2F0-2C40-4AF6-BB79-50AFDCC62720}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisualStudioTelemetry", "src\VisualStudio\Telemetry\VisualStudioTelemetry.csproj", "{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiaSymReader.PortablePdb", "src\Dependencies\DiaSymReader.PortablePdb\DiaSymReader.PortablePdb.csproj", "{D06F8190-AC11-48E6-B0BF-5F17B7EB7B62}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignRoslyn", "src\Tools\SignRoslyn\SignRoslyn.csproj", "{3DA711E1-055F-4352-A5E1-F9169C86A20F}"
......@@ -3167,20 +3165,6 @@ Global
{1AA6D2F0-2C40-4AF6-BB79-50AFDCC62720}.Release|x64.Build.0 = Release|Any CPU
{1AA6D2F0-2C40-4AF6-BB79-50AFDCC62720}.Release|x86.ActiveCfg = Release|Any CPU
{1AA6D2F0-2C40-4AF6-BB79-50AFDCC62720}.Release|x86.Build.0 = Release|Any CPU
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Debug|Any CPU.ActiveCfg = Debug|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Debug|ARM.ActiveCfg = Debug|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Debug|Mixed Platforms.Build.0 = Debug|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Debug|x64.ActiveCfg = Debug|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Debug|x86.ActiveCfg = Debug|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Debug|x86.Build.0 = Debug|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Release|Any CPU.ActiveCfg = Release|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Release|ARM.ActiveCfg = Release|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Release|Mixed Platforms.ActiveCfg = Release|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Release|Mixed Platforms.Build.0 = Release|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Release|x64.ActiveCfg = Release|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Release|x86.ActiveCfg = Release|x86
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}.Release|x86.Build.0 = Release|x86
{D06F8190-AC11-48E6-B0BF-5F17B7EB7B62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D06F8190-AC11-48E6-B0BF-5F17B7EB7B62}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D06F8190-AC11-48E6-B0BF-5F17B7EB7B62}.Debug|ARM.ActiveCfg = Debug|Any CPU
......@@ -3389,7 +3373,6 @@ Global
{DD13507E-D5AF-4B61-B11A-D55D6F4A73A5} = {CAD2965A-19AB-489F-BE2E-7649957F914A}
{59AD474E-2A35-4E8A-A74D-E33479977FBF} = {DD13507E-D5AF-4B61-B11A-D55D6F4A73A5}
{1AA6D2F0-2C40-4AF6-BB79-50AFDCC62720} = {DD13507E-D5AF-4B61-B11A-D55D6F4A73A5}
{63FB8976-170E-4FB0-ABB8-6A7070C55DC7} = {8DBA5174-B0AA-4561-82B1-A46607697753}
{D06F8190-AC11-48E6-B0BF-5F17B7EB7B62} = {C2D1346B-9665-4150-B644-075CF1636BAA}
{3DA711E1-055F-4352-A5E1-F9169C86A20F} = {FD0FAF5F-1DED-485C-99FA-84B97F3A8EEC}
{D73ADF7D-2C1C-42AE-B2AB-EDC9497E4B71} = {A41D1B99-F489-4C43-BBDF-96D61B19A6B9}
......
......@@ -83,7 +83,6 @@
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.Implementation" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.SolutionExplorer" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.ExternalDependencyServices" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.Telemetry" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.VisualBasic" />
<InternalsVisibleTo Include="csi" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.CSharp.InteractiveEditorFeatures" />
......@@ -807,4 +806,4 @@
<ImportGroup Label="Targets">
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -60,9 +60,9 @@ internal static void GetLanguageAndProjectType(this Workspace workspace, Project
return;
}
var hostContext = workspace.Services.GetService<IHostContextService>();
var projectTypeLookup = workspace.Services.GetService<IProjectTypeLookupService>();
projectType = hostContext.GetProjectType(workspace, projectId);
projectType = projectTypeLookup.GetProjectType(workspace, projectId);
// if projectId doesn't exist, not much we need to do.
if (projectId == null)
......
......@@ -45,7 +45,6 @@
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.Implementation" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.SolutionExplorer" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.ExternalDependencyServices" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.Telemetry" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.VisualBasic" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.CSharp.InteractiveEditorFeatures" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.InteractiveEditorFeatures" />
......@@ -632,4 +631,4 @@
<ImportGroup Label="Targets">
<Import Project="..\..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -36,13 +36,6 @@
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<VSIXSubPath>Vsixes</VSIXSubPath>
</ProjectReference>
<ProjectReference Include="..\..\..\VisualStudio\Telemetry\VisualStudioTelemetry.csproj">
<Project>{63fb8976-170e-4fb0-abb8-6a7070c55dc7}</Project>
<Name>VisualStudioTelemetry</Name>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<IncludeOutputGroupsInVSIX>VSIXContainerProjectOutputGroup%3b</IncludeOutputGroupsInVSIX>
<VSIXSubPath>Vsixes</VSIXSubPath>
</ProjectReference>
<ProjectReference Include="..\..\..\Compilers\Extension\CompilerExtension.csproj">
<Project>{43026D51-3083-4850-928D-07E1883D5B1A}</Project>
<Name>CompilerExtension</Name>
......
......@@ -65,15 +65,6 @@
Location="|ExpressionEvaluatorPackage;VSIXContainerProjectOutputGroup|"
Id="|ExpressionEvaluatorPackage;VSIXIdentifierProjectOutputGroup|" />
<Dependency d:ProjectName="VisualStudioTelemetry"
DisplayName="|VisualStudioTelemetry;VSIXNameProjectOutputGroup|"
Version="[|%CurrentProject%;GetBuildVersion|,)"
d:Source="Project"
d:InstallSource="Embed"
d:VsixSubPath="Vsixes"
Location="|VisualStudioTelemetry;VSIXContainerProjectOutputGroup|"
Id="|VisualStudioTelemetry;VSIXIdentifierProjectOutputGroup|" />
<Dependency d:ProjectName="VisualStudioDiagnosticsWindow"
DisplayName="|VisualStudioDiagnosticsWindow;VSIXNameProjectOutputGroup|"
Version="[|%CurrentProject%;GetBuildVersion|,)"
......
......@@ -43,13 +43,6 @@
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<VSIXSubPath>Vsixes</VSIXSubPath>
</ProjectReference>
<ProjectReference Include="..\..\..\VisualStudio\Telemetry\VisualStudioTelemetry.csproj">
<Project>{63fb8976-170e-4fb0-abb8-6a7070c55dc7}</Project>
<Name>VisualStudioTelemetry</Name>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<IncludeOutputGroupsInVSIX>VSIXContainerProjectOutputGroup%3b</IncludeOutputGroupsInVSIX>
<VSIXSubPath>Vsixes</VSIXSubPath>
</ProjectReference>
<ProjectReference Include="..\..\..\Compilers\Extension\CompilerExtension.csproj">
<Project>{43026D51-3083-4850-928D-07E1883D5B1A}</Project>
<Name>CompilerExtension</Name>
......
......@@ -74,15 +74,6 @@
Location="|ExpressionEvaluatorPackage;VSIXContainerProjectOutputGroup|"
Id="|ExpressionEvaluatorPackage;VSIXIdentifierProjectOutputGroup|" />
<Dependency d:ProjectName="VisualStudioTelemetry"
DisplayName="|VisualStudioTelemetry;VSIXNameProjectOutputGroup|"
Version="[|%CurrentProject%;GetBuildVersion|,)"
d:Source="Project"
d:InstallSource="Embed"
d:VsixSubPath="Vsixes"
Location="|VisualStudioTelemetry;VSIXContainerProjectOutputGroup|"
Id="|VisualStudioTelemetry;VSIXIdentifierProjectOutputGroup|" />
<Dependency d:ProjectName="VisualStudioDiagnosticsWindow"
DisplayName="|VisualStudioDiagnosticsWindow;VSIXNameProjectOutputGroup|"
Version="[|%CurrentProject%;GetBuildVersion|,)"
......
......@@ -93,7 +93,6 @@ Public Module BuildDevDivInsertionFiles
Private ReadOnly VsixesToInstall As String() = {
"Roslyn.VisualStudio.Setup.vsix",
"Microsoft.VisualStudio.LanguageServices.Telemetry.vsix",
"ExpressionEvaluatorPackage.vsix",
"Roslyn.VisualStudio.InteractiveComponents.vsix",
"Microsoft.VisualStudio.VsInteractiveWindow.vsix",
......
......@@ -21,7 +21,6 @@
<MSBuild Projects="MicrosoftCodeAnalysisVisualStudioSetup\Microsoft.CodeAnalysis.VisualStudio.Setup.swixproj" Targets="Build" />
<MSBuild Projects="MicrosoftCodeAnalysisVisualStudioSetupInteractive\Microsoft.CodeAnalysis.VisualStudio.Setup.Interactive.swixproj" Targets="Build" />
<MSBuild Projects="MicrosoftCodeAnalysisVisualStudioSetupNext\Microsoft.CodeAnalysis.VisualStudio.Setup.Next.swixproj" Targets="Build" />
<MSBuild Projects="MicrosoftCodeAnalysisVisualStudioTelemetry\Microsoft.CodeAnalysis.VisualStudio.Telemetry.swixproj" Targets="Build" />
</Target>
<ItemGroup>
......@@ -31,6 +30,5 @@
<MergeManifest Include="$(OutputPath)Microsoft.CodeAnalysis.VisualStudio.Setup.json" />
<MergeManifest Include="$(OutputPath)Microsoft.CodeAnalysis.VisualStudio.Setup.Interactive.json" />
<MergeManifest Include="$(OutputPath)Microsoft.CodeAnalysis.VisualStudio.Setup.Next.json" />
<MergeManifest Include="$(OutputPath)Microsoft.CodeAnalysis.VisualStudio.Telemetry.json" />
</ItemGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\..\..\..\build\Targets\ProducesNoOutput.Settings.targets" />
<Import Project="..\..\..\..\..\build\Targets\VSL.Versions.targets" />
<PropertyGroup>
<OutputArchitecture>neutral</OutputArchitecture>
<OutputLocalized>false</OutputLocalized>
<OutputPath>$(OutDir)Insertion</OutputPath>
<OutputType>manifest</OutputType>
</PropertyGroup>
<Import Project="$(NuGetPackageRoot)\MicroBuild.Core\$(MicroBuildVersion)\build\MicroBuild.Core.props" />
<PropertyGroup>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);Version=$(AssemblyVersion);NextVersion=$(NextAssemblyVersion);OutputPath=$(OutDir);LicenseUri=http://www.microsoft.com</PackagePreprocessorDefinitions>
<IntermediateOutputPath>$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<ItemGroup>
<Package Include="Microsoft.CodeAnalysis.VisualStudio.Telemetry.swr" />
</ItemGroup>
<Import Project="$(NuGetPackageRoot)\MicroBuild.Core\$(MicroBuildVersion)\build\MicroBuild.Core.targets" />
</Project>
use vs
package name=Microsoft.CodeAnalysis.VisualStudio.Telemetry
version=$(Version)
vs.package.chip=neutral
vs.package.language=en-us
vs.package.type=vsix
vs.package.vsixId=28354cb8-c808-4138-bfce-33aa846bbd51
vs.localizedResources
vs.localizedResource language=en-us
title="Roslyn Telemetry"
description="Telemetry implementation for Roslyn atop Visual Studio."
vs.payloads
vs.payload source=$(OutputPath)Microsoft.VisualStudio.LanguageServices.Telemetry.vsix
vs.dependencies
vs.dependency id=Microsoft.CodeAnalysis.VisualStudio.Setup
version=[$(Version),$(NextVersion))
type=Required
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
The list of VSIX extensions we produce and upload to myget.org. Currently the script (PostTest.ps1) that
we run after every signed build uploads all shipped extensions (minus Telemetry, which is internal) in
the VSIX folder to myget.org
we run after every signed build uploads all shipped extensions in the VSIX folder to myget.org
-->
<extensions>
<extension id="Roslyn.Deployment.Full" />
......
......@@ -9,7 +9,6 @@ try
{
$items = @(
"ExpressionEvaluatorPackage.vsix",
"Microsoft.VisualStudio.LanguageServices.Telemetry.vsix",
"Microsoft.VisualStudio.VsInteractiveWindow.vsix",
"Roslyn.VisualStudio.InteractiveComponents.vsix",
"Roslyn.VisualStudio.Setup.Interactive.vsix",
......@@ -19,7 +18,6 @@ try
"Microsoft.CodeAnalysis.VisualStudio.Setup.Interactive.json",
"Microsoft.CodeAnalysis.VisualStudio.Setup.json",
"Microsoft.CodeAnalysis.VisualStudio.Setup.Next.json",
"Microsoft.CodeAnalysis.VisualStudio.Telemetry.json",
"Microsoft.CodeAnalysis.VisualStudioInteractiveComponents.json",
"Microsoft.CodeAnalysis.VisualStudioInteractiveWindow.json",
"Microsoft.CodeAnalysis.LanguageServices.vsman",
......
......@@ -40,7 +40,6 @@
"Microsoft.VisualStudio.LanguageServices.dll",
"Microsoft.VisualStudio.LanguageServices.Implementation.dll",
"Microsoft.VisualStudio.LanguageServices.SolutionExplorer.dll",
"Microsoft.VisualStudio.LanguageServices.Telemetry.dll",
"Microsoft.VisualStudio.LanguageServices.VisualBasic.dll",
"Microsoft.VisualStudio.VisualBasic.Repl.dll",
"Microsoft.VisualStudio.VsInteractiveWindow.dll",
......@@ -87,7 +86,6 @@
"strongName": null,
"values": [
"ExpressionEvaluatorPackage.vsix",
"Microsoft.VisualStudio.LanguageServices.Telemetry.vsix",
"Microsoft.VisualStudio.VsInteractiveWindow.vsix",
"Roslyn.Compilers.Extension.vsix",
"Roslyn.Deployment.Full.vsix",
......
......@@ -148,6 +148,9 @@
<Compile Include="Options\NamingStylesOptionPage.cs" />
<Compile Include="Options\AdvancedOptionPageStrings.cs" />
<Compile Include="Options\IntelliSenseOptionPageStrings.cs" />
<Compile Include="Telemetry\CompilationErrorDetailDiscoverer.cs" />
<Compile Include="Telemetry\CompilationErrorDetails.cs" />
<Compile Include="Telemetry\CSharpCompilationErrorTelemetryIncrementalAnalyzer.cs" />
<Compile Include="Venus\CSharpAdditionalFormattingRuleLanguageService.cs" />
<Compile Include="CSharpPackage.cs" />
<Compile Include="CSharpVSResources.Designer.cs">
......@@ -269,4 +272,4 @@
<ImportGroup Label="Targets">
<Import Project="..\..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
</Project>
\ No newline at end of file
// 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;
using System.Runtime.InteropServices;
namespace Microsoft.Internal.VisualStudio.Shell.Interop
{
internal enum __SolutionWorkingFolder
{
SlnWF_All = -1,
SlnWF_StatePersistence = 1
}
[ComImport]
[Guid("774FAAAD-4311-4E92-8B8B-D2759666D9C6")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IVsSolutionWorkingFolders
{
void GetFolder([ComAliasName("Microsoft.Internal.VisualStudio.Shell.Interop.SolutionWorkingFolder")]uint location, Guid guidProject, bool fVersionSpecific, bool fEnsureCreated, out bool pfIsTemporary, out string pszBstrFullPath);
void GetMigrationFolder([ComAliasName("Microsoft.Internal.VisualStudio.Shell.Interop.SolutionWorkingFolder")]uint location, Guid guidProject, [ComAliasName("OLE.DWORD")]out uint pdwOldMajorVersion, out string pszOldLocation);
void ClearOldWorkingFolder([ComAliasName("Microsoft.Internal.VisualStudio.Shell.Interop.SolutionWorkingFolder")]uint location);
void ClearWorkingFolder([ComAliasName("Microsoft.Internal.VisualStudio.Shell.Interop.SolutionWorkingFolder")]uint location, bool fSaveAll, bool fReloadSolution);
}
[ComImport]
[Guid("3584678F-DA35-4F62-AB2A-8092B281C1FA")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IVsSolutionWorkingFoldersEvents
{
void OnQueryLocationChange([ComAliasName("Microsoft.Internal.VisualStudio.Shell.Interop.SolutionWorkingFolder")]uint location, out bool pfCanMoveContent);
void OnAfterLocationChange([ComAliasName("Microsoft.Internal.VisualStudio.Shell.Interop.SolutionWorkingFolder")]uint location, bool contentMoved);
}
}
......@@ -183,6 +183,13 @@
<Compile Include="Shared\LogicalStringComparer.cs" />
<Compile Include="Shared\VisualStudioImageMonikerService.cs" />
<Compile Include="SolutionEventMonitor.cs" />
<Compile Include="Telemetry\CodeMarkerLogger.cs" />
<Compile Include="Telemetry\ProjectTypeLookupService.cs" />
<Compile Include="Telemetry\ProjectTelemetryIncrementalAnalyzerProvider.cs" />
<Compile Include="Telemetry\RoslynTelemetrySetup.cs" />
<Compile Include="Telemetry\VSTelemetryActivityLogger.cs" />
<Compile Include="Telemetry\VSTelemetryCache.cs" />
<Compile Include="Telemetry\VSTelemetryLogger.cs" />
<Compile Include="Utilities\VSCodeAnalysisColors.cs" />
<Compile Include="Implementation\WorkspaceCacheService.cs" />
<Compile Include="Implementation\Workspace\WorkspaceFailureOutputPane.cs" />
......@@ -249,7 +256,6 @@
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.CSharp" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.Implementation" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.SolutionExplorer" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.Telemetry" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.ExternalDependencyServices" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.VisualBasic" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.CSharp.Repl" />
......@@ -395,7 +401,6 @@
<Compile Include="Implementation\GenerateType\VisualStudioGenerateTypeOptionsServiceFactory.cs" />
<Compile Include="Implementation\GoToDefinition\NavigableItemsPresenter.cs" />
<Compile Include="Implementation\Interop\Feedback.cs" />
<Compile Include="Implementation\Interop\IVsSolutionWorkingFoldersEvents.cs" />
<Compile Include="Implementation\LanguageService\HACK_AbstractCreateServicesOnUiThread.cs" />
<Compile Include="Implementation\Library\ObjectBrowser\AbstractListItemFactory.cs" />
<Compile Include="Implementation\Library\ObjectBrowser\AbstractObjectBrowserLibraryManager_ListItems.cs" />
......@@ -738,4 +743,4 @@
<ImportGroup Label="Targets">
<Import Project="..\..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -10,8 +10,8 @@
namespace Microsoft.VisualStudio.LanguageServices.Telemetry
{
[ExportWorkspaceService(typeof(IHostContextService), ServiceLayer.Host), Shared]
internal class HostContextService : IHostContextService
[ExportWorkspaceService(typeof(IProjectTypeLookupService), ServiceLayer.Host), Shared]
internal class ProjectTypeLookupService : IProjectTypeLookupService
{
public string GetProjectType(Workspace workspace, ProjectId projectId)
{
......
......@@ -20,7 +20,7 @@ public void Initialize(IServiceProvider serviceProvider)
var workspace = componentModel.GetService<VisualStudioWorkspace>();
// initialize host context on UI thread.
var hostContext = workspace.Services.GetService<IHostContextService>();
var projectTypeLookup = workspace.Services.GetService<IProjectTypeLookupService>();
// set initial logger
var optionService = workspace.Services.GetService<IOptionService>();
......
......@@ -2,6 +2,8 @@
"dependencies": {
"ManagedEsent": "1.9.2.0",
"Microsoft.CodeAnalysis.Elfie": "0.10.6-rc2",
"RoslynDependencies.Microsoft.Internal.VisualStudio.Shell.Interop.14.0.DesignTime": "14.3.25407",
"RoslynDependencies.Microsoft.Internal.Performance.CodeMarkers.DesignTime": "14.3.25407",
"RoslynDependencies.Microsoft.VisualStudio.Progression": "14.3.25407",
"RoslynDependencies.Microsoft.VisualStudio.GraphModel": "14.3.25407",
"RoslynDependencies.Microsoft.VisualStudio.CallHierarchy.Package.Definitions": "14.3.25407",
......
......@@ -298,6 +298,7 @@
<Compile Include="MockComponentModel.vb" />
<Compile Include="SymbolSearch\SymbolSearchServiceTests.vb" />
<Compile Include="Options\Style\NamingPreferences\NamingRuleDialogViewModelTests.vb" />
<Compile Include="Telemetry\VSTelemetryLoggerTest.vb" />
<Compile Include="Utilities\VsNavInfoHelpers.vb" />
<Compile Include="VsNavInfo\VsNavInfoTests.vb" />
<Compile Include="ObjectBrowser\AbstractObjectBrowserTests.vb" />
......@@ -391,4 +392,4 @@
<Import Project="..\..\..\..\build\Targets\VSL.Imports.targets" />
<Import Project="..\..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</ImportGroup>
</Project>
</Project>
\ No newline at end of file
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
Imports System.Threading
Imports Microsoft.CodeAnalysis.Internal.Log
Imports Microsoft.Internal.VisualStudio.Shell.Interop
Imports Microsoft.VisualStudio.LanguageServices.Telemetry
Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.Log
Public Class VSTelemetryLoggerTest
<Fact>
Public Sub TestNoLog()
Dim service = New Service()
Dim logger = New VSTelemetryLogger(service)
logger.Log(FunctionId.Debugging_EncSession_EditSession_EmitDeltaErrorId, LogMessage.Create("test"))
Assert.Equal(0, service.DefaultSession.PostedEvents.Cast(Of Service.TelemetryEvent)().Count())
End Sub
<Fact>
Public Sub TestLog()
Dim service = New Service()
Dim logger = New VSTelemetryLogger(service)
logger.Log(FunctionId.Debugging_EncSession_EditSession_EmitDeltaErrorId, KeyValueLogMessage.Create(
Sub(m)
m.Add("test", "1")
End Sub))
Dim postedEvent = service.DefaultSession.PostedEvents.Cast(Of Service.TelemetryEvent)().Single()
Assert.Equal("vs/ide/vbcs/debugging/encsession/editsession/emitdeltaerrorid", postedEvent.EventName)
Assert.Equal(1, postedEvent.Map.Count)
Dim kv = postedEvent.Map.Single()
Assert.Equal("vs.ide.vbcs.debugging.encsession.editsession.emitdeltaerrorid.test", kv.Key)
Assert.Equal("1", kv.Value)
End Sub
<Fact>
Public Sub TestNoLogBlockStart()
Dim service = New Service()
Dim logger = New VSTelemetryLogger(service)
logger.LogBlockStart(FunctionId.Debugging_EncSession_EditSession_EmitDeltaErrorId, LogMessage.Create("test"), 1, CancellationToken.None)
Assert.Equal(0, service.DefaultSession.PostedEvents.Cast(Of Service.TelemetryEvent)().Count())
End Sub
<Fact>
Public Sub TestLogBlockStart()
Dim service = New Service()
Dim logger = New VSTelemetryLogger(service)
logger.LogBlockStart(FunctionId.Debugging_EncSession_EditSession_EmitDeltaErrorId, KeyValueLogMessage.Create(
Sub(m)
m.Add("test", "2")
End Sub), 1, CancellationToken.None)
Dim postedEvent = service.DefaultSession.PostedEvents.Cast(Of Service.TelemetryEvent)().Single()
Assert.Equal("vs/ide/vbcs/debugging/encsession/editsession/emitdeltaerrorid/start", postedEvent.EventName)
Assert.Equal(2, postedEvent.Map.Count)
Assert.Equal("1", postedEvent.Map("vs.ide.vbcs.debugging.encsession.editsession.emitdeltaerrorid.blockid"))
Assert.Equal("2", postedEvent.Map("vs.ide.vbcs.debugging.encsession.editsession.emitdeltaerrorid.test"))
End Sub
<Fact>
Public Sub TestNoLogBlockEnd()
Dim service = New Service()
Dim logger = New VSTelemetryLogger(service)
logger.LogBlockEnd(FunctionId.Debugging_EncSession_EditSession_EmitDeltaErrorId, LogMessage.Create("test"), 1, 123, CancellationToken.None)
Assert.Equal(0, service.DefaultSession.PostedEvents.Cast(Of Service.TelemetryEvent)().Count())
End Sub
<Fact>
Public Sub TestLogBlockEnd()
Dim service = New Service()
Dim logger = New VSTelemetryLogger(service)
logger.LogBlockEnd(FunctionId.Debugging_EncSession_EditSession_EmitDeltaErrorId, KeyValueLogMessage.Create(
Sub(m)
m.Add("test", "2")
End Sub), 1, 123, CancellationToken.None)
Dim postedEvent = service.DefaultSession.PostedEvents.Cast(Of Service.TelemetryEvent)().Single()
Assert.Equal("vs/ide/vbcs/debugging/encsession/editsession/emitdeltaerrorid/end", postedEvent.EventName)
Assert.Equal(3, postedEvent.Map.Count)
Assert.Equal("1", postedEvent.Map("vs.ide.vbcs.debugging.encsession.editsession.emitdeltaerrorid.blockid"))
Assert.Equal("False", postedEvent.Map("vs.ide.vbcs.debugging.encsession.editsession.emitdeltaerrorid.cancellationrequested"))
Assert.Equal("123", postedEvent.Map("vs.ide.vbcs.debugging.encsession.editsession.emitdeltaerrorid.duration"))
End Sub
<Fact>
Public Sub TestLogBlockEndCacellation()
Dim service = New Service()
Dim logger = New VSTelemetryLogger(service)
Dim cancellation = New CancellationTokenSource()
cancellation.Cancel()
logger.LogBlockEnd(FunctionId.Debugging_EncSession_EditSession_EmitDeltaErrorId, KeyValueLogMessage.Create(
Sub(m)
m.Add("test", "2")
End Sub), 1, 123, cancellation.Token)
Dim postedEvent = service.DefaultSession.PostedEvents.Cast(Of Service.TelemetryEvent)().Single()
Assert.Equal("vs/ide/vbcs/debugging/encsession/editsession/emitdeltaerrorid/end", postedEvent.EventName)
Assert.Equal(3, postedEvent.Map.Count)
Assert.Equal("1", postedEvent.Map("vs.ide.vbcs.debugging.encsession.editsession.emitdeltaerrorid.blockid"))
Assert.Equal("True", postedEvent.Map("vs.ide.vbcs.debugging.encsession.editsession.emitdeltaerrorid.cancellationrequested"))
Assert.Equal("123", postedEvent.Map("vs.ide.vbcs.debugging.encsession.editsession.emitdeltaerrorid.duration"))
End Sub
Public Class Service
Implements IVsTelemetryService
Public ReadOnly DefaultSession As Session = New Session()
Public Function CreateEvent(szEventName As String) As IVsTelemetryEvent Implements IVsTelemetryService.CreateEvent
Return New TelemetryEvent(szEventName)
End Function
Public Function GetDefaultSession() As IVsTelemetrySession Implements IVsTelemetryService.GetDefaultSession
Return DefaultSession
End Function
Public Function CreateActivity(szActivityName As String) As IVsTelemetryActivity Implements IVsTelemetryService.CreateActivity
Throw New NotImplementedException()
End Function
Public Function CreateActivityWithParentCorrelationId(szActivityName As String, ByRef parentCorrelationId As Guid) As IVsTelemetryActivity Implements IVsTelemetryService.CreateActivityWithParentCorrelationId
Throw New NotImplementedException()
End Function
Public Function CreatePropertyBag() As IVsTelemetryPropertyBag Implements IVsTelemetryService.CreatePropertyBag
Throw New NotImplementedException()
End Function
Public Class Session
Implements IVsTelemetrySession
Public ReadOnly PostedEvents As List(Of IVsTelemetryEvent) = New List(Of IVsTelemetryEvent)()
Public Sub PostBoolProperty(szPropertyName As String, value As Boolean) Implements IVsTelemetrySession.PostBoolProperty
End Sub
Public Sub PostDoubleProperty(szPropertyName As String, value As Double) Implements IVsTelemetrySession.PostDoubleProperty
End Sub
Public Sub PostEvent(eventObject As IVsTelemetryEvent) Implements IVsTelemetrySession.PostEvent
PostedEvents.Add(eventObject)
End Sub
Public Sub PostIntProperty(szPropertyName As String, value As Integer) Implements IVsTelemetrySession.PostIntProperty
End Sub
Public Sub PostLongProperty(szPropertyName As String, value As Long) Implements IVsTelemetrySession.PostLongProperty
End Sub
Public Sub PostProperty(szPropertyName As String, varValue As Object) Implements IVsTelemetrySession.PostProperty
End Sub
Public Sub PostShortProperty(szPropertyName As String, value As Short) Implements IVsTelemetrySession.PostShortProperty
End Sub
Public Sub PostSimpleEvent(szEventName As String) Implements IVsTelemetrySession.PostSimpleEvent
PostedEvents.Add(New TelemetryEvent(szEventName))
End Sub
Public Sub PostStringProperty(szPropertyName As String, szValue As String) Implements IVsTelemetrySession.PostStringProperty
End Sub
Public Sub RemoveSharedProperty(szPropertyName As String) Implements IVsTelemetrySession.RemoveSharedProperty
End Sub
Public Sub SetSharedBoolProperty(szPropertyName As String, value As Boolean) Implements IVsTelemetrySession.SetSharedBoolProperty
End Sub
Public Sub SetSharedDoubleProperty(szPropertyName As String, value As Double) Implements IVsTelemetrySession.SetSharedDoubleProperty
End Sub
Public Sub SetSharedIntProperty(szPropertyName As String, value As Integer) Implements IVsTelemetrySession.SetSharedIntProperty
End Sub
Public Sub SetSharedLongProperty(szPropertyName As String, value As Long) Implements IVsTelemetrySession.SetSharedLongProperty
End Sub
Public Sub SetSharedProperty(szPropertyName As String, varValue As Object) Implements IVsTelemetrySession.SetSharedProperty
End Sub
Public Sub SetSharedShortProperty(szPropertyName As String, value As Short) Implements IVsTelemetrySession.SetSharedShortProperty
End Sub
Public Sub SetSharedStringProperty(szPropertyName As String, szValue As String) Implements IVsTelemetrySession.SetSharedStringProperty
End Sub
Public Function CreateContext(szContextName As String) As IVsTelemetryContext Implements IVsTelemetrySession.CreateContext
Throw New NotImplementedException()
End Function
Public Function GetSessionId() As String Implements IVsTelemetrySession.GetSessionId
Return "1"
End Function
Public Function CanCollectPrivateInformation() As Boolean Implements IVsTelemetrySession.CanCollectPrivateInformation
Return True
End Function
Public Function IsUserMicrosoftInternal() As Boolean Implements IVsTelemetrySession.IsUserMicrosoftInternal
Return True
End Function
Public Function IsUserOptedIn() As Boolean Implements IVsTelemetrySession.IsUserOptedIn
Return True
End Function
Public Function SerializeSettings() As String Implements IVsTelemetrySession.SerializeSettings
Return "SerializedSettings"
End Function
Public Sub SetUserOptedIn(IsUserOptedIn As Boolean) Implements IVsTelemetrySession.SetUserOptedIn
Throw New NotImplementedException()
End Sub
Public Sub RegisterPropertyBag(szPropertyBagName As String, pPropertyBag As IVsTelemetryPropertyBag) Implements IVsTelemetrySession.RegisterPropertyBag
Throw New NotImplementedException()
End Sub
Public Function GetPropertyBag(szPropertyBagName As String) As IVsTelemetryPropertyBag Implements IVsTelemetrySession.GetPropertyBag
Throw New NotImplementedException()
End Function
Public Sub UnregisterPropertyBag(szPropertyBagName As String) Implements IVsTelemetrySession.UnregisterPropertyBag
Throw New NotImplementedException()
End Sub
Public Sub PostPiiProperty(szPropertyName As String, varValue As Object) Implements IVsTelemetrySession.PostPiiProperty
Throw New NotImplementedException()
End Sub
Public Sub PostIntPiiProperty(szPropertyName As String, varValue As Integer) Implements IVsTelemetrySession.PostIntPiiProperty
Throw New NotImplementedException()
End Sub
Public Sub PostLongPiiProperty(szPropertyName As String, varValue As Long) Implements IVsTelemetrySession.PostLongPiiProperty
Throw New NotImplementedException()
End Sub
Public Sub PostDoublePiiProperty(szPropertyName As String, varValue As Double) Implements IVsTelemetrySession.PostDoublePiiProperty
Throw New NotImplementedException()
End Sub
Public Sub PostStringPiiProperty(szPropertyName As String, varValue As String) Implements IVsTelemetrySession.PostStringPiiProperty
Throw New NotImplementedException()
End Sub
Public Sub SetSharedPiiProperty(szPropertyName As String, varValue As Object) Implements IVsTelemetrySession.SetSharedPiiProperty
Throw New NotImplementedException()
End Sub
Public Sub SetSharedIntPiiProperty(szPropertyName As String, varValue As Integer) Implements IVsTelemetrySession.SetSharedIntPiiProperty
Throw New NotImplementedException()
End Sub
Public Sub SetSharedLongPiiProperty(szPropertyName As String, varValue As Long) Implements IVsTelemetrySession.SetSharedLongPiiProperty
Throw New NotImplementedException()
End Sub
Public Sub SetSharedDoublePiiProperty(szPropertyName As String, varValue As Double) Implements IVsTelemetrySession.SetSharedDoublePiiProperty
Throw New NotImplementedException()
End Sub
Public Sub SetSharedStringPiiProperty(szPropertyName As String, varValue As String) Implements IVsTelemetrySession.SetSharedStringPiiProperty
Throw New NotImplementedException()
End Sub
Public Function GetSharedProperty(szPropertyName As String) As Object Implements IVsTelemetrySession.GetSharedProperty
Throw New NotImplementedException()
End Function
Public Function GetContext(szContextName As String) As IVsTelemetryContext Implements IVsTelemetrySession.GetContext
Throw New NotImplementedException()
End Function
End Class
Public Class TelemetryEvent
Implements IVsTelemetryEvent
Public ReadOnly EventName As String
Public ReadOnly Map As Dictionary(Of String, String) = New Dictionary(Of String, String)()
Public Sub New(eventName As String)
Me.EventName = eventName
End Sub
Public ReadOnly Property AllPropertyNames As Array Implements IVsTelemetryEvent.AllPropertyNames
Get
Throw New NotImplementedException()
End Get
End Property
Public Sub AddPropertyBag(pPropertyBag As IVsTelemetryPropertyBag) Implements IVsTelemetryEvent.AddPropertyBag
Throw New NotImplementedException()
End Sub
Public Sub RemovePropertyBag(pPropertyBag As IVsTelemetryPropertyBag) Implements IVsTelemetryEvent.RemovePropertyBag
Throw New NotImplementedException()
End Sub
Public Sub SetBoolProperty(szPropertyName As String, value As Boolean) Implements IVsTelemetryEvent.SetBoolProperty
Map(szPropertyName) = value.ToString()
End Sub
Public Sub SetDoublePiiProperty(szPropertyName As String, varValue As Double) Implements IVsTelemetryEvent.SetDoublePiiProperty
Throw New NotImplementedException()
End Sub
Public Sub SetDoubleProperty(szPropertyName As String, value As Double) Implements IVsTelemetryEvent.SetDoubleProperty
Map(szPropertyName) = value.ToString()
End Sub
Public Sub SetIntPiiProperty(szPropertyName As String, varValue As Integer) Implements IVsTelemetryEvent.SetIntPiiProperty
Throw New NotImplementedException()
End Sub
Public Sub SetIntProperty(szPropertyName As String, value As Integer) Implements IVsTelemetryEvent.SetIntProperty
Map(szPropertyName) = value.ToString()
End Sub
Public Sub SetLongPiiProperty(szPropertyName As String, varValue As Long) Implements IVsTelemetryEvent.SetLongPiiProperty
Throw New NotImplementedException()
End Sub
Public Sub SetLongProperty(szPropertyName As String, value As Long) Implements IVsTelemetryEvent.SetLongProperty
Map(szPropertyName) = value.ToString()
End Sub
Public Sub SetOptOutFriendlyFlag(bOptOutFriendly As Boolean) Implements IVsTelemetryEvent.SetOptOutFriendlyFlag
Throw New NotImplementedException()
End Sub
Public Sub SetPiiProperty(szPropertyName As String, varValue As Object) Implements IVsTelemetryEvent.SetPiiProperty
Throw New NotImplementedException()
End Sub
Public Sub SetProperty(szPropertyName As String, varValue As Object) Implements IVsTelemetryEvent.SetProperty
Map(szPropertyName) = varValue.ToString()
End Sub
Public Sub SetShortProperty(szPropertyName As String, value As Short) Implements IVsTelemetryEvent.SetShortProperty
Map(szPropertyName) = value.ToString()
End Sub
Public Sub SetStringPiiProperty(szPropertyName As String, varValue As String) Implements IVsTelemetryEvent.SetStringPiiProperty
Throw New NotImplementedException()
End Sub
Public Sub SetStringProperty(szPropertyName As String, szValue As String) Implements IVsTelemetryEvent.SetStringProperty
Map(szPropertyName) = szValue
End Sub
Public Function ContainsProperty(szPropertyName As String) As Boolean Implements IVsTelemetryEvent.ContainsProperty
Return Map.ContainsKey(szPropertyName)
End Function
'Public Function GetAllPropertiesNames() As Array Implements IVsTelemetryEvent.GetAllPropertiesNames
' Return Map.ToArray()
'End Function
Public Function GetName() As String Implements IVsTelemetryEvent.GetName
Return Me.EventName
End Function
Public Function GetProperty(szPropertyName As String) As Object Implements IVsTelemetryEvent.GetProperty
Return Map(szPropertyName)
End Function
End Class
End Class
End Class
End Namespace
// 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 Microsoft.VisualStudio.Shell;
using Roslyn.VisualStudio.Setup;
// This assembly doesn't contain any components that are referencable or need binding redirects for API compatibility.
// This is purely so experimental versions of the VSIX can be installed and load the right assembly.
[assembly: ProvideRoslynBindingRedirection("Microsoft.VisualStudio.LanguageServices.Telemetry.dll")]
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="Settings">
<Import Project="..\..\..\build\Targets\VSL.Settings.targets" />
</ImportGroup>
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<Platform Condition="'$(Platform)' == ''">x86</Platform>
<ProjectTypeGuids>{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<ProjectGuid>{63FB8976-170E-4FB0-ABB8-6A7070C55DC7}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Microsoft.VisualStudio.LanguageServices.Telemetry</RootNamespace>
<AssemblyName>Microsoft.VisualStudio.LanguageServices.Telemetry</AssemblyName>
<VSSDKTargetPlatformRegRootSuffix>RoslynDev</VSSDKTargetPlatformRegRootSuffix>
<IncludeAssemblyInVSIXContainer>true</IncludeAssemblyInVSIXContainer>
<IncludeDebugSymbolsInVSIXContainer>false</IncludeDebugSymbolsInVSIXContainer>
<IncludeDebugSymbolsInLocalVSIXDeployment>true</IncludeDebugSymbolsInLocalVSIXDeployment>
<StartAction>Program</StartAction>
<StartProgram>$(DevEnvDir)devenv.exe</StartProgram>
<StartArguments>/rootsuffix RoslynDev /log</StartArguments>
<PlatformTarget>x86</PlatformTarget>
<MinimumVisualStudioVersion>$(VisualStudioVersion)</MinimumVisualStudioVersion>
<ImportVSSDKTargets>true</ImportVSSDKTargets>
<SolutionDir Condition="'$(SolutionDir)' == '' OR '$(SolutionDir)' == '*Undefined*'">..\..\..\</SolutionDir>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
</PropertyGroup>
<ItemGroup Label="Project References">
<ProjectReference Include="..\..\..\src\Compilers\Core\Portable\CodeAnalysis.csproj">
<Project>{1ee8cad3-55f9-4d91-96b2-084641da9a6c}</Project>
<Name>CodeAnalysis</Name>
<IncludeOutputGroupsInVSIX>
</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>
</IncludeOutputGroupsInVSIXLocalOnly>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\Compilers\CSharp\Portable\CSharpCodeAnalysis.csproj">
<Project>{b501a547-c911-4a05-ac6e-274a50dff30e}</Project>
<Name>CSharpCodeAnalysis</Name>
<IncludeOutputGroupsInVSIX>
</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>
</IncludeOutputGroupsInVSIXLocalOnly>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\EditorFeatures\Core\EditorFeatures.csproj">
<Project>{3cdeeab7-2256-418a-beb2-620b5cb16302}</Project>
<Name>EditorFeatures</Name>
<IncludeOutputGroupsInVSIX>
</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>
</IncludeOutputGroupsInVSIXLocalOnly>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\Workspaces\Core\Desktop\Workspaces.Desktop.csproj">
<Project>{2e87fa96-50bb-4607-8676-46521599f998}</Project>
<Name>Workspaces.Desktop</Name>
<IncludeOutputGroupsInVSIX>
</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>
</IncludeOutputGroupsInVSIXLocalOnly>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\Workspaces\Core\Portable\Workspaces.csproj">
<Project>{5f8d2414-064a-4b3a-9b42-8e2a04246be5}</Project>
<Name>Workspaces</Name>
<IncludeOutputGroupsInVSIX>
</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>
</IncludeOutputGroupsInVSIXLocalOnly>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\Features\Core\Portable\Features.csproj">
<Project>{edc68a0e-c68d-4a74-91b7-bf38ec909888}</Project>
<Name>Features</Name>
<IncludeOutputGroupsInVSIX>
</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>
</IncludeOutputGroupsInVSIXLocalOnly>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\VisualStudio\Core\Def\ServicesVisualStudio.csproj">
<Project>{86FD5B9A-4FA0-4B10-B59F-CFAF077A859C}</Project>
<Name>ServicesVisualStudio</Name>
<IncludeOutputGroupsInVSIX>
</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>
</IncludeOutputGroupsInVSIXLocalOnly>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\VisualStudio\CSharp\Impl\CSharpVisualStudio.csproj">
<Project>{5DEFADBD-44EB-47A2-A53E-F1282CC9E4E9}</Project>
<Name>CSharpVisualStudio</Name>
<IncludeOutputGroupsInVSIX>
</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>
</IncludeOutputGroupsInVSIXLocalOnly>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\VisualStudio\VisualBasic\Impl\BasicVisualStudio.vbproj">
<Project>{D49439D7-56D2-450F-A4F0-74CB95D620E6}</Project>
<Name>BasicVisualStudio</Name>
<IncludeOutputGroupsInVSIX>
</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>
</IncludeOutputGroupsInVSIXLocalOnly>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\VisualStudio\Setup\VisualStudioSetup.csproj">
<Project>{201EC5B7-F91E-45E5-B9F2-67A266CCE6FC}</Project>
<Name>VisualStudioSetup</Name>
<Private>False</Private>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
</PropertyGroup>
<ItemGroup>
<None Include="project.json" />
<None Include="source.extension.vsixmanifest">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\VisualStudio\Setup\ProvideRoslynBindingRedirection.cs">
<Link>ProvideRoslynBindingRedirection.cs</Link>
</Compile>
<Compile Include="AssemblyRedirects.cs" />
<Compile Include="HostContextService.cs" />
<Compile Include="ProjectTelemetryIncrementalAnalyzerProvider.cs" />
<Compile Include="CodeMarkerLogger.cs" />
<Compile Include="RoslynTelemetrySetup.cs" />
<Compile Include="VSTelemetryActivityLogger.cs" />
<Compile Include="VSTelemetryCache.cs" />
<Compile Include="VSTelemetryLogger.cs" />
<Compile Include="CSharpCompilationErrorTelemetryIncrementalAnalyzer.cs" />
<Compile Include="CompilationErrorDetailDiscoverer.cs" />
<Compile Include="CompilationErrorDetails.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.XML" />
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ImportGroup Label="Targets">
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
<ItemGroup>
<InternalsVisibleToTest Include="Roslyn.VisualStudio.Closed.UnitTests" />
</ItemGroup>
</Project>
{
"dependencies": {
"RoslynDependencies.Microsoft.VisualStudio.ComponentModelHost": "14.3.25407",
"RoslynDependencies.Microsoft.Internal.Performance.CodeMarkers.DesignTime": "14.3.25407",
"RoslynDependencies.Microsoft.Internal.VisualStudio.Shell.Interop.14.0.DesignTime": "14.3.25407"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7-x64" : {},
"win7-x86" : {}
}
}
<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
<Identity Id="28354cb8-c808-4138-bfce-33aa846bbd51" Version="|%CurrentProject%;GetBuildVersion|" Language="en-US" Publisher="Microsoft" />
<DisplayName>Roslyn Telemetry</DisplayName>
<Description>Telemetry implementation for Roslyn atop Visual Studio.</Description>
<ShortcutPath>..\CommonExtensions\Microsoft\ManagedLanguages\VBCSharp\Telemetry</ShortcutPath>
</Metadata>
<Installation Experimental="true">
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[14.0,]" />
<InstallationTarget Version="[14.0,]" Id="Microsoft.VisualStudio.VSWinDesktopExpress" />
<InstallationTarget Version="[14.0,]" Id="Microsoft.VisualStudio.VWDExpress" />
<InstallationTarget Version="[14.0,]" Id="Microsoft.VisualStudio.VSWinExpress" />
</Installation>
<Installer>
<Actions>
<Action Type="Ngen" Path="Microsoft.VisualStudio.LanguageServices.Telemetry.dll" />
</Actions>
</Installer>
<Dependencies>
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.5,)" />
<Dependency Version="[|VisualStudioSetup;GetBuildVersion|,]" DisplayName="Roslyn Language Services" Id="0b5e8ddb-f12d-4131-a71d-77acc26a798f" />
</Dependencies>
<Assets>
<Asset Type="Microsoft.VisualStudio.MefComponent" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%|" />
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
</Assets>
</PackageManifest>
......@@ -113,7 +113,6 @@
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.CSharp" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.Implementation" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.SolutionExplorer" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.Telemetry" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.VisualBasic" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.InteractiveServices" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.InteractiveFeatures" />
......@@ -153,4 +152,4 @@
<ImportGroup Label="Targets">
<Import Project="..\..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
// 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;
namespace Microsoft.CodeAnalysis.Host
{
/// <summary>
/// Provide host specific information if host supports it.
/// </summary>
internal interface IHostContextService : IWorkspaceService
internal interface IProjectTypeLookupService : IWorkspaceService
{
string GetProjectType(Workspace workspace, ProjectId projectId);
}
......
......@@ -5,8 +5,8 @@
namespace Microsoft.CodeAnalysis.Host.HostContext
{
[ExportWorkspaceService(typeof(IHostContextService), ServiceLayer.Default), Shared]
internal class HostContextService : IHostContextService
[ExportWorkspaceService(typeof(IProjectTypeLookupService), ServiceLayer.Default), Shared]
internal class ProjectTypeLookupService : IProjectTypeLookupService
{
private const string CSharpProjectType = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}";
private const string VisualBasicProjectType = "{F184B08F-C81C-45F6-A57F-5ABD9991F28F}";
......
......@@ -264,7 +264,6 @@
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.CSharp" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.Implementation" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.SolutionExplorer" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.Telemetry" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.VisualBasic" />
<InternalsVisibleTo Include="csi" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.CSharp.InteractiveEditorFeatures" />
......@@ -659,8 +658,8 @@
<Compile Include="Utilities\ObjectPools\PooledObject.cs" />
<Compile Include="Workspace\Host\Caching\IWorkspaceCacheService.cs" />
<Compile Include="Workspace\Host\CommandLine\ICommandLineParserService.cs" />
<Compile Include="Workspace\Host\HostContext\HostContextService.cs" />
<Compile Include="Workspace\Host\HostContext\IHostContextService.cs" />
<Compile Include="Workspace\Host\HostContext\ProjectTypeLookupService.cs" />
<Compile Include="Workspace\Host\HostContext\IProjectTypeLookupService.cs" />
<Compile Include="Workspace\Host\Mef\ILanguagesMetadata.cs" />
<Compile Include="Workspace\Host\Mef\CodeChangeProviderMetadata.cs" />
<Compile Include="Workspace\Host\Mef\IMefHostExportProvider.cs" />
......@@ -1023,4 +1022,4 @@
<ImportGroup Label="Targets">
<Import Project="..\..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册