This commit is contained in:
Brad Wilson 2024-06-03 19:55:44 -07:00
Родитель 84d0e79925
Коммит 24e3c1c97a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 0B7BD15AD1EC5FDE
22 изменённых файлов: 8 добавлений и 312 удалений

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

@ -19,43 +19,15 @@
<LangVersion>12.0</LangVersion>
<MSBuildCopyContentTransitively>false</MSBuildCopyContentTransitively>
<Nullable>enable</Nullable>
<RoslynVersion>4.8.0</RoslynVersion>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition="$(MSBuildProjectName.StartsWith('xunit.analyzers.roslyn'))">
<AssemblyName>xunit.analyzers</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition="$(MSBuildProjectName.StartsWith('xunit.analyzers.fixes.roslyn'))">
<AssemblyName>xunit.analyzers.fixes</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition="$(MSBuildProjectName.Contains('roslyn311'))">
<DefineConstants>$(DefineConstants);ROSLYN_3_11;ROSLYN_3_11_OR_GREATER</DefineConstants>
<RoslynVersion>3.11.0</RoslynVersion>
</PropertyGroup>
<PropertyGroup Condition="$(MSBuildProjectName.Contains('roslyn44'))">
<DefineConstants>$(DefineConstants);ROSLYN_4_4;ROSLYN_3_11_OR_GREATER;ROSLYN_4_4_OR_GREATER</DefineConstants>
<RoslynVersion>4.4.0</RoslynVersion>
</PropertyGroup>
<PropertyGroup Condition="$(MSBuildProjectName.Contains('roslyn46'))">
<DefineConstants>$(DefineConstants);ROSLYN_4_6;ROSLYN_3_11_OR_GREATER;ROSLYN_4_4_OR_GREATER;ROSLYN_4_6_OR_GREATER</DefineConstants>
<RoslynVersion>4.6.0</RoslynVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(RoslynVersion)' == '4.8.0' ">
<DefineConstants>$(DefineConstants);ROSLYN_4_8;ROSLYN_3_11_OR_GREATER;ROSLYN_4_4_OR_GREATER;ROSLYN_4_6_OR_GREATER;ROSLYN_4_8_OR_GREATER</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)common\*.cs" LinkBase="Utility\Common" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis" Version="[$(RoslynVersion)]" />
<PackageReference Include="Microsoft.CodeAnalysis" Version="[3.11]" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="all" />
<PackageReference Include="Nerdbank.GitVersioning" Version="3.6.133">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

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

@ -1,16 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>Xunit.Analyzers.Fixes</RootNamespace>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\xunit.analyzers.fixes\**\*.cs" Exclude="..\xunit.analyzers.fixes\obj\**\*.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xunit.analyzers.roslyn311\xunit.analyzers.roslyn311.csproj" />
</ItemGroup>
</Project>

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

@ -1,16 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>Xunit.Analyzers.Fixes</RootNamespace>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\xunit.analyzers.fixes\**\*.cs" Exclude="..\xunit.analyzers.fixes\obj\**\*.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xunit.analyzers.roslyn44\xunit.analyzers.roslyn44.csproj" />
</ItemGroup>
</Project>

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

@ -1,16 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>Xunit.Analyzers.Fixes</RootNamespace>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\xunit.analyzers.fixes\**\*.cs" Exclude="..\xunit.analyzers.fixes\obj\**\*.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xunit.analyzers.roslyn46\xunit.analyzers.roslyn46.csproj" />
</ItemGroup>
</Project>

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

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>Xunit.Analyzers</RootNamespace>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\xunit.analyzers\**\*.cs" Exclude="..\xunit.analyzers\obj\**\*.cs" />
</ItemGroup>
</Project>

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

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>Xunit.Analyzers</RootNamespace>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\xunit.analyzers\**\*.cs" Exclude="..\xunit.analyzers\obj\**\*.cs" />
</ItemGroup>
</Project>

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

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>Xunit.Analyzers</RootNamespace>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\xunit.analyzers\**\*.cs" Exclude="..\xunit.analyzers\obj\**\*.cs" />
</ItemGroup>
</Project>

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

@ -1,17 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>Xunit.Analyzers</RootNamespace>
<TargetFrameworks>net8.0;net472</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\xunit.analyzers.tests\**\*.cs" Exclude="..\xunit.analyzers.tests\obj\**\*.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xunit.analyzers.roslyn311\xunit.analyzers.roslyn311.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="true" />
<ProjectReference Include="..\xunit.analyzers.fixes.roslyn311\xunit.analyzers.fixes.roslyn311.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="true" />
</ItemGroup>
</Project>

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

@ -1,17 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>Xunit.Analyzers</RootNamespace>
<TargetFrameworks>net8.0;net472</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\xunit.analyzers.tests\**\*.cs" Exclude="..\xunit.analyzers.tests\obj\**\*.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xunit.analyzers.roslyn44\xunit.analyzers.roslyn44.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="true" />
<ProjectReference Include="..\xunit.analyzers.fixes.roslyn44\xunit.analyzers.fixes.roslyn44.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="true" />
</ItemGroup>
</Project>

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

@ -1,17 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>Xunit.Analyzers</RootNamespace>
<TargetFrameworks>net8.0;net472</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\xunit.analyzers.tests\**\*.cs" Exclude="..\xunit.analyzers.tests\obj\**\*.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xunit.analyzers.roslyn46\xunit.analyzers.roslyn46.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="true" />
<ProjectReference Include="..\xunit.analyzers.fixes.roslyn46\xunit.analyzers.fixes.roslyn46.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="true" />
</ItemGroup>
</Project>

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

@ -1,18 +1,13 @@
#if NETCOREAPP
using System.Threading.Tasks;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.Testing;
using Xunit;
using Xunit.Analyzers;
using Verify = CSharpVerifier<Xunit.Suppressors.ConsiderCallingConfigureAwaitSuppressor>;
#if ROSLYN_3_11
using Microsoft.CodeAnalysis;
#else
using System;
#endif
public sealed class ConsiderCallingConfigureAwaitSuppressorTests
{
[Fact]
@ -48,16 +43,11 @@ public class TestClass {{
}}
}}";
#if ROSLYN_3_11
// Roslyn 3.11 still surfaces the diagnostic that has been suppressed
var expected =
new DiagnosticResult("CA2007", DiagnosticSeverity.Warning)
.WithSpan(8, 15, 8, 28)
.WithIsSuppressed(true);
#else
// Later versions of Roslyn just removes it from the results
var expected = Array.Empty<DiagnosticResult>();
#endif
await Verify.VerifySuppressor(code, CodeAnalysisNetAnalyzers.CA2007(), expected);
}

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

@ -7,10 +7,6 @@ using Xunit;
using Xunit.Analyzers;
using Verify = CSharpVerifier<Xunit.Suppressors.MakeTypesInternalSuppressor>;
#if !ROSLYN_3_11
using System;
#endif
public sealed class MakeTypesInternalSuppressorTests
{
[Fact]
@ -48,16 +44,11 @@ public class TestClass {{
public void TestMethod() {{ }}
}}";
#if ROSLYN_3_11
// Roslyn 3.11 still surfaces the diagnostic that has been suppressed
var expected =
new DiagnosticResult("CA1515", DiagnosticSeverity.Warning)
.WithSpan(6, 14, 6, 23)
.WithIsSuppressed(true);
#else
// Later versions of Roslyn just removes it from the results
var expected = Array.Empty<DiagnosticResult>();
#endif
await Verify.VerifySuppressor(code, CodeAnalysisNetAnalyzers.CA1515(), expected);
}

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

@ -11,16 +11,6 @@ namespace Xunit.Analyzers;
static class CodeAnalysisExtensions
{
#if ROSLYN_4_4_OR_GREATER
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IOperation.OperationList Children(this IOperation operation) =>
operation.ChildOperations;
#else
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IEnumerable<IOperation> Children(this IOperation operation) =>
operation.Children;
#endif
public static INamedTypeSymbol? FindNamedType(
this IAssemblySymbol assembly,
Func<INamedTypeSymbol, bool> selector)

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

@ -1,6 +1,4 @@
#if ROSLYN_3_11
#pragma warning disable RS1024 // Incorrectly triggered by Roslyn 3.11
#endif
using System;
using System.Collections.Generic;
@ -224,7 +222,7 @@ public class DoNotUseBlockingTaskOperations : XunitDiagnosticAnalyzer
bool validateSafeTasks(IOperation op)
{
foreach (var childOperation in op.Children())
foreach (var childOperation in op.Children)
{
// Stop looking once we've found the operation that is ours, since any
// code after that operation isn't something we should consider
@ -243,7 +241,7 @@ public class DoNotUseBlockingTaskOperations : XunitDiagnosticAnalyzer
if (unfoundSymbols.Count == 0)
return true;
if (childOperation.Children().Any(c => validateSafeTasks(c)))
if (childOperation.Children.Any(c => validateSafeTasks(c)))
return true;
}
@ -270,9 +268,9 @@ public class DoNotUseBlockingTaskOperations : XunitDiagnosticAnalyzer
{
if (!unfoundSymbols.Contains(operation.Symbol))
return;
if (operation.Children().FirstOrDefault() is not IVariableInitializerOperation variableInitializerOperation)
if (operation.Children.FirstOrDefault() is not IVariableInitializerOperation variableInitializerOperation)
return;
if (variableInitializerOperation.Value.Children().FirstOrDefault() is not IInvocationOperation variableInitializerInvocationOperation)
if (variableInitializerOperation.Value.Children.FirstOrDefault() is not IInvocationOperation variableInitializerInvocationOperation)
return;
if (!FindSymbol(variableInitializerInvocationOperation.TargetMethod, variableInitializerInvocationOperation, taskType, whenAny, xunitContext, out var _))
return;

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

@ -1,6 +1,4 @@
#if ROSLYN_3_11
#pragma warning disable RS1024 // Incorrectly triggered by Roslyn 3.11
#endif
using System.Collections.Generic;
using System.Collections.Immutable;

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

@ -1,6 +1,4 @@
#if ROSLYN_3_11
#pragma warning disable RS1024 // Incorrectly triggered by Roslyn 3.11
#endif
using System.Collections.Generic;
using System.Linq;

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

@ -1,6 +1,4 @@
#if ROSLYN_3_11
#pragma warning disable RS1024 // Incorrectly triggered by Roslyn 3.11
#endif
using System.Collections.Generic;
using System.Collections.Immutable;

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

@ -87,11 +87,7 @@ public class TheoryDataRowArgumentsShouldBeSerializable : XunitDiagnosticAnalyze
for (var idx = 0; idx < objectCreation.Arguments.Length; ++idx)
{
#if ROSLYN_3_11
var elementValue = objectCreation.Arguments[idx].Children.FirstOrDefault();
#else
var elementValue = objectCreation.Arguments[idx].ChildOperations.FirstOrDefault();
#endif
while (elementValue is IConversionOperation conversion)
elementValue = conversion.Operand;
@ -107,21 +103,13 @@ public class TheoryDataRowArgumentsShouldBeSerializable : XunitDiagnosticAnalyze
if (objectCreation.Arguments.FirstOrDefault() is not IArgumentOperation argumentOperation)
return null;
#if ROSLYN_3_11
var firstArgument = argumentOperation.Children.FirstOrDefault();
#else
var firstArgument = argumentOperation.ChildOperations.FirstOrDefault();
#endif
if (firstArgument is null)
return null;
// Common pattern: implicit array creation for the params array
if (firstArgument is IArrayCreationOperation arrayCreation &&
#if ROSLYN_3_11
arrayCreation.Children.Skip(1).FirstOrDefault() is IArrayInitializerOperation arrayInitializer)
#else
arrayCreation.ChildOperations.Skip(1).FirstOrDefault() is IArrayInitializerOperation arrayInitializer)
#endif
{
var result = new List<IOperation>();

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

@ -1,6 +1,4 @@
#if ROSLYN_3_11
#pragma warning disable RS1024 // Incorrectly triggered by Roslyn 3.11
#endif
using System.Collections.Generic;
using System.Linq;

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

@ -1,6 +1,4 @@
#if ROSLYN_3_11
#pragma warning disable RS1024 // Incorrectly triggered by Roslyn 3.11
#endif
using System.Collections.Generic;
using System.Linq;

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

@ -23,21 +23,8 @@ Installing this package provides code analyzers to help developers find and fix
<file target="_content\" src="..\..\README.md" />
<file target="_content\" src="..\..\tools\media\logo-128-transparent.png" />
<!-- Put a non-Roslyn copy in just the CS folder, for pre-SDK style projects -->
<file target="analyzers\dotnet\cs\" src="..\xunit.analyzers.fixes.roslyn311\bin\$Configuration$\netstandard2.0\xunit.analyzers.dll" />
<file target="analyzers\dotnet\cs\" src="..\xunit.analyzers.fixes.roslyn311\bin\$Configuration$\netstandard2.0\xunit.analyzers.fixes.dll" />
<file target="analyzers\dotnet\roslyn3.11\cs\" src="..\xunit.analyzers.fixes.roslyn311\bin\$Configuration$\netstandard2.0\xunit.analyzers.dll" />
<file target="analyzers\dotnet\roslyn3.11\cs\" src="..\xunit.analyzers.fixes.roslyn311\bin\$Configuration$\netstandard2.0\xunit.analyzers.fixes.dll" />
<file target="analyzers\dotnet\roslyn4.4\cs\" src="..\xunit.analyzers.fixes.roslyn44\bin\$Configuration$\netstandard2.0\xunit.analyzers.dll" />
<file target="analyzers\dotnet\roslyn4.4\cs\" src="..\xunit.analyzers.fixes.roslyn44\bin\$Configuration$\netstandard2.0\xunit.analyzers.fixes.dll" />
<file target="analyzers\dotnet\roslyn4.6\cs\" src="..\xunit.analyzers.fixes.roslyn46\bin\$Configuration$\netstandard2.0\xunit.analyzers.dll" />
<file target="analyzers\dotnet\roslyn4.6\cs\" src="..\xunit.analyzers.fixes.roslyn46\bin\$Configuration$\netstandard2.0\xunit.analyzers.fixes.dll" />
<file target="analyzers\dotnet\roslyn4.8\cs\" src="..\xunit.analyzers.fixes\bin\$Configuration$\netstandard2.0\xunit.analyzers.dll" />
<file target="analyzers\dotnet\roslyn4.8\cs\" src="..\xunit.analyzers.fixes\bin\$Configuration$\netstandard2.0\xunit.analyzers.fixes.dll" />
<file target="analyzers\dotnet\cs\" src="..\xunit.analyzers.fixes\bin\$Configuration$\netstandard2.0\xunit.analyzers.dll" />
<file target="analyzers\dotnet\cs\" src="..\xunit.analyzers.fixes\bin\$Configuration$\netstandard2.0\xunit.analyzers.fixes.dll" />
<file target="tools\" src="..\xunit.analyzers.fixes\tools\*.ps1" />
</files>

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

@ -15,32 +15,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xunit.analyzers.fixes", "sr
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xunit.analyzers.tests", "src\xunit.analyzers.tests\xunit.analyzers.tests.csproj", "{58C228AC-60BB-4928-AE3A-282CDD2EA912}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "back-compat", "back-compat", "{2FECC9B4-D904-49ED-B312-04065BEABA39}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "analyzers", "analyzers", "{6468A58D-1469-46CF-B467-B4A20D2B85D9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xunit.analyzers.roslyn311", "src\xunit.analyzers.roslyn311\xunit.analyzers.roslyn311.csproj", "{13521751-D0A2-4A84-B33B-69B1702A7591}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xunit.analyzers.roslyn44", "src\xunit.analyzers.roslyn44\xunit.analyzers.roslyn44.csproj", "{A89F4654-C781-4AA4-A393-D5D96B5E0D2E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xunit.analyzers.roslyn46", "src\xunit.analyzers.roslyn46\xunit.analyzers.roslyn46.csproj", "{6F037C90-CC16-434F-9606-030CB964ED5C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fixes", "fixes", "{1E750125-279C-4F03-ABF7-FD8F4800703F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xunit.analyzers.fixes.roslyn311", "src\xunit.analyzers.fixes.roslyn311\xunit.analyzers.fixes.roslyn311.csproj", "{A2A4B1CE-F18C-49C1-B9ED-8135A20FCABC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xunit.analyzers.fixes.roslyn44", "src\xunit.analyzers.fixes.roslyn44\xunit.analyzers.fixes.roslyn44.csproj", "{7A76CBD5-79FD-4C48-8CF1-13D997C39226}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xunit.analyzers.fixes.roslyn46", "src\xunit.analyzers.fixes.roslyn46\xunit.analyzers.fixes.roslyn46.csproj", "{2BA85D1F-069C-431E-BFC3-E4E45D1A6D53}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4A3555C8-A35E-4990-B1DB-E86A33F07C29}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xunit.analyzers.tests.roslyn311", "src\xunit.analyzers.tests.roslyn311\xunit.analyzers.tests.roslyn311.csproj", "{4F93916E-6CBE-4C13-8DA5-7A15B8932CCC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xunit.analyzers.tests.roslyn44", "src\xunit.analyzers.tests.roslyn44\xunit.analyzers.tests.roslyn44.csproj", "{35B25ECA-F4B4-452B-9C11-5DFFB79F45EA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xunit.analyzers.tests.roslyn46", "src\xunit.analyzers.tests.roslyn46\xunit.analyzers.tests.roslyn46.csproj", "{39499892-5815-4619-9FAC-47410D32A305}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -59,42 +33,6 @@ Global
{58C228AC-60BB-4928-AE3A-282CDD2EA912}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58C228AC-60BB-4928-AE3A-282CDD2EA912}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58C228AC-60BB-4928-AE3A-282CDD2EA912}.Release|Any CPU.Build.0 = Release|Any CPU
{13521751-D0A2-4A84-B33B-69B1702A7591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{13521751-D0A2-4A84-B33B-69B1702A7591}.Debug|Any CPU.Build.0 = Debug|Any CPU
{13521751-D0A2-4A84-B33B-69B1702A7591}.Release|Any CPU.ActiveCfg = Release|Any CPU
{13521751-D0A2-4A84-B33B-69B1702A7591}.Release|Any CPU.Build.0 = Release|Any CPU
{A89F4654-C781-4AA4-A393-D5D96B5E0D2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A89F4654-C781-4AA4-A393-D5D96B5E0D2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A89F4654-C781-4AA4-A393-D5D96B5E0D2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A89F4654-C781-4AA4-A393-D5D96B5E0D2E}.Release|Any CPU.Build.0 = Release|Any CPU
{6F037C90-CC16-434F-9606-030CB964ED5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6F037C90-CC16-434F-9606-030CB964ED5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6F037C90-CC16-434F-9606-030CB964ED5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6F037C90-CC16-434F-9606-030CB964ED5C}.Release|Any CPU.Build.0 = Release|Any CPU
{A2A4B1CE-F18C-49C1-B9ED-8135A20FCABC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A2A4B1CE-F18C-49C1-B9ED-8135A20FCABC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A2A4B1CE-F18C-49C1-B9ED-8135A20FCABC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A2A4B1CE-F18C-49C1-B9ED-8135A20FCABC}.Release|Any CPU.Build.0 = Release|Any CPU
{7A76CBD5-79FD-4C48-8CF1-13D997C39226}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7A76CBD5-79FD-4C48-8CF1-13D997C39226}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7A76CBD5-79FD-4C48-8CF1-13D997C39226}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7A76CBD5-79FD-4C48-8CF1-13D997C39226}.Release|Any CPU.Build.0 = Release|Any CPU
{2BA85D1F-069C-431E-BFC3-E4E45D1A6D53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2BA85D1F-069C-431E-BFC3-E4E45D1A6D53}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2BA85D1F-069C-431E-BFC3-E4E45D1A6D53}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2BA85D1F-069C-431E-BFC3-E4E45D1A6D53}.Release|Any CPU.Build.0 = Release|Any CPU
{4F93916E-6CBE-4C13-8DA5-7A15B8932CCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4F93916E-6CBE-4C13-8DA5-7A15B8932CCC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4F93916E-6CBE-4C13-8DA5-7A15B8932CCC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4F93916E-6CBE-4C13-8DA5-7A15B8932CCC}.Release|Any CPU.Build.0 = Release|Any CPU
{35B25ECA-F4B4-452B-9C11-5DFFB79F45EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{35B25ECA-F4B4-452B-9C11-5DFFB79F45EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{35B25ECA-F4B4-452B-9C11-5DFFB79F45EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{35B25ECA-F4B4-452B-9C11-5DFFB79F45EA}.Release|Any CPU.Build.0 = Release|Any CPU
{39499892-5815-4619-9FAC-47410D32A305}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39499892-5815-4619-9FAC-47410D32A305}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39499892-5815-4619-9FAC-47410D32A305}.Release|Any CPU.ActiveCfg = Release|Any CPU
{39499892-5815-4619-9FAC-47410D32A305}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -103,19 +41,6 @@ Global
{897D042D-2C87-412F-805E-2905A1A38C83} = {3CAA9D63-0806-4CB1-8C32-AA8045E1F441}
{B8612BA7-3EC9-4D08-82D6-ABDBF73E6BF6} = {3CAA9D63-0806-4CB1-8C32-AA8045E1F441}
{58C228AC-60BB-4928-AE3A-282CDD2EA912} = {3CAA9D63-0806-4CB1-8C32-AA8045E1F441}
{2FECC9B4-D904-49ED-B312-04065BEABA39} = {3CAA9D63-0806-4CB1-8C32-AA8045E1F441}
{6468A58D-1469-46CF-B467-B4A20D2B85D9} = {2FECC9B4-D904-49ED-B312-04065BEABA39}
{13521751-D0A2-4A84-B33B-69B1702A7591} = {6468A58D-1469-46CF-B467-B4A20D2B85D9}
{A89F4654-C781-4AA4-A393-D5D96B5E0D2E} = {6468A58D-1469-46CF-B467-B4A20D2B85D9}
{6F037C90-CC16-434F-9606-030CB964ED5C} = {6468A58D-1469-46CF-B467-B4A20D2B85D9}
{1E750125-279C-4F03-ABF7-FD8F4800703F} = {2FECC9B4-D904-49ED-B312-04065BEABA39}
{A2A4B1CE-F18C-49C1-B9ED-8135A20FCABC} = {1E750125-279C-4F03-ABF7-FD8F4800703F}
{7A76CBD5-79FD-4C48-8CF1-13D997C39226} = {1E750125-279C-4F03-ABF7-FD8F4800703F}
{2BA85D1F-069C-431E-BFC3-E4E45D1A6D53} = {1E750125-279C-4F03-ABF7-FD8F4800703F}
{4A3555C8-A35E-4990-B1DB-E86A33F07C29} = {2FECC9B4-D904-49ED-B312-04065BEABA39}
{4F93916E-6CBE-4C13-8DA5-7A15B8932CCC} = {4A3555C8-A35E-4990-B1DB-E86A33F07C29}
{35B25ECA-F4B4-452B-9C11-5DFFB79F45EA} = {4A3555C8-A35E-4990-B1DB-E86A33F07C29}
{39499892-5815-4619-9FAC-47410D32A305} = {4A3555C8-A35E-4990-B1DB-E86A33F07C29}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {601643AE-7617-4470-841B-56F1E8356D87}