diff --git a/src/AcceptanceTesting/AcceptanceTesting.csproj b/src/AcceptanceTesting/AcceptanceTesting.csproj
index 74e9dc9..2a23923 100644
--- a/src/AcceptanceTesting/AcceptanceTesting.csproj
+++ b/src/AcceptanceTesting/AcceptanceTesting.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/src/AcceptanceTesting/Infrastructure/EndpointTemplates/ConfigureExtensions.cs b/src/AcceptanceTesting/Infrastructure/EndpointTemplates/ConfigureExtensions.cs
index b877925..b957db1 100644
--- a/src/AcceptanceTesting/Infrastructure/EndpointTemplates/ConfigureExtensions.cs
+++ b/src/AcceptanceTesting/Infrastructure/EndpointTemplates/ConfigureExtensions.cs
@@ -1,11 +1,37 @@
namespace NServiceBus.AcceptanceTests.EndpointTemplates
{
+ using Configuration.AdvancedExtensibility;
+ using Transport;
using System.Threading.Tasks;
- using AcceptanceTesting.Support;
- using ObjectBuilder;
+ using NServiceBus.AcceptanceTesting.Support;
public static class ConfigureExtensions
{
+ public static RoutingSettings ConfigureRouting(this EndpointConfiguration configuration) =>
+ new RoutingSettings(configuration.GetSettings());
+
+ // This is kind of a hack because the acceptance testing framework doesn't give any access to the transport definition to individual tests.
+ public static TransportDefinition ConfigureTransport(this EndpointConfiguration configuration) =>
+ configuration.GetSettings().Get();
+
+ public static TTransportDefinition ConfigureTransport(
+ this EndpointConfiguration configuration)
+ where TTransportDefinition : TransportDefinition =>
+ (TTransportDefinition)configuration.GetSettings().Get();
+
+ public static async Task DefineTransport(this EndpointConfiguration config, RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration)
+ {
+ var transportConfiguration = TestSuiteConstraints.Current.CreateTransportConfiguration();
+ await transportConfiguration.Configure(endpointCustomizationConfiguration.EndpointName, config, runDescriptor.Settings, endpointCustomizationConfiguration.PublisherMetadata);
+ runDescriptor.OnTestCompleted(_ => transportConfiguration.Cleanup());
+ }
+
+ public static async Task DefineTransport(this EndpointConfiguration config, IConfigureEndpointTestExecution transportConfiguration, RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration)
+ {
+ await transportConfiguration.Configure(endpointCustomizationConfiguration.EndpointName, config, runDescriptor.Settings, endpointCustomizationConfiguration.PublisherMetadata);
+ runDescriptor.OnTestCompleted(_ => transportConfiguration.Cleanup());
+ }
+
public static async Task DefinePersistence(this EndpointConfiguration config, RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration)
{
var persistenceConfiguration = TestSuiteConstraints.Current.CreatePersistenceConfiguration();
@@ -13,19 +39,10 @@ public static async Task DefinePersistence(this EndpointConfiguration config, Ru
runDescriptor.OnTestCompleted(_ => persistenceConfiguration.Cleanup());
}
- public static void RegisterComponentsAndInheritanceHierarchy(this EndpointConfiguration builder, RunDescriptor runDescriptor)
+ public static async Task DefinePersistence(this EndpointConfiguration config, IConfigureEndpointTestExecution persistenceConfiguration, RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration)
{
- builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(runDescriptor, r); });
- }
-
- static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IConfigureComponents r)
- {
- var type = runDescriptor.ScenarioContext.GetType();
- while (type != typeof(object))
- {
- r.RegisterSingleton(type, runDescriptor.ScenarioContext);
- type = type.BaseType;
- }
+ await persistenceConfiguration.Configure(endpointCustomizationConfiguration.EndpointName, config, runDescriptor.Settings, endpointCustomizationConfiguration.PublisherMetadata);
+ runDescriptor.OnTestCompleted(_ => persistenceConfiguration.Cleanup());
}
}
}
\ No newline at end of file
diff --git a/src/AcceptanceTesting/Infrastructure/EndpointTemplates/DefaultServer.cs b/src/AcceptanceTesting/Infrastructure/EndpointTemplates/DefaultServer.cs
index 3c52b48..79ff357 100644
--- a/src/AcceptanceTesting/Infrastructure/EndpointTemplates/DefaultServer.cs
+++ b/src/AcceptanceTesting/Infrastructure/EndpointTemplates/DefaultServer.cs
@@ -1,58 +1,35 @@
namespace NServiceBus.AcceptanceTests.EndpointTemplates
{
using System;
- using System.Collections.Generic;
using System.Threading.Tasks;
using AcceptanceTesting.Customization;
using AcceptanceTesting.Support;
- using Configuration.AdvancedExtensibility;
- using Features;
public class DefaultServer : IEndpointSetupTemplate
{
- public DefaultServer()
- {
- typesToInclude = new List();
- }
-
- public DefaultServer(List typesToInclude)
- {
- this.typesToInclude = typesToInclude;
- }
+ public IConfigureEndpointTestExecution TransportConfiguration { get; set; } = TestSuiteConstraints.Current.CreateTransportConfiguration();
-#pragma warning disable CS0618
- public async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, Action configurationBuilderCustomization)
-#pragma warning restore CS0618
+ public async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, Func configurationBuilderCustomization)
{
- var types = endpointConfiguration.GetTypesScopedByTestClass();
-
- typesToInclude.AddRange(types);
-
- var configuration = new EndpointConfiguration(endpointConfiguration.EndpointName);
-
- configuration.TypesToIncludeInScan(typesToInclude);
- configuration.EnableInstallers();
-
- configuration.DisableFeature();
-
- var recoverability = configuration.Recoverability();
- recoverability.Delayed(delayed => delayed.NumberOfRetries(0));
- recoverability.Immediate(immediate => immediate.NumberOfRetries(0));
- configuration.SendFailedMessagesTo("error");
- configuration.UseSerialization();
+ var builder = new EndpointConfiguration(endpointConfiguration.EndpointName);
+ builder.EnableInstallers();
- configuration.RegisterComponentsAndInheritanceHierarchy(runDescriptor);
+ builder.Recoverability()
+ .Delayed(delayed => delayed.NumberOfRetries(0))
+ .Immediate(immediate => immediate.NumberOfRetries(0));
+ builder.SendFailedMessagesTo("error");
+ builder.UseSerialization();
- await configuration.DefinePersistence(runDescriptor, endpointConfiguration).ConfigureAwait(false);
+ await builder.DefineTransport(TransportConfiguration, runDescriptor, endpointConfiguration).ConfigureAwait(false);
- configuration.GetSettings().SetDefault("ScaleOut.UseSingleBrokerQueue", true);
- configurationBuilderCustomization(configuration);
+ await configurationBuilderCustomization(builder).ConfigureAwait(false);
- configuration.Pipeline.Register(new TestRunMarker(runDescriptor.ScenarioContext.TestRunId.ToString()), "Marks messages with test run ID.");
+ builder.Pipeline.Register(new TestRunMarker(runDescriptor.ScenarioContext.TestRunId.ToString()), "Marks messages with test run ID.");
- return configuration;
- }
+ // scan types at the end so that all types used by the configuration have been loaded into the AppDomain
+ builder.ScanTypesForTest(endpointConfiguration);
- List typesToInclude;
+ return builder;
+ }
}
}
\ No newline at end of file
diff --git a/src/LoadTests.Receiver/LoadTests.Receiver.csproj b/src/LoadTests.Receiver/LoadTests.Receiver.csproj
index bb0ef1b..82ad736 100644
--- a/src/LoadTests.Receiver/LoadTests.Receiver.csproj
+++ b/src/LoadTests.Receiver/LoadTests.Receiver.csproj
@@ -2,7 +2,7 @@
Exe
- net461
+ net48
latest
@@ -10,9 +10,10 @@
-
-
-
+
+
+
+
diff --git a/src/LoadTests.Receiver/Program.cs b/src/LoadTests.Receiver/Program.cs
index 1ce4799..3b7e173 100644
--- a/src/LoadTests.Receiver/Program.cs
+++ b/src/LoadTests.Receiver/Program.cs
@@ -3,8 +3,8 @@
using System;
using System.Threading.Tasks;
using Metrics;
+ using Microsoft.Extensions.DependencyInjection;
using NServiceBus;
- using NServiceBus.Transport.SQLServer;
class Program
{
@@ -18,26 +18,25 @@ static void Main(string[] args)
static async Task Start()
{
var config = new EndpointConfiguration("Receiver");
- config.UseSerialization();
+ config.UseSerialization();
config.SendFailedMessagesTo("error");
config.EnableInstallers();
- config.UsePersistence();
+ config.UsePersistence();
Metric.Config.WithReporting(r =>
{
r.WithCSVReports(".", TimeSpan.FromSeconds(5));
});
- config.RegisterComponents(c => c.RegisterSingleton(new Statistics()));
+ config.RegisterComponents(c => c.AddSingleton(new Statistics()));
var connectionString = SettingsReader.Read("SqlConnectionString", "data source=(local); initial catalog=loadtest; integrated security=true");
- var senderTransport = config.UseTransport();
- senderTransport.UseNativeDelayedDelivery().DisableTimeoutManagerCompatibility();
- senderTransport.ConnectionString(connectionString);
- senderTransport.Transactions(TransportTransactionMode.SendsAtomicWithReceive);
+ var transport = new SqlServerTransport(connectionString);
+ transport.TransportTransactionMode = TransportTransactionMode.SendsAtomicWithReceive;
+ var routing = config.UseTransport(transport);
- senderTransport.Routing().RouteToEndpoint(typeof(ProcessingReport), "Sender");
+ routing.RouteToEndpoint(typeof(ProcessingReport), "Sender");
endpointInstance = await Endpoint.Start(config);
Console.WriteLine("Press to exit.");
diff --git a/src/LoadTests.Receiver/ReportProcessingStatistics.cs b/src/LoadTests.Receiver/ReportProcessingStatistics.cs
index 7cc71b3..a2e313c 100644
--- a/src/LoadTests.Receiver/ReportProcessingStatistics.cs
+++ b/src/LoadTests.Receiver/ReportProcessingStatistics.cs
@@ -15,7 +15,7 @@ public ReportProcessingStatistics(Statistics statistics)
this.statistics = statistics;
}
- protected override Task OnStart(IMessageSession session)
+ protected override Task OnStart(IMessageSession session, CancellationToken token)
{
tokenSource = new CancellationTokenSource();
reportTask = Task.Run(async () =>
@@ -40,7 +40,7 @@ protected override Task OnStart(IMessageSession session)
return Task.CompletedTask;
}
- protected override async Task OnStop(IMessageSession session)
+ protected override async Task OnStop(IMessageSession session, CancellationToken token)
{
tokenSource?.Cancel();
if (reportTask != null)
diff --git a/src/LoadTests.Shared/LoadTests.Shared.csproj b/src/LoadTests.Shared/LoadTests.Shared.csproj
index 6dbf6d8..9ea6529 100644
--- a/src/LoadTests.Shared/LoadTests.Shared.csproj
+++ b/src/LoadTests.Shared/LoadTests.Shared.csproj
@@ -1,18 +1,10 @@
- net461
-
-
-
- 7.1
-
-
-
- 7.1
+ net48
-
+
diff --git a/src/NServiceBus.Router.AcceptanceTests/Infrastructure/DefaultServer.cs b/src/NServiceBus.Router.AcceptanceTests/Infrastructure/DefaultServer.cs
index 21e5600..7a0e096 100644
--- a/src/NServiceBus.Router.AcceptanceTests/Infrastructure/DefaultServer.cs
+++ b/src/NServiceBus.Router.AcceptanceTests/Infrastructure/DefaultServer.cs
@@ -34,7 +34,8 @@ public virtual async Task GetConfiguration(RunDescriptor
await configurationBuilderCustomization(builder).ConfigureAwait(false);
// scan types at the end so that all types used by the configuration have been loaded into the AppDomain
- builder.TypesToIncludeInScan(endpointConfiguration.GetTypesScopedByTestClass());
+ builder.ScanTypesForTest(endpointConfiguration);
+ //builder.TypesToIncludeInScan(endpointConfiguration.GetTypesScopedByTestClass());
return builder;
}
diff --git a/src/NServiceBus.Router.AcceptanceTests/Infrastructure/InMemorySubscriptionStorage.cs b/src/NServiceBus.Router.AcceptanceTests/Infrastructure/InMemorySubscriptionStorage.cs
index eeceb8f..e990a57 100644
--- a/src/NServiceBus.Router.AcceptanceTests/Infrastructure/InMemorySubscriptionStorage.cs
+++ b/src/NServiceBus.Router.AcceptanceTests/Infrastructure/InMemorySubscriptionStorage.cs
@@ -34,9 +34,6 @@ public class InMemorySubscriptionPersistence : Feature
{
internal InMemorySubscriptionPersistence()
{
-#pragma warning disable 618
- DependsOn();
-#pragma warning restore 618
}
protected override void Setup(FeatureConfigurationContext context)
diff --git a/src/NServiceBus.Router.AcceptanceTests/NServiceBus.Router.AcceptanceTests.csproj b/src/NServiceBus.Router.AcceptanceTests/NServiceBus.Router.AcceptanceTests.csproj
index e401955..171a262 100644
--- a/src/NServiceBus.Router.AcceptanceTests/NServiceBus.Router.AcceptanceTests.csproj
+++ b/src/NServiceBus.Router.AcceptanceTests/NServiceBus.Router.AcceptanceTests.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/src/NServiceBus.Router.AcceptanceTests/SingleRouter/When_publishing_from_message_driven_endpoint_auto.cs b/src/NServiceBus.Router.AcceptanceTests/SingleRouter/When_publishing_from_message_driven_endpoint_auto.cs
index f7bbd68..1c2ee14 100644
--- a/src/NServiceBus.Router.AcceptanceTests/SingleRouter/When_publishing_from_message_driven_endpoint_auto.cs
+++ b/src/NServiceBus.Router.AcceptanceTests/SingleRouter/When_publishing_from_message_driven_endpoint_auto.cs
@@ -21,7 +21,7 @@ public async Task It_should_deliver_the_message_to_both_subscribers()
a.Broker().Alpha();
var b = cfg.AddInterface("B", false);
- b.EnableMessageDrivenPublishSubscribe(alphaSubscriptionStore);
+ b.EnableMessageDrivenPublishSubscribe(bravoSubscriptionStore);
b.Broker().Bravo();
cfg.AddInterface("C").Broker().Yankee();
@@ -73,7 +73,7 @@ public Publisher()
var routing = c.ConfigureRouting();
routing.ConnectToRouter("Router", false, true);
- });
+ }).IncludeType();
}
}
@@ -89,7 +89,7 @@ public BaseEventSubscriber()
var routing = c.ConfigureRouting();
routing.ConnectToRouter("Router", true, false);
- });
+ }).IncludeType();
}
class BaseEventHandler : IHandleMessages
diff --git a/src/NServiceBus.Router.AcceptanceTests/SingleRouter/When_subscribing_from_native_and_message_driven_endpoints.cs b/src/NServiceBus.Router.AcceptanceTests/SingleRouter/When_subscribing_from_native_and_message_driven.cs
similarity index 97%
rename from src/NServiceBus.Router.AcceptanceTests/SingleRouter/When_subscribing_from_native_and_message_driven_endpoints.cs
rename to src/NServiceBus.Router.AcceptanceTests/SingleRouter/When_subscribing_from_native_and_message_driven.cs
index 7090ec7..dada1a6 100644
--- a/src/NServiceBus.Router.AcceptanceTests/SingleRouter/When_subscribing_from_native_and_message_driven_endpoints.cs
+++ b/src/NServiceBus.Router.AcceptanceTests/SingleRouter/When_subscribing_from_native_and_message_driven.cs
@@ -7,12 +7,12 @@ namespace NServiceBus.Router.AcceptanceTests.SingleRouter
using AcceptanceTesting.Customization;
[TestFixture]
- public class When_subscribing_from_native_and_message_driven_endpoints : NServiceBusAcceptanceTest
+ public class When_subscribing_from_native_and_message_driven : NServiceBusAcceptanceTest
{
static string PublisherEndpoint => Conventions.EndpointNamingConvention(typeof(Publisher));
[Test]
- public async Task It_should_deliver_the_message_to_both_subscribers()
+ public async Task It_should_deliver_the_message_to_both()
{
var result = await Scenario.Define()
.WithRouter("Router", cfg =>
@@ -25,7 +25,7 @@ public async Task It_should_deliver_the_message_to_both_subscribers()
var a = cfg.AddInterface("A", false);
a.Broker().Alpha();
- //DerivedEventSubscriber - Broker C`
+ //DerivedEventSubscriber - Broker C
cfg.AddInterface("C").Broker().Zulu();
var routeTable = cfg.UseStaticRoutingProtocol();
diff --git a/src/NServiceBus.Router.Connector/RouterConnectionFeature.cs b/src/NServiceBus.Router.Connector/RouterConnectionFeature.cs
index 1db09be..e2e1bfb 100644
--- a/src/NServiceBus.Router.Connector/RouterConnectionFeature.cs
+++ b/src/NServiceBus.Router.Connector/RouterConnectionFeature.cs
@@ -1,4 +1,5 @@
using System.Linq;
+using System.Runtime;
using Microsoft.Extensions.DependencyInjection;
using NServiceBus;
using NServiceBus.Features;
@@ -30,7 +31,7 @@ protected override void Setup(FeatureConfigurationContext context)
unicastRouteTable.AddOrReplaceRoutes("NServiceBus.Router_"+connection.RouterAddress, routes);
}
- if (!nativePubSub)
+ if (!nativePubSub || (context.Settings.TryGet("NServiceBus.Subscriptions.EnableMigrationMode", out bool enabled) && enabled))
{
//Register the auto-publish-to-router behavior
diff --git a/src/NServiceBus.Router.sln b/src/NServiceBus.Router.sln
index 20653f1..a1223af 100644
--- a/src/NServiceBus.Router.sln
+++ b/src/NServiceBus.Router.sln
@@ -16,22 +16,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
Directory.Build.targets = Directory.Build.targets
EndProjectSection
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AcceptanceTesting", "AcceptanceTesting\AcceptanceTesting.csproj", "{0F1838F0-4870-45B0-A85C-9197104C6F05}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{3A44ACF0-10D4-4322-976E-364B8ED98602}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LoadTests", "LoadTests", "{8FAB9D0C-AE8E-4183-A2C5-77464A300549}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LoadTests.Sender", "LoadTests.Sender\LoadTests.Sender.csproj", "{B9C2D1F0-CA82-4778-BAF3-594C2726A4F1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LoadTests.Sender.Router", "LoadTests.Sender.Router\LoadTests.Sender.Router.csproj", "{A7C137C2-F867-4BEB-8079-E77A21A8AE55}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LoadTests.Receiver", "LoadTests.Receiver\LoadTests.Receiver.csproj", "{82432CCF-502A-423B-871B-B86ABFBAE47B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LoadTests.Receiver.Router", "LoadTests.Receiver.Router\LoadTests.Receiver.Router.csproj", "{6D01212B-3BBC-4C11-A5C7-C608ECE12186}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LoadTests.Shared", "LoadTests.Shared\LoadTests.Shared.csproj", "{33DE78E8-D222-4F04-885A-47A5BDD23A4A}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -54,30 +40,6 @@ Global
{27325DEC-0BD0-4260-84B5-E0F3D6FCA519}.Debug|Any CPU.Build.0 = Debug|Any CPU
{27325DEC-0BD0-4260-84B5-E0F3D6FCA519}.Release|Any CPU.ActiveCfg = Release|Any CPU
{27325DEC-0BD0-4260-84B5-E0F3D6FCA519}.Release|Any CPU.Build.0 = Release|Any CPU
- {0F1838F0-4870-45B0-A85C-9197104C6F05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0F1838F0-4870-45B0-A85C-9197104C6F05}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0F1838F0-4870-45B0-A85C-9197104C6F05}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0F1838F0-4870-45B0-A85C-9197104C6F05}.Release|Any CPU.Build.0 = Release|Any CPU
- {B9C2D1F0-CA82-4778-BAF3-594C2726A4F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B9C2D1F0-CA82-4778-BAF3-594C2726A4F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B9C2D1F0-CA82-4778-BAF3-594C2726A4F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B9C2D1F0-CA82-4778-BAF3-594C2726A4F1}.Release|Any CPU.Build.0 = Release|Any CPU
- {A7C137C2-F867-4BEB-8079-E77A21A8AE55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A7C137C2-F867-4BEB-8079-E77A21A8AE55}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A7C137C2-F867-4BEB-8079-E77A21A8AE55}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A7C137C2-F867-4BEB-8079-E77A21A8AE55}.Release|Any CPU.Build.0 = Release|Any CPU
- {82432CCF-502A-423B-871B-B86ABFBAE47B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {82432CCF-502A-423B-871B-B86ABFBAE47B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {82432CCF-502A-423B-871B-B86ABFBAE47B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {82432CCF-502A-423B-871B-B86ABFBAE47B}.Release|Any CPU.Build.0 = Release|Any CPU
- {6D01212B-3BBC-4C11-A5C7-C608ECE12186}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6D01212B-3BBC-4C11-A5C7-C608ECE12186}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6D01212B-3BBC-4C11-A5C7-C608ECE12186}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6D01212B-3BBC-4C11-A5C7-C608ECE12186}.Release|Any CPU.Build.0 = Release|Any CPU
- {33DE78E8-D222-4F04-885A-47A5BDD23A4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {33DE78E8-D222-4F04-885A-47A5BDD23A4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {33DE78E8-D222-4F04-885A-47A5BDD23A4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {33DE78E8-D222-4F04-885A-47A5BDD23A4A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -85,12 +47,6 @@ Global
GlobalSection(NestedProjects) = preSolution
{96687744-B1E0-4B98-AD61-ED385014E7AD} = {3A44ACF0-10D4-4322-976E-364B8ED98602}
{0D2C045B-B55B-4738-B580-58F259690DF0} = {3A44ACF0-10D4-4322-976E-364B8ED98602}
- {0F1838F0-4870-45B0-A85C-9197104C6F05} = {3A44ACF0-10D4-4322-976E-364B8ED98602}
- {B9C2D1F0-CA82-4778-BAF3-594C2726A4F1} = {8FAB9D0C-AE8E-4183-A2C5-77464A300549}
- {A7C137C2-F867-4BEB-8079-E77A21A8AE55} = {8FAB9D0C-AE8E-4183-A2C5-77464A300549}
- {82432CCF-502A-423B-871B-B86ABFBAE47B} = {8FAB9D0C-AE8E-4183-A2C5-77464A300549}
- {6D01212B-3BBC-4C11-A5C7-C608ECE12186} = {8FAB9D0C-AE8E-4183-A2C5-77464A300549}
- {33DE78E8-D222-4F04-885A-47A5BDD23A4A} = {8FAB9D0C-AE8E-4183-A2C5-77464A300549}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F146A5AC-8618-4967-A758-8FB3980BC90F}