Merge pull request #1913 from microsoft/develop

merge DEVELOP to MASTER (prep 2.15-beta2)
This commit is contained in:
Rajkumar Rangaraj 2020-06-12 11:12:31 -07:00 коммит произвёл GitHub
Родитель 1e0779e49a 19b5cb7240
Коммит 3516871648
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
420 изменённых файлов: 4593 добавлений и 4550 удалений

81
.docs/concepts.md Normal file
Просмотреть файл

@ -0,0 +1,81 @@
# Application Insights DotNet SDK Concepts
This lists the high level concepts of the AI DotNet SDK and links to detailed guides to help you get started.
To use the Application Insights SDK you must configure an Instrumentation Key which can be [obtained from an Application Insights resource](https://docs.microsoft.com/azure/azure-monitor/app/create-new-resource).
Or you can use a [Connection string](https://docs.microsoft.com/azure/azure-monitor/app/sdk-connection-string?tabs=net) to simplify the configuration of our endpoints.
Both an Instrumentation Key and Connection String are provided for you on the Overivew Dashboard of your Application Insights resource.
## TelemetryClient
The `TelemetryClient` object is the primary root object for the library.
Almost all functionality around telemetry sending is located on this object.
### Initialization
You must initialize an instance of this object and populate it with your Instrumentation Key to identify your data.
```C#
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
var configuration = new TelemetryConfiguration
{
ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000",
};
var tc = new TelemetryClient(configuration);
```
### Using the TelemetryClient to send telemetry
You can populate common context on the `TelemetryClient.context` property which will be automatically attached to each telemetry item sent.
You can also attach additional property data to each telemetry item sent.
The `TelemetryClient` also exposes several `Track` methods that can be used to send all telemetry types understood by the Application Insights service. Some example use cases are shown below.
Please review the full [API summary for custom events and metrics](https://docs.microsoft.com/azure/azure-monitor/app/api-custom-events-metrics) for more examples.
```C#
tc.Context.Device.OperatingSystem = Environment.OSVersion.ToString();
tc.TrackTrace(message: "Custom message.");
tc.TrackEvent(
eventName: "PurchaseOrderSubmitted",
properties: new Dictionary<string, string>() { { "CouponCode", "JULY2015" } },
metrics: new Dictionary<string, double>() { { "OrderTotal", 68.99 }, { "ItemsOrdered", 5 } }
);
try
{
// do something
}
catch(Exception ex)
{
tc.TrackException(ex);
}
```
## Telemetry Channels
Telemetry channels are responsible for sending the telemetry data to the designated place. Optional features can be provided by the telemetry channels, for example, buffering the data and sending in them in batches, persisting the data to a local storage in case of transmission failure (e.g. network outage), traffic shaping and retry mechanisms
The .NET and .NET Core versions of the SDKs provide two built-in telemetry channels:
- [InMemoryChannel](https://github.com/microsoft/ApplicationInsights-dotnet/blob/develop/BASE/src/Microsoft.ApplicationInsights/Channel/InMemoryChannel.cs): A lightweight channel that buffers items in memory until they're sent. Items are buffered in memory and flushed once every 30 seconds, or whenever 500 items are buffered.
- [ServerTelemetryChannel](https://github.com/microsoft/ApplicationInsights-dotnet/blob/develop/BASE/src/ServerTelemetryChannel/ServerTelemetryChannel.cs): A more advanced channel that has retry policies and the capability to store data on a local disk.
Please review our full guide on [Telemetry Channels in Application Insights](https://docs.microsoft.com/azure/azure-monitor/app/telemetry-channels).
## TelemetryProcessors and TelemetryInitializers
You can write and configure plug-ins for the Application Insights SDK to customize how telemetry can be enriched and processed before it's sent to the Application Insights service.
Please review our full guide on [Filtering and preprocessing telemetry](https://docs.microsoft.com/azure/azure-monitor/app/api-filtering-sampling).
## Telemetry correlation
Application Insights supports distributed telemetry correlation, which you use to detect which component is responsible for failures or performance degradation.
Please review our full guide on [Telemetry correlation in Application Insights](https://docs.microsoft.com/azure/azure-monitor/app/correlation).
## Custom metric collection
The Azure Monitor Application Insights .NET and .NET Core SDKs have two different methods of collecting custom metrics, `TrackMetric()`, and `GetMetric()`. The key difference between these two methods is local aggregation.
Please review our full guide on [Custom metric collection in .NET and .NET Core](https://docs.microsoft.com/azure/azure-monitor/app/get-metric).
## Sampling
Sampling is the recommended way to reduce telemetry traffic, data costs, and storage costs, while preserving a statistically correct analysis of application data.
Please review our full guide on [Sampling in Application Insights](https://docs.microsoft.com/azure/azure-monitor/app/sampling).

89
.github/CONTRIBUTING.md поставляемый
Просмотреть файл

@ -1,14 +1,19 @@
# How to Contribute
If you're interested in contributing, take a look at the general [contributer's guide](https://github.com/Microsoft/ApplicationInsights-Home/blob/master/CONTRIBUTING.md) first and continue here.
- Please read the general [contributor's guide](https://github.com/Microsoft/ApplicationInsights-Home/blob/master/CONTRIBUTING.md) located in the ApplicationInsights-Home repository
- If making a large change we request that you open an [issue](https://github.com/Microsoft/ApplicationInsights-dotnet/issues) first.
- We follow the [Git Flow](http://nvie.com/posts/a-successful-git-branching-model/) approach to branching.
- This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
## Solutions
- Everything.sln - this will build all projects and tests.
- Everything.sln - this will build all projects and unit tests.
- ProjectsForSigning.sln - this builds all shipping projects.
- IntegrationTests.sln - this builds all Net Core Integration tests.
- BASE\Microsoft.ApplicationInsights.sln - this builds the Base SDK and ServerTelemetryChannel.
- WEB\Microsoft.ApplicationInsights.Web.sln - this builds the ASP.Net projects.
- WEB\dirs.proj - this builds the functional tests which rely on docker.
- NETCORE\ApplicationInsights.AspNetCore.sln - this builds the .Net Core projects.
- LOGGING\Logging.sln - this builds the logging adapters.
@ -17,41 +22,16 @@ If you're interested in contributing, take a look at the general [contributer's
## Build
To successfully build the sources on your machine, make sure you've installed the following prerequisites:
* Visual Studio 2017 Community or Enterprise
* .NET 4.6
* .NET Core SDK 1.1.7
* .NET Core SDK 2.0 or above.(https://www.microsoft.com/net/download/windows)
- Visual Studio 2019 Community or Enterprise
- .NET SDKs (https://dotnet.microsoft.com/download)
- .NET 4.8
- .NET Core 3.1 SDK
If using Azure VM, the following image from Microsoft contains the above pre-requisites already installed.
_Visual Studio Enterprise 2017 (latest release) on Windows Server 2016._
Once you've installed the prerequisites execute either ```buildDebug.cmd``` or ```buildRelease.cmd``` script in the repository root to build the project (excluding functional tests) locally.
```buildRelease.cmd``` also runs StlyeCop checks, and is required before merging any pull requests.
You can also open the solutions in Visual Studio and build directly from there.
## Unit Tests
Several tests require that you configure a strong name verification exception for Microsoft.WindowsAzure.ServiceRuntime.dll using the [Strong Name Tool](https://msdn.microsoft.com/en-us/library/k5b5tt23(v=vs.110).aspx).
Using the Developer Command Prompt as Administrator, run this command from the repository root to register the assembly for verification skipping. (after building Microsoft.ApplicationInsights.Web.sln)
"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.1 Tools\sn.exe" -Vr ..\bin\Debug\Src\WindowsServer\WindowsServer.Net45.Tests\Microsoft.WindowsAzure.ServiceRuntime.dll
(Depending on you OS version, the above exe may be located in different folder. Modify the path according to local path).
Once you've configured the strong name verification, execute the ```runUnitTests.cmd``` script in the repository root.
If the script fail with errors like unable to find path to Visual Studio Test runner, please edit the helper script to match you local installation of Visual Studio.
You can also run the tests within Visual Studio using the test explorer. If test explorer is not showing all the tests, please make sure you have installed all updates to Visual Studio.
You can remove the strong name verification exception by running this command as Administrator:
"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.1 Tools\sn.exe" -Vr ..\bin\Debug\Src\WindowsServer\WindowsServer.Net45.Tests\Microsoft.WindowsAzure.ServiceRuntime.dll
Unit tests can be run in either the Visual Studio Test Exploror or via command line `dotnet test`.
## Functional Tests
It is recommended to rely on unit tests to test functionalities wherever possible. For doing end-to-end validation, functional tests exists for all the modules. Unless doing significant changes,
@ -62,18 +42,18 @@ These tests works like described below:
Functional tests contain test apps which refers to the product dlls from the local build. Tests deploy the Test apps to IIS/Docker and http requests are fired against it to trigger various scenarios.
Tests apps are modified to send telemetry to a fake ingestion endpoint controlled by tests. Tests then validate the telemetry received by this endpoint.
Pre-requisites:
### Pre-requisites:
To execute the functional tests, you need to install some additional prerequisites:
For Web and PerformanceCollector tests IIS Express should be installed.
- For **Web** and **PerformanceCollector** tests IIS Express should be installed.
For Dependency Collector, you need to install Docker for windows as these tests need several additional dependencies to be deployed like SQL Server, Azure Emulator etc, and these are deployed as Docker containers.
- For **Dependency Collector**, you need to install Docker for windows as these tests need several additional dependencies to be deployed like SQL Server and Azure Emulator.
Docker for Windows (https://docs.docker.com/docker-for-windows/install/).
After installation switch Docker engine to Windows Containers.(https://blogs.msdn.microsoft.com/webdev/2017/09/07/getting-started-with-windows-containers/)
And finally, make sure you can run ```docker run hello-world``` successfully to confirm that your machine is Docker ready.
Running functional tests:
### Running functional tests:
Before running the functional tests, the product code should be built following 'Build' instructions above.
@ -96,7 +76,7 @@ Helper script to build product and run all tests in this solution - ```runFuncti
"..bin\Debug\Test\E2ETests" -- Binary location for Test and Test apps.
Special Notes regarding DependencyCollectionTests
### Special Notes regarding DependencyCollectionTests
1. All Docker images are downloaded from internet when ran for first time and this could take several minutes (depends on network speed as **around 20GB will be downloaded on first time on a machine**.). Tests may appear hung during this time.
2. If using Visual Studio Test Explorer to run tests, group the tests by namespace and run each namespaces separately to avoid test conflicts. ```runFunctionalTestsDependencyCollector``` does this automatically.
@ -107,18 +87,21 @@ Edit the helper scripts to change between 'Release' and 'Debug' as per your buil
Its is important to note that functional tests do not trigger product code build, so explicit build of product code is required before running functional tests.
A typical work flow would be make-produce-change followed by build-product followed by build-functest-solution and finally run-func-tests. (This helpers scripts does this.)
## Known issues/workarounds with running functional tests.
### Known issues/workarounds with running functional tests.
If any tests fail, please retry first to see if it helps. If not, try one of the known issues below.
Tests fail with error like "It was not possible to find any compatible framework version The specified framework 'Microsoft.NETCore.App', version '1.0.4' was not found"
If these don't help, please open an [issue](https://github.com/Microsoft/ApplicationInsights-dotnet/issues) in Github describing the problem.
- Tests fail with error like "It was not possible to find any compatible framework version The specified framework 'Microsoft.NETCore.App', version '1.0.4' was not found"
Workaround: Install .NET Core SDK 1.1.7.
Web and PerformanceCollector fails with error related to 'Port conflicts' - its possible that some prior tests has not released ports.
Workaround - Kill all running IISExpress processes and re-run tests.
- Web and PerformanceCollector fails with error related to 'Port conflicts' - its possible that some prior tests has not released ports.
All/many functional tests fail with error "Incorrect number of items. Expected: 1 Received: 0" when ran from Visual Studio IDE.
Workaround: Kill all running IISExpress processes and re-run tests.
- All/many functional tests fail with error "Incorrect number of items. Expected: 1 Received: 0" when ran from Visual Studio IDE.
Look for warnings in Visual Studio output window which contains errors like 'Unable to copy dll file due to file being locked..' etc.
Workarounds:
@ -127,12 +110,13 @@ Workarounds:
3. Delete bin folder from repository root and rebuild.
4. Restart machine if none of the above helps.
Dependency Collector functional tests fail with messages like "Assert.AreEqual failed. Expected:<1>. Actual<0>." or "All apps are not healthy", then its likely that Docker installation has some issues.
- Dependency Collector functional tests fail with messages like "Assert.AreEqual failed. Expected:<1>. Actual<0>." or "All apps are not healthy", then its likely that Docker installation has some issues.
Workaround if you are trying first time - Make sure you can run ```docker run hello-world``` successfully to confirm that your machine is Docker ready. Also, the very first time DependencyCollector tests are run, all Docker images are downloaded from web and this could potentially take an hour or so. This is only one time per machine.
Alternate workaround if you have previously run the tests successfully at least once - execute the ```dockercleanup.ps1``` from repository root to cleanup any containers from prior runs.
All DependencyCollectionTests fail at initialization stage itself with error 'All apps are not healthy'. In the logs you'll find that Docker container has exited with some error codes. Eg: "Exited (2147943452) 53 seconds ago".
- All DependencyCollectionTests fail at initialization stage itself with error 'All apps are not healthy'. In the logs you'll find that Docker container has exited with some error codes. Eg: "Exited (2147943452) 53 seconds ago".
If this error occurs execute ```dockercleanup.ps1``` from repository root, and re-run the tests.
The test code intentionally does not clean up the containers it spun up. This is to enable fast re-runs of the tests. If the Test App code is changed, then Docker-Compose will detect it, and re-build the container.
@ -140,7 +124,7 @@ If you want to do clean up all the containers created by the test, execute the `
After retrying, it tests still fail, please clear the binaries folder and rebuild the product solution and test solution and run the tests again.
If none of the above helps, please open an issue in Github describing the problem.
## Debugging the functional tests.
It is important to note that since the test application is deployed as a separate process/container, debugging the tests itself will not help debug the application code. A debugger need to be attached
@ -149,8 +133,7 @@ to the process hosting the Application, IISExpress or IIS, after deploying the a
The test apps refers to the Web SDK assemblies from your local build. After making the changes to product code, build locally (from Visual Studio or using ```buildDebug.cmd```). Then build and start the test application from its publish folder in either IISExpress or IIS, and attach debugger to it. Open the .cs file you want your breakpoint in and set it. Now triggering a request to the application will hit the breakpoint.
The exact request to be triggered depends on what you are doing. If investigating functional test failures locally, then the tests logs should contain the url it hit to trigger scenarios.
Dependency Collector tests deploy the test apps, along with dependencies (Fake Ingestion, SQL etc) to Docker containers inside same Docker virtual network, so that apps can access the dependencies with their names. However, if
the test apps are deployed to IIS or IISExpress, then they are outside the Docker virtual network of dependencies, and so it won't be able to access dependencies without using their IP Address. This is a Docker for windows limitation, and could be fixed in future.
Dependency Collector tests deploy the test apps, along with dependencies (Fake Ingestion, SQL etc) to Docker containers inside same Docker virtual network, so that apps can access the dependencies with their names. However, if the test apps are deployed to IIS or IISExpress, then they are outside the Docker virtual network of dependencies, and so it won't be able to access dependencies without using their IP Address. This is a Docker for windows limitation, and could be fixed in future.
Until then, the test app need to address the dependencies using their IP Address. Instead of manually finding IP Addresses and replacing containers names with IP Address, its easy to just run the following script.
This uses Docker commands to determine the IP Addresses, and replaces them in the necessary configs.
"<repo-root>\bin\Debug\Test\E2ETests\E2ETests\replacecontainernamewithip.ps1"
@ -161,12 +144,8 @@ Following pre-requisite is needed to deploy to IIS locally.
## Debugging the SDK in general (How to test Application Insights from local build in any Test App)
* Build the project using ```buildDebug.cmd```
* If the build was successful, you'll find that it generated NuGet packages in <repository root>\..\bin\Debug\NuGet
* If your change is confined to one of the nuget packages (say Web sdk), and you are developing on one of VNext branches, you can get the rest of the compatible nuget packages from [myget feed](https://www.myget.org/F/applicationinsights/)
* Create a web application project to test the SDK on, and install the Microsoft.ApplicationInsights.Web NuGet package from the above directory
* In your web application, point your project references to Microsoft.AI.Web, Microsoft.AI.WindowsServer, Microsoft.AI.PerfCounterCollector and Microsoft.AI.DependencyCollector to those DLLs in the SDK debug output folder (this makes sure you get the symbol files and that your web application is updated when you recompile the SDK).
* Build the project using ```buildDebug.cmd```. If you build using the solution (*.sln) all required depenencies will also be built.
* If the build was successful, you'll find that it generated NuGet packages in "<repository root>\..\bin\Debug\NuGet". You can set this directory as a NuGet Repository to consume within your applications.
* Create a web application project to test the SDK on, and install the Microsoft.ApplicationInsights.Web NuGet package from the above directory.
* From your web application, open the .cs file you want your breakpoint in and set it
* Run your web application.
Your breakpoints should be hit now when your web application triggers them.
* Run your web application. Your breakpoints should be hit now when your web application triggers them.

Просмотреть файл

@ -7,8 +7,35 @@
<Import Project=".\_Common.props" />
<Import Project=".\_AnalyzerSettings.props" />
<Import Project=".\_GlobalStaticVersion.props" />
<Import Project=".\_Nupkg.props" />
<ItemGroup Condition=" $(OS) == 'Windows_NT' And $(Configuration) == 'Release'">
<!--Analyzers-->
<PackageReference Include="Desktop.Analyzers" Version="1.1.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<!--Build Infrastructure-->
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="0.4.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
</ItemGroup>
</Project>

Просмотреть файл

@ -13,7 +13,8 @@
<SemanticVersionMajor>2</SemanticVersionMajor>
<SemanticVersionMinor>15</SemanticVersionMinor> <!-- If changing the Minor version, also update the Date value. -->
<SemanticVersionPatch>0</SemanticVersionPatch>
<PreReleaseMilestone>beta1</PreReleaseMilestone> <!--Valid values: beta1, beta2, EMPTY for stable -->
<PreReleaseMilestone>beta2</PreReleaseMilestone> <!--Valid values: beta1, beta2, EMPTY for stable -->
<PreReleaseMilestone Condition="'$(NightlyBuild)' == 'True'">nightly</PreReleaseMilestone> <!-- Overwrite this property for nightly builds from the DEVELOP branch. -->
<!--
Date when Semantic Version was changed.
Update for every MINOR release.

Просмотреть файл

@ -13,10 +13,6 @@
<!-- Documenting your code with XML comments https://docs.microsoft.com/en-us/dotnet/csharp/codedoc -->
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<!-- Creating symbol packages (.snupkg) https://docs.microsoft.com/en-us/nuget/create-packages/symbol-packages-snupkg -->
<IncludeSymbols>True</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<!-- Include the PDB in the built .nupkg -->
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
</PropertyGroup>
@ -39,12 +35,30 @@
<PackageReleaseNotes>For the release notes please follow http://go.microsoft.com/fwlink/?LinkId=535037</PackageReleaseNotes>
<!-- <PackageOutputPath>Defined in Directory.props</PackageOutputPath> -->
<PackageTags>Analytics Azure ApplicationInsights Telemetry Monitoring SDK</PackageTags>
<!-- Publish the repository URL in the built .nupkg (in the NuSpec <Repository> element) -->
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<!-- Embed source files that are not tracked by the source control manager in the PDB -->
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<!-- Creating symbol packages (.snupkg) https://docs.microsoft.com/en-us/nuget/create-packages/symbol-packages-snupkg -->
<IncludeSymbols>True</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>
<ItemGroup>
<None Include="$(EnlistmentRoot)\.images\icon.png" Pack="true" PackagePath="\"/>
<None Include="$(EnlistmentRoot)\.images\icon.png" Pack="true" PackagePath="\"/>
</ItemGroup>
<PropertyGroup Condition="$(BuildServer) == 'true'">
<!-- indicate that the build executes on a build/CI server -->
<!-- <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild> -->
<!-- mapping all source paths included in the project outputs to deterministic values -->
<!-- <DeterministicSourcePaths>true</DeterministicSourcePaths> -->
<!-- produce an assembly whose byte-for-byte output is identical across compilations for identical inputs-->
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup>
<!-- These Properties are unique to the project and must be set in the csproj -->
<PackageId>UNDEFINED</PackageId>
@ -67,7 +81,7 @@
<!-- This target will add an English localization tag to our xml documentation file. -->
<InjectXmlLanguage FilePath="$(OutputPath)\$(AssemblyName).XML" />
</Target>
<UsingTask TaskName="InjectXmlLanguage" TaskFactory="RoslynCodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
<ParameterGroup>
<FilePath ParameterType="System.String" Required="true" />

Просмотреть файл

@ -2,7 +2,6 @@ pool:
vmImage: 'ubuntu-16.04'
steps:
## Install NetCore 3.1, Restore Solution, Build Solution, Test NetCore 3.1
- task: DotNetCoreInstaller@1
@ -30,7 +29,6 @@ steps:
projects: "BASE/Test/**/Microsoft.ApplicationInsights.Tests.csproj"
arguments: "--configuration Release --framework netcoreapp3.1 -l trx --filter TestCategory!=WindowsOnly"
## Install and Test NetCore 2.2
- task: DotNetCoreInstaller@1
@ -45,21 +43,6 @@ steps:
projects: "BASE/Test/**/Microsoft.ApplicationInsights.Tests.csproj"
arguments: "--configuration Release --framework netcoreapp2.1 -l trx --filter TestCategory!=WindowsOnly"
## Install and Test NetCore 1.1
- task: DotNetCoreInstaller@0
displayName: install dotnet core 1.1
inputs:
version: 1.1.5
- task: DotNetCoreCLI@1
displayName: DotNetCoreCLI - Test NetCore 1.1
inputs:
command: "test"
projects: "BASE/Test/**/Microsoft.ApplicationInsights.Tests.csproj"
arguments: "--configuration Release --framework netcoreapp1.1 -l trx --filter TestCategory!=WindowsOnly"
## Publish Test results
- task: PublishTestResults@2
@ -67,6 +50,7 @@ steps:
inputs:
testRunner: "VSTest"
testResultsFiles: "**/*.trx"
failTaskOnFailedTests: true
#- task: DotNetCoreCLI@1
# inputs:

Просмотреть файл

@ -11,8 +11,8 @@
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
<TargetFrameworks>net45;netstandard1.3;netstandard2.0</TargetFrameworks>
<TargetFrameworks Condition="$(OS) != 'Windows_NT'">netstandard1.3;netstandard2.0</TargetFrameworks>
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
<TargetFrameworks Condition="$(OS) != 'Windows_NT'">netstandard2.0</TargetFrameworks>
<ProjectGuid>{4B0BC3B7-C7FC-4333-9E28-5790D9153F07}</ProjectGuid>
<RootNamespace>ApplicationInsightsTypes</RootNamespace>
@ -90,9 +90,4 @@
<Link>StackFrame.bond</Link>
</BondCodegen>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard1.3'">
<PackageReference Include="System.Net.Security" Version="4.3.2" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
</ItemGroup>
</Project>

Просмотреть файл

@ -84,7 +84,7 @@
Assert.AreEqual(0, stackFrame.line);
}
#if (!NETCOREAPP1_1 && !NETCOREAPP2_0)
#if !NETCOREAPP2_0
[TestMethod]
public void CheckThatFileNameAndLineAreCorrectIfAvailable()
@ -112,7 +112,7 @@
}
#endif
#if !NETCOREAPP1_1 || NETCOREAPP2_0
#if NETCOREAPP2_0
[TestMethod]
public void CheckThatAssemblyNameHasCorrectValue()

Просмотреть файл

@ -1,6 +1,6 @@
namespace Microsoft.ApplicationInsights.Extensibility.Implementation
{
#if (!NETCOREAPP1_1 && !NETCOREAPP2_0)
#if !NETCOREAPP2_0
using System;
using System.IO;
using System.Reflection;

Просмотреть файл

@ -1,6 +1,6 @@
namespace Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing
{
#if (!NETCOREAPP1_1 && !NETCOREAPP2_0)
#if !NETCOREAPP2_0
using System;
using System.Globalization;
using System.Threading;

Просмотреть файл

@ -1,6 +1,5 @@
namespace Microsoft.ApplicationInsights.TestFramework.Extensibility.Implementation.Tracing.SelfDiagnostics
{
#if !NETCOREAPP1_1
using System;
using System.Diagnostics.Tracing;
using System.IO;
@ -199,5 +198,4 @@
}
}
}
#endif
}

Просмотреть файл

@ -1,6 +1,5 @@
namespace Microsoft.ApplicationInsights.TestFramework.Extensibility.Implementation.Tracing.SelfDiagnostics
{
#if !NETCOREAPP1_1
using System.Diagnostics;
using System.Diagnostics.Tracing;
@ -86,5 +85,4 @@
}
}
}
#endif
}

Просмотреть файл

@ -14,14 +14,11 @@
</PropertyGroup>
<PropertyGroup>
<TargetFrameworks>net45;net46;netcoreapp1.1;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks Condition="$(OS) != 'Windows_NT'">netcoreapp1.1;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks>net45;net46;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks Condition="$(OS) != 'Windows_NT'">netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<DebugType>pdbonly</DebugType>
<DebugSymbols>true</DebugSymbols>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<!-- this constant is set for all other netcore targets except 1-->
<DefineConstants Condition="'$(TargetFramework)' == 'netcoreapp1.1'">$(DefineConstants);NETCOREAPP;</DefineConstants>
</PropertyGroup>
<ItemGroup>
@ -44,11 +41,6 @@
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="4.6.0" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp1.1'">
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="System.Net.Security" Version="4.3.2" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net45'">
<PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" />
</ItemGroup>

Просмотреть файл

@ -64,7 +64,6 @@
Assert.AreEqual(telemetry.Duration, TimeSpan.Zero);
}
#if !NETCOREAPP1_1
/// <summary>
/// Tests the scenario if Start assigns current *precise* time to start time.
/// </summary>
@ -93,7 +92,6 @@
Assert.IsTrue(ComputeSomethingHeavy() > 0);
}
}
#endif
/// <summary>
/// Tests the scenario if Stop computes the duration of the telemetry when timestamps are supplied to Start and Stop.

Просмотреть файл

@ -108,7 +108,6 @@
Assert.IsTrue(telemetry.Timestamp != default(DateTimeOffset));
}
#if !NETCOREAPP1_1
/// <summary>
/// Tests the scenario if Initialize assigns current precise time to start time.
/// </summary>
@ -137,7 +136,6 @@
Assert.IsTrue(ComputeSomethingHeavy() > 0);
}
}
#endif
[TestMethod]
public void InitializeSetsRoleInstance()

Просмотреть файл

@ -18,11 +18,12 @@
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>
<!-- This can be removed. Requires update to .yml -->
<PropertyGroup Condition="$(OS) != 'Windows_NT'">
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
<TargetFrameworks>netstandard1.3</TargetFrameworks>
</PropertyGroup>
<ItemGroup Condition="$(OS) == 'Windows_NT'">
<ProjectReference Include="..\..\..\src\Microsoft.ApplicationInsights\Microsoft.ApplicationInsights.csproj" />
<ProjectReference Include="..\..\..\Test\Microsoft.ApplicationInsights.Test\ApplicationInsightsTypes\ApplicationInsightsTypes.csproj" />

Просмотреть файл

@ -65,9 +65,6 @@
Assert.AreEqual(itemsProduced, sentTelemetry.Count);
}
#if !NETCOREAPP1_1
// Sampling tests are not stable on linux Azure pipelines agent on .NET Core 1.1.
// considering .NET Core 1.1 is no longer supported, let's not run sampling tests there at all
[TestMethod]
public void ProactivelySampledInTelemetryCapturedWhenProactiveSamplingRateIsLowerThanTarget()
{
@ -364,7 +361,6 @@
Assert.IsTrue(sentTelemetry.Count > targetItemCount - tolerance);
Assert.IsTrue(sentTelemetry.Count < targetItemCount + tolerance);
}
#endif
private class AdaptiveTesterMessageSink : ITelemetryProcessor
{
@ -514,17 +510,10 @@
{
// Regular Dispose() does not wait for all callbacks to complete
// so TelemetryConfiguration could be disposed while callback still runs
#if (NETCOREAPP1_1)
timer.Change(Timeout.InfiniteTimeSpan, Timeout.InfiniteTimeSpan);
timer.Dispose();
Thread.Sleep(1000);
#else
AutoResetEvent allDone = new AutoResetEvent(false);
timer.Dispose(allDone);
// this will wait for all callbacks to complete
allDone.WaitOne();
#endif
}
}
}

Просмотреть файл

@ -3,7 +3,8 @@
using System.Collections;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.AccessControl;
using System.Security.Principal;
using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Helpers;
@ -11,7 +12,10 @@
[TestClass]
public class ApplicationFolderProviderTest
{
{
private const string NonWindowsStorageProbePathVarTmp = "/var/tmp/";
private const string NonWindowsStorageProbePathTmp = "/tmp/";
private DirectoryInfo testDirectory;
[TestInitialize]
@ -30,7 +34,6 @@
}
[TestMethod]
[TestCategory("WindowsOnly")]
public void GetApplicationFolderReturnsValidPlatformFolder()
{
IApplicationFolderProvider provider = new ApplicationFolderProvider();
@ -295,6 +298,129 @@
localAppData.Delete(true);
}
#if !NET45
[TestMethod]
public void GetApplicationFolderReturnsSubfolderFromTmpDirFolderInNonWindows()
{
if (!ApplicationFolderProvider.IsWindowsOperatingSystem())
{
DirectoryInfo tmpDir = this.testDirectory.CreateSubdirectory(@"tmpdir");
var environmentVariables = new Hashtable { { "TMPDIR", tmpDir.FullName } };
var provider = new ApplicationFolderProvider(environmentVariables);
IPlatformFolder applicationFolder = provider.GetApplicationFolder();
Assert.IsNotNull(applicationFolder);
Assert.AreEqual(1, tmpDir.GetDirectories().Length);
tmpDir.Delete(true);
}
}
[TestMethod]
public void GetApplicationFolderReturnsSubfolderFromCustomFolderFirstInNonWindows()
{
if (!ApplicationFolderProvider.IsWindowsOperatingSystem())
{
DirectoryInfo tmpDir = this.testDirectory.CreateSubdirectory(@"tmpdir");
DirectoryInfo customFolder = this.testDirectory.CreateSubdirectory(@"Custom");
var environmentVariables = new Hashtable { { "TMPDIR", tmpDir.FullName } };
var provider = new ApplicationFolderProvider(environmentVariables, customFolder.FullName);
IPlatformFolder applicationFolder = provider.GetApplicationFolder();
Assert.IsNotNull(applicationFolder);
Assert.AreEqual(((PlatformFolder)applicationFolder).Folder.Name, customFolder.Name, "Sub-folder for custom folder should not be created.");
tmpDir.Delete(true);
customFolder.Delete(true);
}
}
[TestMethod]
public void GetApplicationFolderReturnsSubfolderFromVarTmpFolderIfTmpDirIsNotAvailableInNonWindows()
{
if (!ApplicationFolderProvider.IsWindowsOperatingSystem())
{
var dir = new System.IO.DirectoryInfo(NonWindowsStorageProbePathVarTmp);
var provider = new ApplicationFolderProvider();
IPlatformFolder applicationFolder = provider.GetApplicationFolder();
Assert.IsNotNull(applicationFolder);
Assert.IsTrue(dir.GetDirectories().Any(r => r.Name.Equals("Microsoft")));
dir.EnumerateDirectories().ToList().ForEach(d => { if (d.Name == "Microsoft") d.Delete(true); });
}
}
[TestMethod]
public void GetApplicationFolderReturnsSubfolderFromTmpFolderIfVarTmpIsNotAvailableInNonWindows()
{
if (!ApplicationFolderProvider.IsWindowsOperatingSystem())
{
var dir = new System.IO.DirectoryInfo(NonWindowsStorageProbePathTmp);
var provider = new ApplicationFolderProvider();
var vartmpPathFieldInfo = provider.GetType().GetField("nonWindowsStorageProbePathVarTmp", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
vartmpPathFieldInfo.SetValue(provider, "");
IPlatformFolder applicationFolder = provider.GetApplicationFolder();
Assert.IsNotNull(applicationFolder);
Assert.IsTrue(dir.GetDirectories().Any(r => r.Name.Equals("Microsoft")));
dir.EnumerateDirectories().ToList().ForEach(d => { if (d.Name == "Microsoft") d.Delete(true); });
}
}
[TestMethod]
public void GetApplicationFolderReturnsNullWhenNoFolderAvailableToStoreDataInNonWindows()
{
if (!ApplicationFolderProvider.IsWindowsOperatingSystem())
{
var provider = new ApplicationFolderProvider();
var vartmpPathFieldInfo = provider.GetType().GetField("nonWindowsStorageProbePathVarTmp", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
vartmpPathFieldInfo.SetValue(provider, "");
var tmpPathFieldInfo = provider.GetType().GetField("nonWindowsStorageProbePathTmp", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
tmpPathFieldInfo.SetValue(provider, "");
IPlatformFolder applicationFolder = provider.GetApplicationFolder();
Assert.IsNull(applicationFolder);
}
}
[TestMethod]
public void GetApplicationFolderReturnsSubfolderFromVarTmpIfTmpDirIsTooLongInNonWindows()
{
if (!ApplicationFolderProvider.IsWindowsOperatingSystem())
{
string longDirectoryName = Path.Combine(this.testDirectory.FullName, new string('A', 300));
var varTmpdir = new System.IO.DirectoryInfo(NonWindowsStorageProbePathVarTmp);
// Initialize ApplicationfolderProvider
var environmentVariables = new Hashtable
{
{ "TMPDIR", longDirectoryName },
};
var provider = new ApplicationFolderProvider(environmentVariables);
IPlatformFolder applicationFolder = provider.GetApplicationFolder();
// Evaluate
Assert.IsNotNull(applicationFolder);
Assert.IsFalse(Directory.Exists(longDirectoryName), "TEST ERROR: This directory should not be created.");
Assert.IsTrue(Directory.Exists(varTmpdir.FullName), "TEST ERROR: This directory should be created.");
Assert.IsTrue(varTmpdir.GetDirectories().Any(r => r.Name.Equals("Microsoft")), "TEST FAIL: TEMP subdirectories were not created");
varTmpdir.EnumerateDirectories().ToList().ForEach(d => { if (d.Name == "Microsoft") d.Delete(true); });
}
}
#endif
// TODO: Find way to detect denied FileSystemRights.DeleteSubdirectoriesAndFiles
public void GetApplicationFolderReturnsNullWhenFolderAlreadyExistsButDeniesRightToDeleteSubdirectoriesAndFiles()
{

Просмотреть файл

@ -1,6 +1,5 @@
namespace Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation
{
#if !NETCOREAPP1_1
using System;
using System.IO;
using System.Linq;
@ -74,5 +73,4 @@
return platformFile.Open(FileMode.Open);
}
}
#endif
}

Просмотреть файл

@ -1,6 +1,5 @@
namespace Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation
{
#if !NETCOREAPP1_1
using System;
using System.IO;
using System.Security.AccessControl;
@ -280,5 +279,4 @@
}
}
}
#endif
}

Просмотреть файл

@ -1,6 +1,5 @@
namespace Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation
{
#if !NETCOREAPP1_1
using System;
using System.Collections.Generic;
using System.IO;
@ -268,5 +267,4 @@
}
}
}
#endif
}

Просмотреть файл

@ -61,7 +61,7 @@
// [TestMethod]
public void IsThreadSafe()
{
#if (!NETCOREAPP1_1 && !NETCOREAPP2_1)
#if !NETCOREAPP2_1
const int NumberOfThreads = 16;
const int NumberOfFilesPerThread = 64;
var storage = new TransmissionStorage();

Просмотреть файл

@ -15,16 +15,13 @@
</PropertyGroup>
<PropertyGroup>
<TargetFrameworks>net45;netcoreapp1.1;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks Condition="$(OS) != 'Windows_NT'">netcoreapp1.1;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks>net45;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks Condition="$(OS) != 'Windows_NT'">netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<AssemblyName>Microsoft.ApplicationInsights.TelemetryChannel.Tests</AssemblyName>
<DebugType>pdbonly</DebugType>
<DebugSymbols>true</DebugSymbols>
<!-- this constant is set for all other netcore targets except 1-->
<DefineConstants Condition="'$(TargetFramework)' == 'netcoreapp1.1'">$(DefineConstants);NETCOREAPP;NETCOREAPP1_1;</DefineConstants>
</PropertyGroup>
<ItemGroup>
@ -53,18 +50,6 @@
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="2.2.0" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp1.1'">
<PackageReference Include="System.Diagnostics.StackTrace" Version="4.3.0" />
<PackageReference Include="System.Diagnostics.Tracing" Version="4.3.0" />
<PackageReference Include="System.Diagnostics.TraceSource" Version="4.3.0" />
<PackageReference Include="System.Net.NetworkInformation" Version="4.3.0" />
<PackageReference Include="System.Reflection" Version="4.3.0" />
<PackageReference Include="System.Reflection.Primitives" Version="4.3.0" />
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.4.0" />
<PackageReference Include="System.Security.AccessControl" Version="4.3.0" />
<PackageReference Include="System.Net.Security" Version="4.3.2" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net45'">
<PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" />
<Reference Include="System.Web" />

Просмотреть файл

@ -93,11 +93,7 @@ namespace Microsoft.ApplicationInsights.TestFramework
private static void VerifyEventApplicationName(MethodInfo eventMethod, EventWrittenEventArgs actualEvent)
{
#if !NETCOREAPP1_1
string expectedApplicationName = AppDomain.CurrentDomain.FriendlyName;
#else
string expectedApplicationName = "";
#endif
string actualApplicationName = actualEvent.Payload.Last().ToString();
AssertEqual(expectedApplicationName, actualApplicationName, "Application Name");
}

Просмотреть файл

@ -2,16 +2,12 @@ namespace Microsoft.ApplicationInsights.DataContracts
{
using System;
using System.Diagnostics.CodeAnalysis;
#if !NETSTANDARD1_3
using System.Runtime.Serialization;
#endif
/// <summary>
/// This exception is used to notify the user that the set of inner exceptions has been trimmed because it exceeded our allowed send limit.
/// </summary>
#if !NETSTANDARD1_3
[Serializable]
#endif
[SuppressMessage("Microsoft.Design", "CA1064:ExceptionsShouldBePublic", Justification = "We expect that this exception will be caught within the internal scope and should never be exposed to an end user.")]
internal class InnerExceptionCountExceededException : Exception
{
@ -37,7 +33,6 @@ namespace Microsoft.ApplicationInsights.DataContracts
public InnerExceptionCountExceededException(string message, Exception innerException) : base(message, innerException)
{
}
#if !NETSTANDARD1_3
/// <summary>
/// Initializes a new instance of the <see cref="InnerExceptionCountExceededException"/> class with serialized data.
@ -49,6 +44,5 @@ namespace Microsoft.ApplicationInsights.DataContracts
protected InnerExceptionCountExceededException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}
#endif
}
}

Просмотреть файл

@ -98,11 +98,7 @@
{
if (value.HasValue)
{
#if NETSTANDARD1_3
this.AccumulatedDictionary[key] = value.Value.ToString();
#else
this.AccumulatedDictionary[key] = value.Value.ToString(CultureInfo.InvariantCulture);
#endif
}
else
{

Просмотреть файл

@ -20,15 +20,9 @@
public static EndpointMetaAttribute GetAttribute(EndpointName enumValue)
{
#if NETSTANDARD1_3
Type type = enumValue.GetType();
string name = Enum.GetName(type, enumValue);
return type.GetRuntimeField(name).GetCustomAttribute<EndpointMetaAttribute>();
#else
Type type = enumValue.GetType();
string name = Enum.GetName(type, enumValue);
return type.GetField(name).GetCustomAttribute<EndpointMetaAttribute>();
#endif
}
}
}

Просмотреть файл

@ -68,11 +68,7 @@ namespace Microsoft.ApplicationInsights.Extensibility.Implementation.External
{
if (tagValue.HasValue)
{
#if NETSTANDARD1_3
string value = tagValue.Value.ToString();
#else
string value = tagValue.Value.ToString(CultureInfo.InvariantCulture);
#endif
tags.Add(tagKey, value);
}
}

Просмотреть файл

@ -1,4 +1,4 @@
#if NET45 || NETSTANDARD1_1
#if NET45
// FormattableString & Co are available in NetFx 4.6+, but not in NetFx 4.5 or NetStandard 1.1

Просмотреть файл

@ -1,5 +1,4 @@
#if !NETSTANDARD1_3 // netstandard1.3 has it's own implementation
namespace Microsoft.ApplicationInsights.Extensibility.Implementation.Platform
namespace Microsoft.ApplicationInsights.Extensibility.Implementation.Platform
{
using System;
using System.Collections;
@ -142,82 +141,4 @@ namespace Microsoft.ApplicationInsights.Extensibility.Implementation.Platform
return string.Empty;
}
}
}
#else
namespace Microsoft.ApplicationInsights.Extensibility.Implementation.Platform
{
using System;
using System.Collections.Generic;
using Microsoft.ApplicationInsights.Extensibility.Implementation.External;
using Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing;
internal class PlatformImplementation : IPlatform
{
private IDebugOutput debugOutput = null;
public IDictionary<string, object> GetApplicationSettings()
{
return null;
}
public string ReadConfigurationXml()
{
return null;
}
public ExceptionDetails GetExceptionDetails(Exception exception, ExceptionDetails parentExceptionDetails)
{
return ExceptionConverter.ConvertToExceptionDetails(exception, parentExceptionDetails);
}
/// <summary>
/// Returns the platform specific Debugger writer to the VS output console.
/// </summary>
public IDebugOutput GetDebugOutput()
{
if (this.debugOutput == null)
{
this.debugOutput = new TelemetryDebugWriter();
}
return this.debugOutput;
}
/// <inheritdoc />
public bool TryGetEnvironmentVariable(string name, out string value)
{
value = string.Empty;
try
{
value = Environment.GetEnvironmentVariable(name);
return !string.IsNullOrEmpty(value);
}
catch (Exception e)
{
CoreEventSource.Log.FailedToLoadEnvironmentVariables(e.ToString());
}
return false;
}
/// <summary>
/// Returns the machine name.
/// </summary>
/// <returns>The machine name.</returns>
public string GetMachineName()
{
try
{
return Environment.GetEnvironmentVariable("COMPUTERNAME");
}
catch (Exception e)
{
CoreEventSource.Log.FailedToLoadEnvironmentVariables(e.ToString());
}
return string.Empty;
}
}
}
#endif
}

Просмотреть файл

@ -15,18 +15,11 @@
/// <returns>String representation of the version with prefix added.</returns>
internal static string GetSdkVersion(string versionPrefix)
{
#if !NETSTANDARD1_3
string versionStr = typeof(TelemetryClient).Assembly.GetCustomAttributes(false)
.OfType<AssemblyFileVersionAttribute>()
.First()
.Version;
#else
string versionStr = typeof(TelemetryClient).GetTypeInfo().Assembly.GetCustomAttributes<AssemblyFileVersionAttribute>()
.FirstOrDefault()
?.Version;
#endif
Version version;
// this may happen when Application Insights SDK assembly was merged into another assembly

Просмотреть файл

@ -56,11 +56,7 @@ namespace Microsoft.ApplicationInsights.Extensibility.Implementation
void IDebugOutput.WriteLine(string message)
{
#if NETSTANDARD1_3
Debug.WriteLine(message);
#else
Debugger.Log(0, "category", message + Environment.NewLine);
#endif
}
bool IDebugOutput.IsLogging()
@ -69,11 +65,8 @@ namespace Microsoft.ApplicationInsights.Extensibility.Implementation
{
return false;
}
#if NETSTANDARD1_3
return true;
#else
return Debugger.IsLogging();
#endif
}
bool IDebugOutput.IsAttached()

Просмотреть файл

@ -22,11 +22,7 @@
string name;
try
{
#if !NETSTANDARD1_3
name = AppDomain.CurrentDomain.FriendlyName;
#else
name = string.Empty;
#endif
}
catch (Exception exp)
{

Просмотреть файл

@ -91,7 +91,7 @@
.Cast<AssemblyFileVersionAttribute>()
.FirstOrDefault();
return objectAssemblyFileVer != null ? objectAssemblyFileVer.Version : "undefined";
#elif NETSTANDARD1_3 || NETSTANDARD2_0
#elif NETSTANDARD2_0
return System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription;
#else
#error Unrecognized framework
@ -109,8 +109,6 @@
return "net45";
#elif NET46
return "net46";
#elif NETSTANDARD1_3
return "netstandard1.3";
#elif NETSTANDARD2_0
return "netstandard2.0";
#else
@ -133,7 +131,7 @@
osValue = Environment.OSVersion.Platform.ToString();
#elif NETSTANDARD1_3 || NETSTANDARD2_0
#elif NETSTANDARD2_0
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{

Просмотреть файл

@ -22,9 +22,6 @@
return string.Empty;
}
#if NETSTANDARD1_3
return exception.ToString();
#else
CultureInfo originalUICulture = Thread.CurrentThread.CurrentUICulture;
try
{
@ -35,7 +32,6 @@
{
Thread.CurrentThread.CurrentUICulture = originalUICulture;
}
#endif
}
}
}

Просмотреть файл

@ -1,6 +1,5 @@
namespace Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.FileDiagnosticsModule
{
#if !NETSTANDARD1_3
using System;
using System.Collections.Generic;
using System.Diagnostics;
@ -202,5 +201,4 @@
}
}
}
#endif
}

Просмотреть файл

@ -1,7 +1,5 @@
namespace Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing
{
#if !NETSTANDARD1_3
using System;
using System.Diagnostics;
using System.Diagnostics.Tracing;
@ -244,5 +242,4 @@
return result;
}
}
#endif
}

Просмотреть файл

@ -18,11 +18,8 @@
{
return true;
}
#if !NETSTANDARD1_3
return value.All(char.IsWhiteSpace);
#else
return string.IsNullOrWhiteSpace(value);
#endif
}
public static void CopyDictionary<TValue>(IDictionary<string, TValue> source, IDictionary<string, TValue> target)

Просмотреть файл

@ -6,12 +6,8 @@
<PropertyGroup>
<RootNamespace>Microsoft.ApplicationInsights</RootNamespace>
<AssemblyName>Microsoft.ApplicationInsights</AssemblyName>
<TargetFrameworks>net45;net46;netstandard1.3;netstandard2.0</TargetFrameworks>
<TargetFrameworks Condition="$(OS) != 'Windows_NT'">netstandard1.3;netstandard2.0</TargetFrameworks>
<!-- this constant is set for all other netcore targets except 1-->
<DefineConstants Condition="'$(TargetFramework)' == 'netstandard1.3'">$(DefineConstants);NETSTANDARD;</DefineConstants>
<TargetFrameworks>net45;net46;netstandard2.0</TargetFrameworks>
<TargetFrameworks Condition="$(OS) != 'Windows_NT'">netstandard2.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
@ -25,29 +21,6 @@
</PackageReleaseNotes>
</PropertyGroup>
<ItemGroup Condition=" $(OS) == 'Windows_NT'">
<!--Analyzers-->
<PackageReference Include="Desktop.Analyzers" Version="1.1.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<!--Build Infrastructure-->
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="0.4.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Diagnostics.Tracing.EventRegister" Version="1.1.28" Condition="$(OS) == 'Windows_NT'">
<PrivateAssets>All</PrivateAssets>
@ -60,14 +33,6 @@
<Reference Include="System.Net.Http" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard1.3'">
<PackageReference Include="System.Diagnostics.StackTrace" Version="4.3.0" />
<PackageReference Include="System.Net.Requests" Version="4.3.0" />
<PackageReference Include="System.Net.Security" Version="4.3.2" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="System.Threading.Thread" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="$(PublicApiRoot)\$(AssemblyName).dll\$(TargetFramework)\PublicAPI.Shipped.txt" />
<AdditionalFiles Include="$(PublicApiRoot)\$(AssemblyName).dll\$(TargetFramework)\PublicAPI.Unshipped.txt" />

Просмотреть файл

@ -6,6 +6,7 @@
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Runtime.InteropServices;
using System.Security;
using System.Security.AccessControl;
using System.Security.Cryptography;
@ -21,6 +22,10 @@
private readonly string customFolderName;
private readonly IIdentityProvider identityProvider;
// Creating readonly instead of constant, from test we could use reflection to replace the value of these fields.
private readonly string nonWindowsStorageProbePathVarTmp = "/var/tmp/";
private readonly string nonWindowsStorageProbePathTmp = "/tmp/";
public ApplicationFolderProvider(string folderName = null)
: this(Environment.GetEnvironmentVariables(), folderName)
{
@ -33,17 +38,14 @@
throw new ArgumentNullException(nameof(environment));
}
try
if(IsWindowsOperatingSystem())
{
// In NETSTANDARD 1.3 Most reliable way to know if WindowsIdentityProvider can be used
// is to check if it throws exception.
WindowsIdentity.GetCurrent();
this.identityProvider = new WindowsIdentityProvider();
this.ApplySecurityToDirectory = this.SetSecurityPermissionsToAdminAndCurrentUserWindows;
}
catch (Exception)
else
{
this.identityProvider = new NonWindowsIdentityProvider(environment);
this.identityProvider = new NonWindowsIdentityProvider();
this.ApplySecurityToDirectory = this.SetSecurityPermissionsToAdminAndCurrentUserNonWindows;
}
@ -56,22 +58,46 @@
var errors = new List<string>(this.environment.Count + 1);
var result = this.CreateAndValidateApplicationFolder(this.customFolderName, createSubFolder: false, errors: errors);
if (result == null)
if (IsWindowsOperatingSystem())
{
object localAppData = this.environment["LOCALAPPDATA"];
if (localAppData != null)
if (result == null)
{
result = this.CreateAndValidateApplicationFolder(localAppData.ToString(), createSubFolder: true, errors: errors);
object localAppData = this.environment["LOCALAPPDATA"];
if (localAppData != null)
{
result = this.CreateAndValidateApplicationFolder(localAppData.ToString(), createSubFolder: true, errors: errors);
}
}
if (result == null)
{
object temp = this.environment["TEMP"];
if (temp != null)
{
result = this.CreateAndValidateApplicationFolder(temp.ToString(), createSubFolder: true, errors: errors);
}
}
}
if (result == null)
{
object temp = this.environment["TEMP"];
if (temp != null)
else
{
if (result == null)
{
result = this.CreateAndValidateApplicationFolder(temp.ToString(), createSubFolder: true, errors: errors);
object tmpdir = this.environment["TMPDIR"];
if (tmpdir != null)
{
result = this.CreateAndValidateApplicationFolder(tmpdir.ToString(), createSubFolder: true, errors: errors);
}
}
if (result == null)
{
result = this.CreateAndValidateApplicationFolder(this.nonWindowsStorageProbePathVarTmp, createSubFolder: true, errors: errors);
}
if (result == null)
{
result = this.CreateAndValidateApplicationFolder(this.nonWindowsStorageProbePathTmp, createSubFolder: true, errors: errors);
}
}
@ -92,6 +118,22 @@
this.ApplySecurityToDirectory = applySecurityToDirectory;
}
internal static bool IsWindowsOperatingSystem()
{
#if NET45
return true;
#else
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
return true;
}
else
{
return false;
}
#endif
}
private static string GetPathAccessFailureErrorMessage(Exception exp, string path)
{
return "Path: " + path + "; Error: " + exp.Message + Environment.NewLine;
@ -228,9 +270,9 @@
private bool SetSecurityPermissionsToAdminAndCurrentUserNonWindows(DirectoryInfo subdirectory)
{
// For non-windows simply return false to indicate that security policy is not applied.
// For non-windows simply return true to skip security policy.
// This is until .net core exposes an Api to do this.
return false;
return true;
}
private bool SetSecurityPermissionsToAdminAndCurrentUserWindows(DirectoryInfo subdirectory)

Просмотреть файл

@ -1,14 +1,10 @@
namespace Microsoft.ApplicationInsights.Channel.Implementation
{
using System;
using System.Runtime.Serialization;
#if NETSTANDARD1_3
using Newtonsoft.Json;
#else
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Text;
#endif
using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation;
internal class BackoffLogicManager
@ -19,10 +15,7 @@
private const int DefaultBackoffEnabledReportingIntervalInMin = 30;
private static readonly Random Random = new Random();
#if !NETSTANDARD1_3
private static readonly DataContractJsonSerializer Serializer = new DataContractJsonSerializer(typeof(BackendResponse));
#endif
private readonly object lockConsecutiveErrors = new object();
private readonly TimeSpan minIntervalToUpdateConsecutiveErrors;
@ -77,14 +70,10 @@
{
if (!string.IsNullOrEmpty(responseContent))
{
#if NETSTANDARD1_3
backendResponse = JsonConvert.DeserializeObject<BackendResponse>(responseContent);
#else
using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(responseContent)))
{
backendResponse = Serializer.ReadObject(ms) as BackendResponse;
}
#endif
}
}
}
catch (ArgumentException exp)
@ -102,18 +91,7 @@
TelemetryChannelEventSource.Log.BreezeResponseWasNotParsedWarning(exp.Message, responseContent);
backendResponse = null;
}
#if NETSTANDARD1_3
catch (JsonReaderException exp)
{
TelemetryChannelEventSource.Log.BreezeResponseWasNotParsedWarning(exp.Message, responseContent);
backendResponse = null;
}
catch (JsonSerializationException exp)
{
TelemetryChannelEventSource.Log.BreezeResponseWasNotParsedWarning(exp.Message, responseContent);
backendResponse = null;
}
#endif
return backendResponse;
}

Просмотреть файл

@ -549,11 +549,7 @@
string name;
try
{
#if !NETSTANDARD1_3
name = AppDomain.CurrentDomain.FriendlyName;
#else
name = string.Empty;
#endif
}
catch (Exception exp)
{

Просмотреть файл

@ -182,11 +182,7 @@
private static string GetUniqueFileName(string extension)
{
#if NETSTANDARD1_3
string fileName = Guid.NewGuid().ToString("N");
#else
string fileName = Guid.NewGuid().ToString("N", CultureInfo.InvariantCulture);
#endif
return Path.ChangeExtension(fileName, extension);
}

Просмотреть файл

@ -1,32 +1,12 @@
namespace Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Shared.Implementation
{
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
internal class NonWindowsIdentityProvider : IIdentityProvider
{
private IDictionary environment;
public NonWindowsIdentityProvider(IDictionary environment)
{
this.environment = environment;
}
string IIdentityProvider.GetName()
{
// This variable is not guaranteed to be present. eg: in Docker containers.
if (this.environment["USER"] != null)
{
return this.environment["USER"].ToString();
}
else
{
return string.Empty;
}
return Environment.UserName;
}
}
}

Просмотреть файл

@ -6,12 +6,8 @@
<PropertyGroup>
<RootNamespace>Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel</RootNamespace>
<AssemblyName>Microsoft.AI.ServerTelemetryChannel</AssemblyName>
<TargetFrameworks>net45;netstandard1.3;netstandard2.0</TargetFrameworks>
<TargetFrameworks Condition="$(OS) != 'Windows_NT'">netstandard1.3;netstandard2.0</TargetFrameworks>
<!-- this constant is set for all other netcore targets except 1-->
<DefineConstants Condition="'$(TargetFramework)' == 'netstandard1.3'">$(DefineConstants);NETSTANDARD;</DefineConstants>
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
<TargetFrameworks Condition="$(OS) != 'Windows_NT'">netstandard2.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
@ -22,39 +18,15 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DefineConstants Condition="'$(TargetFramework)' == 'netstandard1.3'">TRACE;DEBUG;NETCORE;NETSTANDARD1_3</DefineConstants>
<DefineConstants Condition="'$(TargetFramework)' == 'netstandard2.0'">TRACE;DEBUG;NETCORE;NETSTANDARD2_0</DefineConstants>
<DefineConstants Condition="'$(TargetFramework)' == 'net45'">TRACE;DEBUG;NET45</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'netstandard1.3' OR '$(TargetFramework)' == 'netstandard2.0'">
<PropertyGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
<DefineConstants>$(DefineConstants);NETSTANDARD</DefineConstants>
<IsNetStandardBuild>True</IsNetStandardBuild>
</PropertyGroup>
<ItemGroup Condition=" $(OS) == 'Windows_NT'">
<!--Analyzers-->
<PackageReference Include="Desktop.Analyzers" Version="1.1.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<!--Build Infrastructure-->
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="0.4.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.ApplicationInsights\Microsoft.ApplicationInsights.csproj" />
</ItemGroup>
@ -89,16 +61,5 @@
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="4.7.0" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard1.3'">
<PackageReference Include="System.Diagnostics.Process" Version="4.3.0" />
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="4.3.0" />
<PackageReference Include="System.Net.NetworkInformation" Version="4.3.0" />
<PackageReference Include="System.Net.WebHeaderCollection" Version="4.3.0" />
<PackageReference Include="System.Runtime" Version="4.3.0" />
<PackageReference Include="System.Runtime.Serialization.Primitives" Version="4.3.0" />
<PackageReference Include="System.Security.Cryptography.Algorithms" Version="4.3.0" />
<PackageReference Include="System.Threading.Thread" Version="4.3.0" />
</ItemGroup>
<Import Project="..\Common\Common\Common.projitems" Label="Shared" />
</Project>

Просмотреть файл

@ -2,10 +2,17 @@
## VNext
## Version 2.15.0-beta2
- [Read all properties of ApplicationInsightsServiceOptions from IConfiguration](https://github.com/microsoft/ApplicationInsights-dotnet/issues/1882)
- [End support for NetStandard 1.x, Add support for NetStandard 2.0](https://github.com/microsoft/ApplicationInsights-dotnet/issues/1160)
- [Add support for SourceLink.Github to all SDKs.](https://github.com/microsoft/ApplicationInsights-dotnet/issues/1760)
- [ServerTelemetryChannel by default uses local disk storage in non Windows, to store telemetry during transient errors](https://github.com/microsoft/ApplicationInsights-dotnet/issues/1792)
## Version 2.15.0-beta1
- [WorkerService package is modified to depend on 2.1.1 on Microsoft.Extensions.DependencyInjection so that it can be used in .NET Core 2.1 projects without nuget errors.](https://github.com/microsoft/ApplicationInsights-dotnet/issues/1677)
- [Adding a flag to EventCounterCollector to enable/disable storing the EventSource name in the MetricNamespace and simplify the metric name](https://github.com/microsoft/ApplicationInsights-dotnet/issues/1341)
- [New: EventCounter to track Ingestion Endpoint Response Time] (https://github.com/microsoft/ApplicationInsights-dotnet/pull/1796)
- [New: EventCounter to track Ingestion Endpoint Response Time](https://github.com/microsoft/ApplicationInsights-dotnet/pull/1796)
## Version 2.14.0
- no changes since beta.

Просмотреть файл

@ -26,7 +26,7 @@
<BinRoot>$(EnlistmentRoot)\..\bin</BinRoot>
<BinRoot>$([System.IO.Path]::GetFullPath( $(BinRoot) ))</BinRoot>
<ObjRoot>$(EnlistmentRoot)\..\obj</ObjRoot>
<ObjRoot>$([System.IO.Path]::GetFullPath( $(ObjRoot) ))</ObjRoot>
@ -43,10 +43,9 @@
<IntermediateOutputPath>$(ObjRoot)\$(Configuration)\$(RelativeOutputPathBase)</IntermediateOutputPath>
<IntermediateOutputPath>$([System.IO.Path]::GetFullPath( $(IntermediateOutputPath) ))\</IntermediateOutputPath>
<!-- Testing fix for https://github.com/dotnet/sdk/issues/2523 -->
<!-- If this works, should move to common and not the directory props -->
<DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
</PropertyGroup>
</Project>

Просмотреть файл

@ -91,34 +91,12 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "TestFramework.Shared.Base",
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "TestFramework.Shared.Web", "WEB\Src\TestFramework\Shared\TestFramework.Shared.Web.shproj", "{9718F051-147F-4F5F-9FF3-C926430EFCF7}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "DependencyCollector.Shared.Tests", "WEB\Src\DependencyCollector\Shared.Tests\DependencyCollector.Shared.Tests.shproj", "{ACE58393-3419-4FCA-87CC-C33EB756C7E4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventCounterCollector.Tests", "WEB\Src\EventCounterCollector\EventCounterCollector.Tests\EventCounterCollector.Tests\EventCounterCollector.Tests.csproj", "{BECFC6B1-E04E-431C-A4D9-6F330F7DE22D}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Filtering.Shared", "WEB\Src\PerformanceCollector\Filtering.Shared\Filtering.Shared.shproj", "{568AEB4F-BA4C-47A5-9FA3-68F06CD11FED}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Perf.NetCore.Tests", "WEB\Src\PerformanceCollector\NetCore.Tests\Perf.NetCore.Tests.csproj", "{8F641C0B-A57A-43EC-B91F-4258F6DC0CD5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Perf-NetCore20.Tests", "WEB\Src\PerformanceCollector\NetCore20.Tests\Perf-NetCore20.Tests\Perf-NetCore20.Tests.csproj", "{07620299-B0E7-44BB-BE85-C4D1B25104F6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perf.Net45.Tests", "WEB\Src\PerformanceCollector\Perf.Net45.Tests\Perf.Net45.Tests.csproj", "{F254D4FB-428D-408E-8251-39BCA7B4B5CE}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared", "WEB\Src\PerformanceCollector\Perf.Shared\Perf.Shared.shproj", "{A78F50D4-F518-4DCB-878B-526FD54CCA35}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared.NetFull", "WEB\Src\PerformanceCollector\Perf.Shared.NetFull\Perf.Shared.NetFull.shproj", "{0196259C-3582-4F4E-A01F-A8F9AE83B0F3}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared.NetStandard", "WEB\Src\PerformanceCollector\Perf.Shared.NetStandard\Perf.Shared.NetStandard.shproj", "{D13C3EC7-B300-4158-9054-216156B203BE}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared.NetStandard.Stubs", "WEB\Src\PerformanceCollector\Perf.Shared.NetStandard.Stubs\Perf.Shared.NetStandard.Stubs.shproj", "{30A45441-0849-48FE-AD37-5D29D0E3068A}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared.NetStandard16.Stubs", "WEB\Src\PerformanceCollector\Perf.Shared.NetStandard16.Stubs\Perf.Shared.NetStandard16.Stubs.shproj", "{76B21FAA-270D-47DE-B14B-BEC87EDC34F1}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared.NetStandard20", "WEB\Src\PerformanceCollector\Perf.Shared.NetStandard20\Perf.Shared.NetStandard20.shproj", "{A8BA3BD0-19CE-488D-B2BD-0B9B677F4E03}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared.NetStandard20Net45", "WEB\Src\PerformanceCollector\Perf.Shared.NetStandard20Net45\Perf.Shared.NetStandard20Net45.shproj", "{054C25DC-E545-4712-95C4-81F30CF65CE8}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared.Tests", "WEB\Src\PerformanceCollector\Perf.Shared.Tests\Perf.Shared.Tests.shproj", "{9B524BD3-682D-4B6F-9251-D4B2911DF0FD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "L) GenericTests", "L) GenericTests", "{D2A0AA36-57F7-436C-A7AF-7322927F1734}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xdt.Tests", "LOGGING\test\Xdt.Tests\Xdt.Tests.csproj", "{262792BF-31A8-4FCD-BBC7-341EB29FAE96}"
@ -131,14 +109,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ApplicationInsigh
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ApplicationInsights.WorkerService.Tests", "NETCORE\test\Microsoft.ApplicationInsights.WorkerService.Tests\Microsoft.ApplicationInsights.WorkerService.Tests.csproj", "{B90EDEA5-3CC8-4282-80A0-7116905E2427}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EmptyApp20.FunctionalTests20", "NETCORE\test\EmptyApp20.FunctionalTests\EmptyApp20.FunctionalTests20.csproj", "{8C764C9F-1078-47AF-87B8-AF62C7CD6447}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunctionalTestUtils20", "NETCORE\test\FunctionalTestUtils20\FunctionalTestUtils20.csproj", "{CF1818F5-CB8E-41A2-B3A8-344A80B79CEC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MVCFramework20.FunctionalTests20", "NETCORE\test\MVCFramework20.FunctionalTests\MVCFramework20.FunctionalTests20.csproj", "{BCF933FA-3E6A-41C2-874A-E25195D6D0E8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApi20.FunctionalTests20", "NETCORE\test\WebApi20.FunctionalTests\WebApi20.FunctionalTests20.csproj", "{4871B8AC-FB79-4D3D-940D-80E796110359}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApplicationInsightsTypes", "NETCORE\test\ApplicationInsightsTypes\ApplicationInsightsTypes.csproj", "{3D7258E3-5DDC-45A4-A457-9AA3BCC92DE7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ApplicationInsights.Tests", "BASE\Test\Microsoft.ApplicationInsights.Test\Microsoft.ApplicationInsights.Tests\Microsoft.ApplicationInsights.Tests.csproj", "{4BAA7AF2-3C5B-4C7C-9A9C-26F561218A86}"
@ -167,20 +137,27 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Web.Tests", "WEB\Src\Web\We
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WindowsServer.Tests", "WEB\Src\WindowsServer\WindowsServer.Tests\WindowsServer.Tests.csproj", "{5F40F661-DE59-4489-ABAC-BE6F2D730D9A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunctionalTests.WebApi.Tests", "NETCORE\test\FunctionalTests.WebApi.Tests\FunctionalTests.WebApi.Tests.csproj", "{BB89365D-FFAA-4515-A277-D478A678D4B3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunctionalTests.Utils", "NETCORE\test\FunctionalTests.Utils\FunctionalTests.Utils.csproj", "{F677DF78-A630-464C-BEA9-3BBAEA97412F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunctionalTests.MVC.Tests", "NETCORE\test\FunctionalTests.MVC.Tests\FunctionalTests.MVC.Tests.csproj", "{43D6CB2E-6EE7-4B2B-A517-0D70298ACDBF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunctionalTests.EmptyApp.Tests", "NETCORE\test\FunctionalTests.EmptyApp.Tests\FunctionalTests.EmptyApp.Tests.csproj", "{00FC8932-554B-455F-9E02-E8A4B0DBFAA8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Perf.Tests", "WEB\Src\PerformanceCollector\Perf.Tests\Perf.Tests.csproj", "{27B8D7BE-8CB7-48BF-97DA-0F031103C03D}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
WEB\Src\PerformanceCollector\Perf.Shared.NetFull\Perf.Shared.NetFull.projitems*{0196259c-3582-4f4e-a01f-a8f9ae83b0f3}*SharedItemsImports = 13
WEB\Src\PerformanceCollector\Perf.Shared.NetStandard20Net45\Perf.Shared.NetStandard20Net45.projitems*{054c25dc-e545-4712-95c4-81f30cf65ce8}*SharedItemsImports = 13
WEB\Src\PerformanceCollector\Perf.Shared.Tests\Perf.Shared.Tests.projitems*{07620299-b0e7-44bb-be85-c4d1b25104f6}*SharedItemsImports = 5
WEB\Src\TestFramework\Shared\TestFramework.Shared.projitems*{07620299-b0e7-44bb-be85-c4d1b25104f6}*SharedItemsImports = 5
WEB\Src\Common\Common.projitems*{13335eb8-3936-407a-9363-1c428318bea8}*SharedItemsImports = 5
LOGGING\src\CommonShared\CommonShared.projitems*{1b0f54bf-078a-421c-9708-2d817d4bce30}*SharedItemsImports = 5
LOGGING\src\EventSource.Shared\EventSource.Shared\EventSource.Shared.projitems*{1b0f54bf-078a-421c-9708-2d817d4bce30}*SharedItemsImports = 5
LOGGING\src\CommonShared\CommonShared.projitems*{2612ac44-5ff3-4533-b5a5-e5dbf96f5c83}*SharedItemsImports = 5
WEB\Src\TestFramework\Shared\TestFramework.Shared.projitems*{27b8d7be-8cb7-48bf-97da-0f031103c03d}*SharedItemsImports = 5
LOGGING\src\CommonShared\CommonShared.projitems*{2e283031-425b-421f-9e81-34abfefab618}*SharedItemsImports = 5
LOGGING\test\CommonTestShared\CommonTestShared.projitems*{305f1c02-f984-43e7-a07e-e2514cfe29a0}*SharedItemsImports = 5
LOGGING\test\Shared\Adapters.Shared.Tests.projitems*{305f1c02-f984-43e7-a07e-e2514cfe29a0}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared.NetStandard.Stubs\Perf.Shared.NetStandard.Stubs.projitems*{30a45441-0849-48fe-ad37-5d29d0e3068a}*SharedItemsImports = 13
LOGGING\src\CommonShared\CommonShared.projitems*{3774003c-91fd-4d79-99c7-9beac5b9a48e}*SharedItemsImports = 5
LOGGING\test\CommonTestShared\CommonTestShared.projitems*{37e15186-87a4-42eb-ab59-cedb99ca2640}*SharedItemsImports = 5
LOGGING\test\Shared\Adapters.Shared.Tests.projitems*{37e15186-87a4-42eb-ab59-cedb99ca2640}*SharedItemsImports = 5
@ -188,18 +165,14 @@ Global
NETCORE\src\Shared\Shared.projitems*{3cab7f66-3cc4-4b46-9b0d-765c460fe2bf}*SharedItemsImports = 5
LOGGING\src\CommonShared\CommonShared.projitems*{52b3c054-c686-4bb8-a4b7-9e8d6c49491f}*SharedItemsImports = 5
LOGGING\src\EventSource.Shared\EventSource.Shared\EventSource.Shared.projitems*{52b3c054-c686-4bb8-a4b7-9e8d6c49491f}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Filtering.Shared\Filtering.Shared.projitems*{568aeb4f-ba4c-47a5-9fa3-68f06cd11fed}*SharedItemsImports = 13
LOGGING\src\CommonShared\CommonShared.projitems*{587b624b-8c64-498e-93d7-a2d2abc17eab}*SharedItemsImports = 13
WEB\Src\TestFramework\Shared\TestFramework.Shared.projitems*{5f40f661-de59-4489-abac-be6f2d730d9a}*SharedItemsImports = 5
LOGGING\src\CommonShared\CommonShared.projitems*{63b8fda7-2ff5-4a20-8de7-ebb036012a54}*SharedItemsImports = 5
LOGGING\src\CommonShared\CommonShared.projitems*{67291093-4b5f-4ca5-a811-b8a1dcbe3f1f}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared.NetStandard16.Stubs\Perf.Shared.NetStandard16.Stubs.projitems*{76b21faa-270d-47de-b14b-bec87edc34f1}*SharedItemsImports = 13
LOGGING\test\CommonTestShared\CommonTestShared.projitems*{7a903abd-d7fb-4610-aed8-32eb2cbaeebf}*SharedItemsImports = 5
LOGGING\test\Shared\Adapters.Shared.Tests.projitems*{7a903abd-d7fb-4610-aed8-32eb2cbaeebf}*SharedItemsImports = 5
WEB\Src\Common\Common.projitems*{7b5d95ee-50ee-4222-a03c-fae5905b3dfd}*SharedItemsImports = 5
WEB\Src\Common\Common.projitems*{8293bc71-7ddc-4dd1-8807-280eef7e752d}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared.Tests\Perf.Shared.Tests.projitems*{8f641c0b-a57a-43ec-b91f-4258f6dc0cd5}*SharedItemsImports = 5
WEB\Src\TestFramework\Shared\TestFramework.Shared.projitems*{8f641c0b-a57a-43ec-b91f-4258f6dc0cd5}*SharedItemsImports = 5
BASE\src\Common\Common\Common.projitems*{936af739-4297-4016-9d70-4280042709be}*SharedItemsImports = 13
LOGGING\test\CommonTestShared\CommonTestShared.projitems*{93a35062-6aa4-4778-9769-428a942adcf9}*SharedItemsImports = 5
LOGGING\test\Shared\Adapters.Shared.Tests.projitems*{93a35062-6aa4-4778-9769-428a942adcf9}*SharedItemsImports = 5
@ -207,17 +180,10 @@ Global
WEB\Src\TestFramework\Shared\TestFramework.Shared.projitems*{9718f051-147f-4f5f-9ff3-c926430efcf7}*SharedItemsImports = 13
LOGGING\test\CommonTestShared\CommonTestShared.projitems*{9ad802d5-ca3b-4367-bf52-a892fd7c3a0c}*SharedItemsImports = 5
LOGGING\test\Shared\Adapters.Shared.Tests.projitems*{9ad802d5-ca3b-4367-bf52-a892fd7c3a0c}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared.Tests\Perf.Shared.Tests.projitems*{9b524bd3-682d-4b6f-9251-d4b2911df0fd}*SharedItemsImports = 13
WEB\Src\Common\Common.projitems*{9dc5c5e5-fc37-4e54-81fd-aa42bb934e9b}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Filtering.Shared\Filtering.Shared.projitems*{9dc5c5e5-fc37-4e54-81fd-aa42bb934e9b}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared.NetFull\Perf.Shared.NetFull.projitems*{9dc5c5e5-fc37-4e54-81fd-aa42bb934e9b}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared.NetStandard20Net45\Perf.Shared.NetStandard20Net45.projitems*{9dc5c5e5-fc37-4e54-81fd-aa42bb934e9b}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared\Perf.Shared.projitems*{9dc5c5e5-fc37-4e54-81fd-aa42bb934e9b}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared\Perf.Shared.projitems*{a78f50d4-f518-4dcb-878b-526fd54cca35}*SharedItemsImports = 13
WEB\Src\PerformanceCollector\Perf.Shared.NetStandard20\Perf.Shared.NetStandard20.projitems*{a8ba3bd0-19ce-488d-b2bd-0b9b677f4e03}*SharedItemsImports = 13
LOGGING\src\EventSource.Shared\EventSource.Shared\EventSource.Shared.projitems*{a964de6d-9750-4013-8be2-79c2afc056e5}*SharedItemsImports = 13
NETCORE\src\Shared\Shared.projitems*{ac399f09-b465-4cfd-8d82-f1d1c5c9347e}*SharedItemsImports = 5
WEB\Src\DependencyCollector\Shared.Tests\DependencyCollector.Shared.Tests.projitems*{ace58393-3419-4fca-87cc-c33eb756c7e4}*SharedItemsImports = 13
LOGGING\test\CommonTestShared\CommonTestShared.projitems*{b1650e9b-6764-4dc0-8c71-96f0ff335c80}*SharedItemsImports = 5
LOGGING\test\Shared\Adapters.Shared.Tests.projitems*{b1650e9b-6764-4dc0-8c71-96f0ff335c80}*SharedItemsImports = 5
BASE\src\Common\Common\Common.projitems*{c30a7eb8-a86c-49ee-927e-7d9e03572e82}*SharedItemsImports = 5
@ -229,11 +195,8 @@ Global
NETCORE\src\Shared\Shared.projitems*{d56f2979-d6bc-4ef2-bb9b-4077b3290599}*SharedItemsImports = 13
WEB\Src\Common\Common.projitems*{deeaf599-83f9-4a05-add6-f612cdabe570}*SharedItemsImports = 5
BASE\src\Common\Common\Common.projitems*{e3d160e8-7f8c-416f-946f-6fdfc6787461}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared.Tests\Perf.Shared.Tests.projitems*{f254d4fb-428d-408e-8251-39bca7b4b5ce}*SharedItemsImports = 4
WEB\Src\TestFramework\Shared\TestFramework.Shared.projitems*{f254d4fb-428d-408e-8251-39bca7b4b5ce}*SharedItemsImports = 4
BASE\Test\TestFramework\Shared\TestFramework.Shared.projitems*{f76c6cbd-29b0-4564-bdcb-c969f8fec136}*SharedItemsImports = 13
LOGGING\test\Shared\Adapters.Shared.Tests.projitems*{fa775630-7917-4a99-a78c-fba46edf685c}*SharedItemsImports = 13
WEB\Src\DependencyCollector\Shared.Tests\DependencyCollector.Shared.Tests.projitems*{fac049e4-7011-45ff-bd06-69aca28921e8}*SharedItemsImports = 5
WEB\Src\TestFramework\Shared\TestFramework.Shared.projitems*{fac049e4-7011-45ff-bd06-69aca28921e8}*SharedItemsImports = 5
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -325,18 +288,6 @@ Global
{BECFC6B1-E04E-431C-A4D9-6F330F7DE22D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BECFC6B1-E04E-431C-A4D9-6F330F7DE22D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BECFC6B1-E04E-431C-A4D9-6F330F7DE22D}.Release|Any CPU.Build.0 = Release|Any CPU
{8F641C0B-A57A-43EC-B91F-4258F6DC0CD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8F641C0B-A57A-43EC-B91F-4258F6DC0CD5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8F641C0B-A57A-43EC-B91F-4258F6DC0CD5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8F641C0B-A57A-43EC-B91F-4258F6DC0CD5}.Release|Any CPU.Build.0 = Release|Any CPU
{07620299-B0E7-44BB-BE85-C4D1B25104F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{07620299-B0E7-44BB-BE85-C4D1B25104F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{07620299-B0E7-44BB-BE85-C4D1B25104F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07620299-B0E7-44BB-BE85-C4D1B25104F6}.Release|Any CPU.Build.0 = Release|Any CPU
{F254D4FB-428D-408E-8251-39BCA7B4B5CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F254D4FB-428D-408E-8251-39BCA7B4B5CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F254D4FB-428D-408E-8251-39BCA7B4B5CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F254D4FB-428D-408E-8251-39BCA7B4B5CE}.Release|Any CPU.Build.0 = Release|Any CPU
{262792BF-31A8-4FCD-BBC7-341EB29FAE96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{262792BF-31A8-4FCD-BBC7-341EB29FAE96}.Debug|Any CPU.Build.0 = Debug|Any CPU
{262792BF-31A8-4FCD-BBC7-341EB29FAE96}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -349,22 +300,6 @@ Global
{B90EDEA5-3CC8-4282-80A0-7116905E2427}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B90EDEA5-3CC8-4282-80A0-7116905E2427}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B90EDEA5-3CC8-4282-80A0-7116905E2427}.Release|Any CPU.Build.0 = Release|Any CPU
{8C764C9F-1078-47AF-87B8-AF62C7CD6447}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8C764C9F-1078-47AF-87B8-AF62C7CD6447}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8C764C9F-1078-47AF-87B8-AF62C7CD6447}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8C764C9F-1078-47AF-87B8-AF62C7CD6447}.Release|Any CPU.Build.0 = Release|Any CPU
{CF1818F5-CB8E-41A2-B3A8-344A80B79CEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF1818F5-CB8E-41A2-B3A8-344A80B79CEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF1818F5-CB8E-41A2-B3A8-344A80B79CEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF1818F5-CB8E-41A2-B3A8-344A80B79CEC}.Release|Any CPU.Build.0 = Release|Any CPU
{BCF933FA-3E6A-41C2-874A-E25195D6D0E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BCF933FA-3E6A-41C2-874A-E25195D6D0E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BCF933FA-3E6A-41C2-874A-E25195D6D0E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BCF933FA-3E6A-41C2-874A-E25195D6D0E8}.Release|Any CPU.Build.0 = Release|Any CPU
{4871B8AC-FB79-4D3D-940D-80E796110359}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4871B8AC-FB79-4D3D-940D-80E796110359}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4871B8AC-FB79-4D3D-940D-80E796110359}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4871B8AC-FB79-4D3D-940D-80E796110359}.Release|Any CPU.Build.0 = Release|Any CPU
{3D7258E3-5DDC-45A4-A457-9AA3BCC92DE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3D7258E3-5DDC-45A4-A457-9AA3BCC92DE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3D7258E3-5DDC-45A4-A457-9AA3BCC92DE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -421,6 +356,26 @@ Global
{5F40F661-DE59-4489-ABAC-BE6F2D730D9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5F40F661-DE59-4489-ABAC-BE6F2D730D9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5F40F661-DE59-4489-ABAC-BE6F2D730D9A}.Release|Any CPU.Build.0 = Release|Any CPU
{BB89365D-FFAA-4515-A277-D478A678D4B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BB89365D-FFAA-4515-A277-D478A678D4B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BB89365D-FFAA-4515-A277-D478A678D4B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BB89365D-FFAA-4515-A277-D478A678D4B3}.Release|Any CPU.Build.0 = Release|Any CPU
{F677DF78-A630-464C-BEA9-3BBAEA97412F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F677DF78-A630-464C-BEA9-3BBAEA97412F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F677DF78-A630-464C-BEA9-3BBAEA97412F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F677DF78-A630-464C-BEA9-3BBAEA97412F}.Release|Any CPU.Build.0 = Release|Any CPU
{43D6CB2E-6EE7-4B2B-A517-0D70298ACDBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{43D6CB2E-6EE7-4B2B-A517-0D70298ACDBF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43D6CB2E-6EE7-4B2B-A517-0D70298ACDBF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{43D6CB2E-6EE7-4B2B-A517-0D70298ACDBF}.Release|Any CPU.Build.0 = Release|Any CPU
{00FC8932-554B-455F-9E02-E8A4B0DBFAA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{00FC8932-554B-455F-9E02-E8A4B0DBFAA8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{00FC8932-554B-455F-9E02-E8A4B0DBFAA8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{00FC8932-554B-455F-9E02-E8A4B0DBFAA8}.Release|Any CPU.Build.0 = Release|Any CPU
{27B8D7BE-8CB7-48BF-97DA-0F031103C03D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{27B8D7BE-8CB7-48BF-97DA-0F031103C03D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{27B8D7BE-8CB7-48BF-97DA-0F031103C03D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{27B8D7BE-8CB7-48BF-97DA-0F031103C03D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -446,27 +401,12 @@ Global
{4B0BC3B7-C7FC-4333-9E28-5790D9153F07} = {632FB9CE-540D-4451-9FF2-12E89C1492BD}
{2759BC71-7F47-44DA-8579-AE2D8C8C684D} = {632FB9CE-540D-4451-9FF2-12E89C1492BD}
{21CB9A8A-F25B-4DEB-92CB-ACB6920EB8BC} = {FBAFD313-0139-4DA3-BCB3-EE54DC3B6CCD}
{ACE58393-3419-4FCA-87CC-C33EB756C7E4} = {005BD823-60AF-406E-AC20-842D7653FE60}
{BECFC6B1-E04E-431C-A4D9-6F330F7DE22D} = {DFCBB4ED-976C-4239-BCAF-8AA21E684E8C}
{568AEB4F-BA4C-47A5-9FA3-68F06CD11FED} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{8F641C0B-A57A-43EC-B91F-4258F6DC0CD5} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{07620299-B0E7-44BB-BE85-C4D1B25104F6} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{F254D4FB-428D-408E-8251-39BCA7B4B5CE} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{A78F50D4-F518-4DCB-878B-526FD54CCA35} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{0196259C-3582-4F4E-A01F-A8F9AE83B0F3} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{D13C3EC7-B300-4158-9054-216156B203BE} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{30A45441-0849-48FE-AD37-5D29D0E3068A} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{76B21FAA-270D-47DE-B14B-BEC87EDC34F1} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{A8BA3BD0-19CE-488D-B2BD-0B9B677F4E03} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{054C25DC-E545-4712-95C4-81F30CF65CE8} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{9B524BD3-682D-4B6F-9251-D4B2911DF0FD} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{262792BF-31A8-4FCD-BBC7-341EB29FAE96} = {D2A0AA36-57F7-436C-A7AF-7322927F1734}
{058A0843-A95F-4B0D-91DB-33B9D3FD7324} = {E9AEB857-E8AA-4ED6-A020-DF4D8486CEB0}
{B90EDEA5-3CC8-4282-80A0-7116905E2427} = {D8483C3E-C386-48AD-B935-700A54FDCF31}
{8C764C9F-1078-47AF-87B8-AF62C7CD6447} = {E9AEB857-E8AA-4ED6-A020-DF4D8486CEB0}
{CF1818F5-CB8E-41A2-B3A8-344A80B79CEC} = {E9AEB857-E8AA-4ED6-A020-DF4D8486CEB0}
{BCF933FA-3E6A-41C2-874A-E25195D6D0E8} = {E9AEB857-E8AA-4ED6-A020-DF4D8486CEB0}
{4871B8AC-FB79-4D3D-940D-80E796110359} = {E9AEB857-E8AA-4ED6-A020-DF4D8486CEB0}
{3D7258E3-5DDC-45A4-A457-9AA3BCC92DE7} = {E9AEB857-E8AA-4ED6-A020-DF4D8486CEB0}
{4BAA7AF2-3C5B-4C7C-9A9C-26F561218A86} = {632FB9CE-540D-4451-9FF2-12E89C1492BD}
{FAC049E4-7011-45FF-BD06-69ACA28921E8} = {005BD823-60AF-406E-AC20-842D7653FE60}
@ -481,6 +421,11 @@ Global
{7A903ABD-D7FB-4610-AED8-32EB2CBAEEBF} = {477A1BA0-0155-404C-A6E0-C2409C0FFE70}
{D12E8759-8C23-43DC-93D6-A63A8AAB910E} = {07076842-9CAA-4B4A-8AEF-88DE88CD37AC}
{5F40F661-DE59-4489-ABAC-BE6F2D730D9A} = {11AC7235-167E-40B5-B2E3-9CBF08700064}
{BB89365D-FFAA-4515-A277-D478A678D4B3} = {E9AEB857-E8AA-4ED6-A020-DF4D8486CEB0}
{F677DF78-A630-464C-BEA9-3BBAEA97412F} = {E9AEB857-E8AA-4ED6-A020-DF4D8486CEB0}
{43D6CB2E-6EE7-4B2B-A517-0D70298ACDBF} = {E9AEB857-E8AA-4ED6-A020-DF4D8486CEB0}
{00FC8932-554B-455F-9E02-E8A4B0DBFAA8} = {E9AEB857-E8AA-4ED6-A020-DF4D8486CEB0}
{27B8D7BE-8CB7-48BF-97DA-0F031103C03D} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0E0415AF-37CC-4999-8E5B-DD36F75BFD4D}

Просмотреть файл

@ -36,16 +36,11 @@ Global
BASE\src\Common\Common\Common.projitems*{07f570e4-3a43-44d4-99a0-1d961b8e2a70}*SharedItemsImports = 5
WEB\Src\Common\Common.projitems*{33478fb4-05fc-4cbd-a04d-17d0d6ba5b13}*SharedItemsImports = 5
WEB\Src\Common\Common.projitems*{56c361c2-724c-4688-b4e1-f94c0681ec33}*SharedItemsImports = 5
WEB\Src\DependencyCollector\Shared\DependencyCollector.Shared.projitems*{56c361c2-724c-4688-b4e1-f94c0681ec33}*SharedItemsImports = 5
BASE\src\Common\Common\Common.projitems*{893dfa71-0f4f-4bbf-ae8f-72208be237ba}*SharedItemsImports = 5
WEB\Src\Common\Common.projitems*{a8d39e66-af60-4f51-aedc-2464a2d86dea}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Filtering.Shared\Filtering.Shared.projitems*{a8d39e66-af60-4f51-aedc-2464a2d86dea}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared.NetFull\Perf.Shared.NetFull.projitems*{a8d39e66-af60-4f51-aedc-2464a2d86dea}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared.NetStandard20Net45\Perf.Shared.NetStandard20Net45.projitems*{a8d39e66-af60-4f51-aedc-2464a2d86dea}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared\Perf.Shared.projitems*{a8d39e66-af60-4f51-aedc-2464a2d86dea}*SharedItemsImports = 5
LOGGING\src\CommonShared\CommonShared.projitems*{dd8682e9-bdcf-459b-b1a6-97966c3e9b6a}*SharedItemsImports = 5
WEB\Src\Common\Common.projitems*{e524a10f-7b80-481b-9b7a-a478d4ca264c}*SharedItemsImports = 5
WEB\Src\WindowsServer\WindowsServer.Shared\WindowsServer.Shared.projitems*{e524a10f-7b80-481b-9b7a-a478d4ca264c}*SharedItemsImports = 5
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU

Просмотреть файл

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.3;net45</TargetFrameworks>
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
<RootNamespace>Microsoft.ApplicationInsights.DiagnosticSourceListener</RootNamespace>
<AssemblyName>Microsoft.ApplicationInsights.DiagnosticSourceListener</AssemblyName>
</PropertyGroup>
@ -22,29 +22,6 @@
<Content Include="ApplicationInsights.config.uninstall.xdt" />
</ItemGroup>
<ItemGroup Condition=" $(OS) == 'Windows_NT'">
<!--Analyzers-->
<PackageReference Include="Desktop.Analyzers" Version="1.1.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<!--Build Infrastructure-->
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="0.4.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\BASE\src\Microsoft.ApplicationInsights\Microsoft.ApplicationInsights.csproj" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="4.6.0" />

Просмотреть файл

@ -26,29 +26,6 @@
<Content Include="ApplicationInsights.config.uninstall.xdt" />
</ItemGroup>
<ItemGroup Condition=" $(OS) == 'Windows_NT'">
<!--Analyzers-->
<PackageReference Include="Desktop.Analyzers" Version="1.1.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<!--Build Infrastructure-->
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="0.4.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Diagnostics.Tracing.EventRegister" Version="1.1.28">
<PrivateAssets>All</PrivateAssets>

Просмотреть файл

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.3</TargetFramework>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>Microsoft.ApplicationInsights.EventSourceListener</RootNamespace>
<AssemblyName>Microsoft.ApplicationInsights.EventSourceListener</AssemblyName>
</PropertyGroup>
@ -26,29 +26,6 @@
<Content Include="ApplicationInsights.config.uninstall.xdt" />
</ItemGroup>
<ItemGroup Condition=" $(OS) == 'Windows_NT'">
<!--Analyzers-->
<PackageReference Include="Desktop.Analyzers" Version="1.1.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<!--Build Infrastructure-->
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="0.4.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\BASE\src\Microsoft.ApplicationInsights\Microsoft.ApplicationInsights.csproj" />
<PackageReference Include="System.Diagnostics.Process" Version="4.1.0" />

Просмотреть файл

@ -25,35 +25,8 @@
<PackageTags>$(PackageTags) ILogger ILoggerBuilder ILoggerProvider</PackageTags>
</PropertyGroup>
<ItemGroup Condition=" $(OS) == 'Windows_NT'">
<!--Analyzers-->
<PackageReference Include="Desktop.Analyzers" Version="1.1.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<!--Build Infrastructure-->
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="0.4.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\BASE\src\Microsoft.ApplicationInsights\Microsoft.ApplicationInsights.csproj" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.1.0" />
</ItemGroup>

Просмотреть файл

@ -1,6 +1,6 @@
<Project ToolsVersion="15.0" Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net45;netstandard1.3</TargetFrameworks>
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
<RootNamespace>Microsoft.ApplicationInsights.Log4NetAppender</RootNamespace>
<AssemblyName>Microsoft.ApplicationInsights.Log4NetAppender</AssemblyName>
</PropertyGroup>
@ -17,29 +17,6 @@
<PackageTags>$(PackageTags) Log4Net</PackageTags>
</PropertyGroup>
<ItemGroup Condition=" $(OS) == 'Windows_NT'">
<!--Analyzers-->
<PackageReference Include="Desktop.Analyzers" Version="1.1.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<!--Build Infrastructure-->
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="0.4.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Diagnostics.Tracing.EventRegister" Version="1.1.28">
<PrivateAssets>All</PrivateAssets>

Просмотреть файл

@ -1,6 +1,6 @@
<Project ToolsVersion="15.0" Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net45;netstandard2.0;netstandard1.3</TargetFrameworks>
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
<RootNamespace>Microsoft.ApplicationInsights.NLogTarget</RootNamespace>
<AssemblyName>Microsoft.ApplicationInsights.NLogTarget</AssemblyName>
</PropertyGroup>
@ -17,33 +17,6 @@
<PackageTags>$(PackageTags) NLog</PackageTags>
</PropertyGroup>
<ItemGroup Condition=" $(OS) == 'Windows_NT'">
<!--Analyzers-->
<PackageReference Include="Desktop.Analyzers" Version="1.1.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<!--Build Infrastructure-->
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="0.4.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="NLog" Version="4.5.11" />
<PackageReference Include="Microsoft.Diagnostics.Tracing.EventRegister" Version="1.1.28">

Просмотреть файл

@ -1,6 +1,6 @@
<Project ToolsVersion="15.0" Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net45;netstandard1.3</TargetFrameworks>
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
<RootNamespace>Microsoft.ApplicationInsights.TraceListener</RootNamespace>
<AssemblyName>Microsoft.ApplicationInsights.TraceListener</AssemblyName>
</PropertyGroup>
@ -17,29 +17,6 @@
<PackageTags>$(PackageTags) TraceListener</PackageTags>
</PropertyGroup>
<ItemGroup Condition=" $(OS) == 'Windows_NT'">
<!--Analyzers-->
<PackageReference Include="Desktop.Analyzers" Version="1.1.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<!--Build Infrastructure-->
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="0.4.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Diagnostics.Tracing.EventRegister" Version="1.1.28">
<PrivateAssets>All</PrivateAssets>
@ -47,7 +24,7 @@
<ProjectReference Include="..\..\..\BASE\src\Microsoft.ApplicationInsights\Microsoft.ApplicationInsights.csproj" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard1.3'">
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
<PackageReference Include="System.Diagnostics.TraceSource" Version="4.3.0" />
</ItemGroup>

Просмотреть файл

@ -3,7 +3,7 @@
<PropertyGroup>
<RootNamespace>Microsoft.ApplicationInsights.DiagnosticSourceListener.Tests</RootNamespace>
<AssemblyName>Microsoft.ApplicationInsights.DiagnosticSourceListener.Tests</AssemblyName>
<TargetFrameworks>netcoreapp1.1;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks>netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>

Просмотреть файл

@ -3,7 +3,7 @@
<PropertyGroup>
<RootNamespace>Microsoft.ApplicationInsights.EventSourceListener.Tests</RootNamespace>
<AssemblyName>Microsoft.ApplicationInsights.EventSourceListener.Tests</AssemblyName>
<TargetFrameworks>netcoreapp1.1;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks>netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<IsPackable>false</IsPackable>
</PropertyGroup>

Просмотреть файл

@ -3,7 +3,7 @@
<PropertyGroup>
<RootNamespace>Microsoft.ApplicationInsights.Log4NetAppender.Tests</RootNamespace>
<AssemblyName>Microsoft.ApplicationInsights.Log4NetAppender.Tests</AssemblyName>
<TargetFrameworks>net45;netcoreapp1.1;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks>net45;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<IsPackable>false</IsPackable>
</PropertyGroup>

Просмотреть файл

@ -3,7 +3,7 @@
<PropertyGroup>
<RootNamespace>Microsoft.ApplicationInsights.NLogTarget.Tests</RootNamespace>
<AssemblyName>Microsoft.ApplicationInsights.NLogTarget.Tests</AssemblyName>
<TargetFrameworks>net45;netcoreapp1.1;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks>net45;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<IsPackable>false</IsPackable>
</PropertyGroup>

Просмотреть файл

@ -3,7 +3,7 @@
<PropertyGroup>
<RootNamespace>Microsoft.ApplicationInsights.TraceListener.Tests</RootNamespace>
<AssemblyName>Microsoft.ApplicationInsights.TraceListener.Tests</AssemblyName>
<TargetFrameworks>net45;netcoreapp1.1;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks>net45;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<IsPackable>false</IsPackable>
</PropertyGroup>

Просмотреть файл

@ -24,13 +24,21 @@ steps:
arguments: "--configuration Release"
- task: DotNetCoreCLI@1
displayName: Functional Tests 3.0
displayName: Integration Tests
continueOnError: true
inputs:
command: "test"
projects: "NETCORE/test/**/TestApp30.Tests30.csproj"
projects: "NETCORE/test/**/IntegrationTests.Tests.csproj"
arguments: "--configuration Release -l trx"
- task: DotNetCoreCLI@1
displayName: Functional MVC Tests
continueOnError: true
inputs:
command: "test"
projects: "NETCORE/test/**/*FunctionalTests.MVC.Tests.csproj"
arguments: "--configuration Release --framework netcoreapp3.1 -l trx"
- task: DotNetCoreCLI@1
displayName: Unit Tests for AspNetCore 3.1
continueOnError: true
@ -55,12 +63,12 @@ steps:
version: 2.2.x
- task: DotNetCoreCLI@1
displayName: Functional Tests 2.0
displayName: Functional MVC Tests
continueOnError: true
inputs:
command: "test"
projects: "NETCORE/test/**/*Tests20.csproj"
arguments: "--configuration Release -l trx"
projects: "NETCORE/test/**/*FunctionalTests.MVC.Tests.csproj"
arguments: "--configuration Release --framework netcoreapp2.1 -l trx"
- task: DotNetCoreCLI@1
displayName: Unit Tests for AspNetCore 2.1
@ -86,6 +94,7 @@ steps:
inputs:
testRunner: "VSTest"
testResultsFiles: "**/*.trx"
failTaskOnFailedTests: true
#- task: DotNetCoreCLI@1
# displayName: Package Nuget

Просмотреть файл

@ -28,14 +28,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ApplicationInsigh
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ApplicationInsights.AspNetCore.Tests", "test\Microsoft.ApplicationInsights.AspNetCore.Tests\Microsoft.ApplicationInsights.AspNetCore.Tests.csproj", "{2766D8AF-C20B-4F3A-8260-6C2D39B7A8A0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EmptyApp20.FunctionalTests20", "test\EmptyApp20.FunctionalTests\EmptyApp20.FunctionalTests20.csproj", "{C47AFD8A-3326-4391-8115-69349C04C3DA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunctionalTestUtils20", "test\FunctionalTestUtils20\FunctionalTestUtils20.csproj", "{937AF006-898E-43FD-80A6-B20D7E3A1944}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MVCFramework20.FunctionalTests20", "test\MVCFramework20.FunctionalTests\MVCFramework20.FunctionalTests20.csproj", "{51198C41-CD4A-4006-84D4-DE20A0A44363}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApi20.FunctionalTests20", "test\WebApi20.FunctionalTests\WebApi20.FunctionalTests20.csproj", "{C3B3F515-0305-4809-A9A8-37FD80428F74}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApplicationInsightsTypes", "test\ApplicationInsightsTypes\ApplicationInsightsTypes.csproj", "{9DA7024F-216F-4FA5-9B6D-CE4216C2DD72}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IntegrationTests.WebApp", "test\IntegrationTests.WebApp\IntegrationTests.WebApp.csproj", "{8E71FECF-E090-409E-8551-C597F9DFB91C}"
@ -64,16 +56,21 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TelemetryChannel", "..\BASE
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ApplicationInsights", "..\BASE\src\Microsoft.ApplicationInsights\Microsoft.ApplicationInsights.csproj", "{2C7CEEDD-BB15-48DF-B12A-B268E9D74859}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunctionalTests.EmptyApp.Tests", "test\FunctionalTests.EmptyApp.Tests\FunctionalTests.EmptyApp.Tests.csproj", "{C7A8D822-CA6C-497D-AA26-C36F25BA61FD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunctionalTests.Utils", "test\FunctionalTests.Utils\FunctionalTests.Utils.csproj", "{63F64005-CDC7-4062-8CBC-A40B049E342A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunctionalTests.MVC.Tests", "test\FunctionalTests.MVC.Tests\FunctionalTests.MVC.Tests.csproj", "{9693CC30-A3E6-48A7-A68E-6E0DD098D779}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunctionalTests.WebApi.Tests", "test\FunctionalTests.WebApi.Tests\FunctionalTests.WebApi.Tests.csproj", "{E78404EA-CBAA-4366-B659-C3A46BC9DF15}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
..\BASE\src\Common\Common\Common.projitems*{0c91d961-b21e-4760-a192-14193f10b831}*SharedItemsImports = 5
..\WEB\Src\Common\Common.projitems*{1056392c-387c-4530-ba3f-aa687ea453ae}*SharedItemsImports = 5
..\BASE\src\Common\Common\Common.projitems*{2c7ceedd-bb15-48df-b12a-b268e9d74859}*SharedItemsImports = 5
..\WEB\Src\Common\Common.projitems*{3c157fc2-2e52-45fc-87e8-76e4fced4260}*SharedItemsImports = 5
..\WEB\Src\PerformanceCollector\Filtering.Shared\Filtering.Shared.projitems*{3c157fc2-2e52-45fc-87e8-76e4fced4260}*SharedItemsImports = 5
..\WEB\Src\PerformanceCollector\Perf.Shared.NetFull\Perf.Shared.NetFull.projitems*{3c157fc2-2e52-45fc-87e8-76e4fced4260}*SharedItemsImports = 5
..\WEB\Src\PerformanceCollector\Perf.Shared.NetStandard20Net45\Perf.Shared.NetStandard20Net45.projitems*{3c157fc2-2e52-45fc-87e8-76e4fced4260}*SharedItemsImports = 5
..\WEB\Src\PerformanceCollector\Perf.Shared\Perf.Shared.projitems*{3c157fc2-2e52-45fc-87e8-76e4fced4260}*SharedItemsImports = 5
..\LOGGING\src\CommonShared\CommonShared.projitems*{4a9ec531-f8b2-4cd1-bd6b-745f33e52e7b}*SharedItemsImports = 5
..\WEB\Src\Common\Common.projitems*{8d13f3c8-d938-44fd-a0d8-b5d1712c95db}*SharedItemsImports = 5
src\Shared\Shared.projitems*{95ec3635-22e4-4c3a-a066-f5823a0648da}*SharedItemsImports = 5
@ -94,22 +91,6 @@ Global
{2766D8AF-C20B-4F3A-8260-6C2D39B7A8A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2766D8AF-C20B-4F3A-8260-6C2D39B7A8A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2766D8AF-C20B-4F3A-8260-6C2D39B7A8A0}.Release|Any CPU.Build.0 = Release|Any CPU
{C47AFD8A-3326-4391-8115-69349C04C3DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C47AFD8A-3326-4391-8115-69349C04C3DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C47AFD8A-3326-4391-8115-69349C04C3DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C47AFD8A-3326-4391-8115-69349C04C3DA}.Release|Any CPU.Build.0 = Release|Any CPU
{937AF006-898E-43FD-80A6-B20D7E3A1944}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{937AF006-898E-43FD-80A6-B20D7E3A1944}.Debug|Any CPU.Build.0 = Debug|Any CPU
{937AF006-898E-43FD-80A6-B20D7E3A1944}.Release|Any CPU.ActiveCfg = Release|Any CPU
{937AF006-898E-43FD-80A6-B20D7E3A1944}.Release|Any CPU.Build.0 = Release|Any CPU
{51198C41-CD4A-4006-84D4-DE20A0A44363}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{51198C41-CD4A-4006-84D4-DE20A0A44363}.Debug|Any CPU.Build.0 = Debug|Any CPU
{51198C41-CD4A-4006-84D4-DE20A0A44363}.Release|Any CPU.ActiveCfg = Release|Any CPU
{51198C41-CD4A-4006-84D4-DE20A0A44363}.Release|Any CPU.Build.0 = Release|Any CPU
{C3B3F515-0305-4809-A9A8-37FD80428F74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C3B3F515-0305-4809-A9A8-37FD80428F74}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C3B3F515-0305-4809-A9A8-37FD80428F74}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C3B3F515-0305-4809-A9A8-37FD80428F74}.Release|Any CPU.Build.0 = Release|Any CPU
{9DA7024F-216F-4FA5-9B6D-CE4216C2DD72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9DA7024F-216F-4FA5-9B6D-CE4216C2DD72}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9DA7024F-216F-4FA5-9B6D-CE4216C2DD72}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -158,6 +139,22 @@ Global
{2C7CEEDD-BB15-48DF-B12A-B268E9D74859}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2C7CEEDD-BB15-48DF-B12A-B268E9D74859}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2C7CEEDD-BB15-48DF-B12A-B268E9D74859}.Release|Any CPU.Build.0 = Release|Any CPU
{C7A8D822-CA6C-497D-AA26-C36F25BA61FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C7A8D822-CA6C-497D-AA26-C36F25BA61FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C7A8D822-CA6C-497D-AA26-C36F25BA61FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C7A8D822-CA6C-497D-AA26-C36F25BA61FD}.Release|Any CPU.Build.0 = Release|Any CPU
{63F64005-CDC7-4062-8CBC-A40B049E342A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{63F64005-CDC7-4062-8CBC-A40B049E342A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{63F64005-CDC7-4062-8CBC-A40B049E342A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{63F64005-CDC7-4062-8CBC-A40B049E342A}.Release|Any CPU.Build.0 = Release|Any CPU
{9693CC30-A3E6-48A7-A68E-6E0DD098D779}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9693CC30-A3E6-48A7-A68E-6E0DD098D779}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9693CC30-A3E6-48A7-A68E-6E0DD098D779}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9693CC30-A3E6-48A7-A68E-6E0DD098D779}.Release|Any CPU.Build.0 = Release|Any CPU
{E78404EA-CBAA-4366-B659-C3A46BC9DF15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E78404EA-CBAA-4366-B659-C3A46BC9DF15}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E78404EA-CBAA-4366-B659-C3A46BC9DF15}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E78404EA-CBAA-4366-B659-C3A46BC9DF15}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -166,10 +163,6 @@ Global
{16B44D67-6214-4DDE-B419-93EF073E2E69} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
{95EC3635-22E4-4C3A-A066-F5823A0648DA} = {2E6DDE9E-8C75-4F9C-8906-08EBDD6E73EF}
{2766D8AF-C20B-4F3A-8260-6C2D39B7A8A0} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
{C47AFD8A-3326-4391-8115-69349C04C3DA} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
{937AF006-898E-43FD-80A6-B20D7E3A1944} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
{51198C41-CD4A-4006-84D4-DE20A0A44363} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
{C3B3F515-0305-4809-A9A8-37FD80428F74} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
{9DA7024F-216F-4FA5-9B6D-CE4216C2DD72} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
{8E71FECF-E090-409E-8551-C597F9DFB91C} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
{FE9DB9A7-D9AE-4188-945C-393D70022D9A} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
@ -183,6 +176,10 @@ Global
{8D13F3C8-D938-44FD-A0D8-B5D1712C95DB} = {042C2916-4BB7-4CCB-BD61-A8BAAB0129B9}
{0C91D961-B21E-4760-A192-14193F10B831} = {042C2916-4BB7-4CCB-BD61-A8BAAB0129B9}
{2C7CEEDD-BB15-48DF-B12A-B268E9D74859} = {042C2916-4BB7-4CCB-BD61-A8BAAB0129B9}
{C7A8D822-CA6C-497D-AA26-C36F25BA61FD} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
{63F64005-CDC7-4062-8CBC-A40B049E342A} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
{9693CC30-A3E6-48A7-A68E-6E0DD098D779} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
{E78404EA-CBAA-4366-B659-C3A46BC9DF15} = {8B5230E5-8138-44D6-839F-DF9248F195EE}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {047855A4-470F-43B1-8B74-69651DD6B8A6}

Просмотреть файл

@ -15,24 +15,34 @@
internal class DefaultApplicationInsightsServiceConfigureOptions : IConfigureOptions<ApplicationInsightsServiceOptions>
{
private readonly IHostingEnvironment hostingEnvironment;
private readonly IConfiguration userConfiguration;
/// <summary>
/// Initializes a new instance of the <see cref="DefaultApplicationInsightsServiceConfigureOptions"/> class.
/// </summary>
/// <param name="hostingEnvironment"><see cref="IHostingEnvironment"/> to use for retreiving ContentRootPath.</param>
public DefaultApplicationInsightsServiceConfigureOptions(IHostingEnvironment hostingEnvironment)
/// <param name="configuration"><see cref="IConfiguration"/> from an application.</param>
public DefaultApplicationInsightsServiceConfigureOptions(IHostingEnvironment hostingEnvironment, IConfiguration configuration = null)
{
this.hostingEnvironment = hostingEnvironment;
this.userConfiguration = configuration;
}
/// <inheritdoc />
public void Configure(ApplicationInsightsServiceOptions options)
{
var configBuilder = new ConfigurationBuilder()
.SetBasePath(this.hostingEnvironment.ContentRootPath ?? Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", true)
.AddJsonFile(string.Format(CultureInfo.InvariantCulture, "appsettings.{0}.json", this.hostingEnvironment.EnvironmentName), true)
.AddEnvironmentVariables();
.SetBasePath(this.hostingEnvironment.ContentRootPath ?? Directory.GetCurrentDirectory());
#if NETSTANDARD2_0 || NET461
if (this.userConfiguration != null)
{
configBuilder.AddConfiguration(this.userConfiguration);
}
#endif
configBuilder.AddJsonFile("appsettings.json", true)
.AddJsonFile(string.Format(CultureInfo.InvariantCulture, "appsettings.{0}.json", this.hostingEnvironment.EnvironmentName), true)
.AddEnvironmentVariables();
ApplicationInsightsExtensions.AddTelemetryConfiguration(configBuilder.Build(), options);
if (Debugger.IsAttached)

Просмотреть файл

@ -15,10 +15,9 @@
<PropertyGroup>
<AssemblyName>Microsoft.ApplicationInsights.AspNetCore</AssemblyName>
<LangVersion>7.2</LangVersion>
<TargetFrameworks>netstandard2.0;net451;net46;net461;netstandard1.6</TargetFrameworks>
<TargetFrameworks>netstandard2.0;net451;net46;net461</TargetFrameworks>
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard1.6;netstandard2.0</TargetFrameworks>
<NetStandardImplicitPackageVersion Condition=" '$(TargetFramework)' == 'netstandard1.6' ">1.6.1</NetStandardImplicitPackageVersion>
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard2.0</TargetFrameworks>
<DefineConstants>$(DefineConstants);AI_ASPNETCORE_WEB;</DefineConstants>
</PropertyGroup>
@ -35,29 +34,6 @@
<NoWarn>1701;1702</NoWarn>
</PropertyGroup>
<ItemGroup Condition=" $(OS) == 'Windows_NT'">
<!--Analyzers-->
<PackageReference Include="Desktop.Analyzers" Version="1.1.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<!--Build Infrastructure-->
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="0.4.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<Import Project="..\Shared\Shared.projitems" Label="Shared" />
<ItemGroup>
@ -89,7 +65,7 @@
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.6' OR '$(TargetFramework)' == 'netstandard2.0' ">
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
</ItemGroup>

Просмотреть файл

@ -28,29 +28,6 @@
<PackageTags>$(PackageTags)worker;console;backgroundtasks;</PackageTags>
</PropertyGroup>
<ItemGroup Condition=" $(OS) == 'Windows_NT'">
<!--Analyzers-->
<PackageReference Include="Desktop.Analyzers" Version="1.1.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="2.9.8">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<!--Build Infrastructure-->
<PackageReference Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="0.4.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
</ItemGroup>
<Import Project="..\Shared\Shared.projitems" Label="Shared" />
<ItemGroup>

Просмотреть файл

@ -59,6 +59,11 @@
private const string DeveloperModeForWebSites = "APPINSIGHTS_DEVELOPER_MODE";
private const string EndpointAddressForWebSites = "APPINSIGHTS_ENDPOINTADDRESS";
#if NETSTANDARD2_0 || NET461
private const string ApplicationInsightsSectionFromConfig = "ApplicationInsights";
private const string TelemetryChannelSectionFromConfig = "ApplicationInsights:TelemetryChannel";
#endif
[SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "Used in NetStandard2.0 build.")]
private const string EventSourceNameForSystemRuntime = "System.Runtime";
@ -193,11 +198,7 @@
{
telemetryConfigValues.Add(new KeyValuePair<string, string>(
DeveloperModeForWebSites,
#if !NETSTANDARD1_6
developerMode.Value.ToString(System.Globalization.CultureInfo.InvariantCulture)));
#else
developerMode.Value.ToString()));
#endif
wasAnythingSet = true;
}
@ -228,26 +229,9 @@
}
/// <summary>
/// Read from configuration
/// Config.json will look like this:
/// <para>
/// "ApplicationInsights": {
/// "InstrumentationKey": "11111111-2222-3333-4444-555555555555",
/// "TelemetryChannel": {
/// "EndpointAddress": "http://dc.services.visualstudio.com/v2/track",
/// "DeveloperMode": true
/// }
/// }.
/// </para>
/// Or.
/// <para>
/// "ApplicationInsights": {
/// "ConnectionString" : "InstrumentationKey=11111111-2222-3333-4444-555555555555;IngestionEndpoint=http://dc.services.visualstudio.com"
/// "TelemetryChannel": {
/// "DeveloperMode": true
/// }
/// }.
/// </para>
/// Read configuration from appSettings.json, appsettings.{env.EnvironmentName}.json,
/// IConfiguation used in an application and EnvironmentVariables.
/// Bind configuration to ApplicationInsightsServiceOptions.
/// Values can also be read from environment variables to support azure web sites configuration.
/// </summary>
/// <param name="config">Configuration to read variables from.</param>
@ -258,6 +242,11 @@
{
try
{
#if NETSTANDARD2_0 || NET461
config.GetSection(ApplicationInsightsSectionFromConfig).Bind(serviceOptions);
config.GetSection(TelemetryChannelSectionFromConfig).Bind(serviceOptions);
#endif
if (config.TryGetValue(primaryKey: ConnectionStringEnvironmentVariable, backupKey: ConnectionStringFromConfig, value: out string connectionStringValue))
{
serviceOptions.ConnectionString = connectionStringValue;

Просмотреть файл

@ -12,77 +12,49 @@
/// </summary>
public class ApplicationInsightsServiceOptions
{
/// <summary>
/// Initializes a new instance of the <see cref="ApplicationInsightsServiceOptions" /> class.
/// Application Insights service options that controls the default behavior of application insights features.
/// </summary>
public ApplicationInsightsServiceOptions()
{
this.EnablePerformanceCounterCollectionModule = true;
this.EnableQuickPulseMetricStream = true;
this.EnableAdaptiveSampling = true;
this.EnableDebugLogger = true;
this.EnableHeartbeat = true;
this.AddAutoCollectedMetricExtractor = true;
#if AI_ASPNETCORE_WEB
this.EnableRequestTrackingTelemetryModule = true;
this.EnableAuthenticationTrackingJavaScript = false;
this.RequestCollectionOptions = new RequestCollectionOptions();
#endif
#if NETSTANDARD2_0
this.EnableEventCounterCollectionModule = true;
#endif
this.EnableDependencyTrackingTelemetryModule = true;
this.EnableAzureInstanceMetadataTelemetryModule = true;
this.EnableAppServicesHeartbeatTelemetryModule = true;
this.DependencyCollectionOptions = new DependencyCollectionOptions();
this.ApplicationVersion = Assembly.GetEntryAssembly()?.GetName().Version.ToString();
}
/// <summary>
/// Gets or sets a value indicating whether QuickPulseTelemetryModule and QuickPulseTelemetryProcessor are registered with the configuration.
/// Setting EnableQuickPulseMetricStream to <value>false</value>, will disable the default quick pulse metric stream. Defaults to <value>true</value>.
/// </summary>
public bool EnableQuickPulseMetricStream { get; set; }
public bool EnableQuickPulseMetricStream { get; set; } = true;
/// <summary>
/// Gets or sets a value indicating whether PerformanceCollectorModule should be enabled.
/// Defaults to <value>true</value>.
/// </summary>
public bool EnablePerformanceCounterCollectionModule { get; set; }
public bool EnablePerformanceCounterCollectionModule { get; set; } = true;
/// <summary>
/// Gets or sets a value indicating whether AppServicesHeartbeatTelemetryModule should be enabled.
/// Defaults to <value>true</value>.
/// </summary>
public bool EnableAppServicesHeartbeatTelemetryModule { get; set; }
public bool EnableAppServicesHeartbeatTelemetryModule { get; set; } = true;
/// <summary>
/// Gets or sets a value indicating whether AzureInstanceMetadataTelemetryModule should be enabled.
/// Defaults to <value>true</value>.
/// </summary>
public bool EnableAzureInstanceMetadataTelemetryModule { get; set; }
public bool EnableAzureInstanceMetadataTelemetryModule { get; set; } = true;
/// <summary>
/// Gets or sets a value indicating whether DependencyTrackingTelemetryModule should be enabled.
/// Defaults to <value>true</value>.
/// </summary>
public bool EnableDependencyTrackingTelemetryModule { get; set; }
public bool EnableDependencyTrackingTelemetryModule { get; set; } = true;
#if NETSTANDARD2_0
/// <summary>
/// Gets or sets a value indicating whether EventCounterCollectionModule should be enabled.
/// Defaults to <value>true</value>.
/// </summary>
public bool EnableEventCounterCollectionModule { get; set; }
public bool EnableEventCounterCollectionModule { get; set; } = true;
#endif
/// <summary>
/// Gets or sets a value indicating whether telemetry processor that controls sampling is added to the service.
/// Setting EnableAdaptiveSampling to <value>false</value>, will disable the default adaptive sampling feature. Defaults to <value>true</value>.
/// </summary>
public bool EnableAdaptiveSampling { get; set; }
public bool EnableAdaptiveSampling { get; set; } = true;
/// <summary>
/// Gets or sets the default instrumentation key for the application.
@ -97,7 +69,7 @@
/// <summary>
/// Gets or sets the application version reported with telemetries.
/// </summary>
public string ApplicationVersion { get; set; }
public string ApplicationVersion { get; set; } = Assembly.GetEntryAssembly()?.GetName().Version.ToString();
/// <summary>
/// Gets or sets a value indicating whether telemetry channel should be set to developer mode.
@ -112,42 +84,42 @@
/// <summary>
/// Gets or sets a value indicating whether a logger would be registered automatically in debug mode.
/// </summary>
public bool EnableDebugLogger { get; set; }
public bool EnableDebugLogger { get; set; } = true;
/// <summary>
/// Gets or sets a value indicating whether heartbeats are enabled.
/// </summary>
public bool EnableHeartbeat { get; set; }
public bool EnableHeartbeat { get; set; } = true;
/// <summary>
/// Gets or sets a value indicating whether AutoCollectedMetricExtractors are added or not.
/// Defaults to <value>true</value>.
/// </summary>
public bool AddAutoCollectedMetricExtractor { get; set; }
public bool AddAutoCollectedMetricExtractor { get; set; } = true;
#if AI_ASPNETCORE_WEB
/// <summary>
/// Gets <see cref="RequestCollectionOptions"/> that allow to manage <see cref="RequestTrackingTelemetryModule"/>.
/// </summary>
public RequestCollectionOptions RequestCollectionOptions { get; }
public RequestCollectionOptions RequestCollectionOptions { get; } = new RequestCollectionOptions();
/// <summary>
/// Gets or sets a value indicating whether RequestTrackingTelemetryModule should be enabled.
/// Defaults to <value>true</value>.
/// </summary>
public bool EnableRequestTrackingTelemetryModule { get; set; }
public bool EnableRequestTrackingTelemetryModule { get; set; } = true;
/// <summary>
/// Gets or sets a value indicating whether a JavaScript snippet to track the current authenticated user should
/// be printed along with the main ApplicationInsights tracking script.
/// </summary>
public bool EnableAuthenticationTrackingJavaScript { get; set; }
public bool EnableAuthenticationTrackingJavaScript { get; set; } = false;
#endif
/// <summary>
/// Gets <see cref="DependencyCollectionOptions"/> that allow to manage <see cref="DependencyTrackingTelemetryModule"/>.
/// </summary>
public DependencyCollectionOptions DependencyCollectionOptions { get; }
public DependencyCollectionOptions DependencyCollectionOptions { get; } = new DependencyCollectionOptions();
/// <summary>
/// Copy the properties from this <see cref="ApplicationInsightsServiceOptions"/> to a target instance.
@ -170,7 +142,11 @@
target.InstrumentationKey = this.InstrumentationKey;
}
target.ConnectionString = this.ConnectionString;
if (!string.IsNullOrEmpty(this.ConnectionString))
{
target.ConnectionString = this.ConnectionString;
}
target.ApplicationVersion = this.ApplicationVersion;
target.EnableAdaptiveSampling = this.EnableAdaptiveSampling;
target.EnableDebugLogger = this.EnableDebugLogger;

Просмотреть файл

@ -2,8 +2,8 @@
<PropertyGroup>
<VersionPrefix>1.0.2</VersionPrefix>
<TargetFrameworks>net461;netstandard1.6</TargetFrameworks>
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard1.6</TargetFrameworks>
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netstandard2.0</TargetFrameworks>
<DelaySign Condition=" '$(OS)' == 'Windows_NT' ">true</DelaySign>
<PreserveCompilationContext>true</PreserveCompilationContext>
<AssemblyName>ApplicationInsightsTypes</AssemblyName>

Просмотреть файл

@ -1,46 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<VersionPrefix>2.0.0</VersionPrefix>
<TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netcoreapp2.0</TargetFrameworks>
<RuntimeIdentifier Condition=" '$(TargetFramework)' == 'net461' ">win7-x86</RuntimeIdentifier>
<PreserveCompilationContext>true</PreserveCompilationContext>
<AssemblyName>EmptyApp20.FunctionalTests20.Tests</AssemblyName>
<PackageId>EmptyApp20.FunctionalTests</PackageId>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">2.0.0</RuntimeFrameworkVersion>
<DebugType>pdbonly</DebugType>
<DebugSymbols>true</DebugSymbols>
<DependsOnNETStandard Condition=" '$(TargetFramework)' == 'net461'">true</DependsOnNETStandard>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\FunctionalTestUtils20\FunctionalTestUtils20.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="2.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
<PackageReference Include="xunit" Version="2.3.1" />
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
<Reference Include="System" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
<ItemGroup>
<None Update="App.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<Generator>SettingsSingleFileGenerator</Generator>
</None>
</ItemGroup>
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
</Project>

26
NETCORE/test/FunctionalTests.EmptyApp.Tests/App.Designer.cs сгенерированный Normal file
Просмотреть файл

@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace FunctionalTests.EmptyApp.Tests {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.6.0.0")]
internal sealed partial class App : global::System.Configuration.ApplicationSettingsBase {
private static App defaultInstance = ((App)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new App())));
public static App Default {
get {
return defaultInstance;
}
}
}
}

Просмотреть файл

@ -3,11 +3,11 @@ using Xunit;
using Xunit.Abstractions;
[assembly: CollectionBehavior(DisableTestParallelization = true)]
namespace EmptyApp20.FunctionalTests.FunctionalTest
namespace FunctionalTests.EmptyApp.Tests.FunctionalTest
{
using System;
using System.Reflection;
using FunctionalTestUtils;
using FunctionalTests.Utils;
using Microsoft.ApplicationInsights.DataContracts;
public class ExceptionTelemetryEmptyAppTests : TelemetryTestsBase

Просмотреть файл

@ -1,11 +1,11 @@
namespace EmptyApp20.FunctionalTests.FunctionalTest
namespace FunctionalTests.EmptyApp.Tests.FunctionalTest
{
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Reflection;
using AI;
using FunctionalTestUtils;
using FunctionalTests.Utils;
using Microsoft.ApplicationInsights.DataContracts;
using Xunit;
using Xunit.Abstractions;

Просмотреть файл

@ -1,7 +1,7 @@
namespace EmptyApp20.FunctionalTests.FunctionalTest
namespace FunctionalTests.EmptyApp.Tests.FunctionalTest
{
using System.Reflection;
using FunctionalTestUtils;
using FunctionalTests.Utils;
using Microsoft.ApplicationInsights.DataContracts;
using Xunit;
using Xunit.Abstractions;

Просмотреть файл

@ -0,0 +1,54 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netcoreapp2.1;netcoreapp3.1;net461</TargetFrameworks>
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<RuntimeIdentifier Condition=" '$(TargetFramework)' == 'net461' ">win7-x86</RuntimeIdentifier>
<AssemblyName>FunctionalTests.EmptyApp.Tests</AssemblyName>
<PackageId>FunctionalTests.EmptyApp.Tests</PackageId>
<DependsOnNETStandard Condition=" '$(TargetFramework)' == 'net461'">true</DependsOnNETStandard>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="2.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
<PackageReference Include="xunit" Version="2.3.1" />
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
<Reference Include="System" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' != 'net461' ">
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.7.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FunctionalTests.Utils\FunctionalTests.Utils.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="App.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>App.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
<ItemGroup>
<Compile Update="App.Designer.cs">
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<AutoGen>True</AutoGen>
<DependentUpon>App.config</DependentUpon>
</Compile>
</ItemGroup>
</Project>

Просмотреть файл

@ -1,8 +1,8 @@
namespace EmptyApp.FunctionalTests
namespace FunctionalTests.EmptyApp.Tests
{
using System;
using FunctionalTestUtils;
using FunctionalTests.Utils;
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.AspNetCore.Extensions;
using Microsoft.ApplicationInsights.Channel;

Просмотреть файл

@ -1,14 +1,11 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using MVCFramework20.FunctionalTests.Models;
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.DataContracts;
using FunctionalTests.MVC.Tests.Models;
namespace MVCFramework20.FunctionalTests.Controllers
namespace FunctionalTests.MVC.Tests.Controllers
{
public class HomeController : Controller
{

Просмотреть файл

@ -1,6 +1,6 @@
namespace MVC20.FuncTests
namespace FunctionalTests.MVC.Tests.FunctionalTest
{
using FunctionalTestUtils;
using FunctionalTests.Utils;
using Microsoft.ApplicationInsights.DataContracts;
using System;
using System.Linq;
@ -11,7 +11,7 @@
public class CorrelationMvcTests : TelemetryTestsBase
{
private const string assemblyName = "MVCFramework20.FunctionalTests20";
private const string assemblyName = "FunctionalTests.MVC.Tests";
public CorrelationMvcTests(ITestOutputHelper output) : base(output)
{

Просмотреть файл

@ -1,4 +1,4 @@
namespace MVC20.FuncTests
namespace FunctionalTests.MVC.Tests.FunctionalTest
{
using System;
using System.Linq;
@ -7,7 +7,7 @@
using System.Text;
using AI;
using FunctionalTestUtils;
using FunctionalTests.Utils;
using Microsoft.ApplicationInsights.DependencyCollector;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.Extensions.DependencyInjection;

Просмотреть файл

@ -1,11 +1,11 @@
using Xunit;
[assembly: CollectionBehavior(DisableTestParallelization = true)]
namespace MVC20.FuncTests
namespace FunctionalTests.MVC.Tests.FunctionalTest
{
using System;
using System.Reflection;
using FunctionalTestUtils;
using FunctionalTests.Utils;
using Microsoft.ApplicationInsights.DataContracts;
using Xunit;
using Xunit.Abstractions;

Просмотреть файл

@ -1,11 +1,11 @@
namespace MVC20.FuncTests
namespace FunctionalTests.MVC.Tests.FunctionalTest
{
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Reflection;
using AI;
using FunctionalTestUtils;
using FunctionalTests.Utils;
using Microsoft.ApplicationInsights.DataContracts;
using Xunit;
using Xunit.Abstractions;

Просмотреть файл

@ -1,7 +1,7 @@
namespace MVC20.FuncTests
namespace FunctionalTests.MVC.Tests.FunctionalTest
{
using System.Reflection;
using FunctionalTestUtils;
using FunctionalTests.Utils;
using Microsoft.ApplicationInsights.DataContracts;
using Xunit;
using Xunit.Abstractions;

Просмотреть файл

@ -2,25 +2,18 @@
<PropertyGroup>
<VersionPrefix>2.0.0</VersionPrefix>
<TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netcoreapp2.0</TargetFrameworks>
<RuntimeIdentifier Condition=" '$(TargetFramework)' == 'net461' ">win7-x86</RuntimeIdentifier>
<TargetFrameworks>netcoreapp2.1;netcoreapp3.1;net461</TargetFrameworks>
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<RuntimeIdentifier Condition=" '$(TargetFramework)' == 'net461' ">win7-x86</RuntimeIdentifier>
<PreserveCompilationContext>true</PreserveCompilationContext>
<AssemblyName>MVCFramework20.FunctionalTests20.Tests</AssemblyName>
<PackageId>MVCFramework.FunctionalTests</PackageId>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<AssemblyName>FunctionalTests.MVC.Tests</AssemblyName>
<PackageId>FunctionalTests.MVC.Tests</PackageId>
<UserSecretsId>aspnet-MVCFramework45.FunctionalTests-60cfc765-2dc9-454c-bb34-dc379ed92cd0</UserSecretsId>
<RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">2.0.0</RuntimeFrameworkVersion>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
<DebugType>pdbonly</DebugType>
<DebugSymbols>true</DebugSymbols>
<ApplicationIcon />
<OutputType>Library</OutputType>
<StartupObject />
</PropertyGroup>
<ItemGroup>
<ItemGroup>
<None Update="App.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<Generator>SettingsSingleFileGenerator</Generator>
@ -37,12 +30,12 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FunctionalTestUtils20\FunctionalTestUtils20.csproj" />
<ProjectReference Include="..\..\src\Microsoft.ApplicationInsights.AspNetCore\Microsoft.ApplicationInsights.AspNetCore.csproj" />
<ProjectReference Include="..\FunctionalTests.Utils\FunctionalTests.Utils.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" />
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="2.0.0" />

Просмотреть файл

@ -1,6 +1,6 @@
using System;
namespace MVCFramework20.FunctionalTests.Models
namespace FunctionalTests.MVC.Tests.Models
{
public class ErrorViewModel
{

Просмотреть файл

@ -15,7 +15,7 @@
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"MVCFramework20.FunctionalTests": {
"FunctionalTests.MVC.Tests": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {

Просмотреть файл

@ -7,10 +7,10 @@ using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.ApplicationInsights.Channel;
using FunctionalTestUtils;
using FunctionalTests.Utils;
using Microsoft.ApplicationInsights.AspNetCore.Extensions;
namespace MVCFramework20.FunctionalTests
namespace FunctionalTests.MVC.Tests
{
public class Startup
{

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше