@@ -6,10 +6,19 @@ | |||
<Nullable>enable</Nullable> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="BPA.ApolloClient" Version="1.0.9" /> | |||
<PackageReference Include="BPA.Message" Version="1.0.9" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.1" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="6.0.0" /> | |||
<PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\BPASmartClient.Device\BPASmartClient.Device.csproj" /> | |||
<ProjectReference Include="..\BPASmartClient.Helper\BPASmartClient.Helper.csproj" /> | |||
<ProjectReference Include="..\BPASmartClient.Model\BPASmartClient.Model.csproj" /> | |||
<ProjectReference Include="..\BPASmartClient.MQTT\BPASmartClient.MQTT.csproj" /> | |||
</ItemGroup> | |||
</Project> |
@@ -0,0 +1,12 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace BPASmartClient.Business | |||
{ | |||
public class DataStorage | |||
{ | |||
} | |||
} |
@@ -0,0 +1,134 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
using System.Configuration; | |||
using System.IO; | |||
using Microsoft.Extensions.Configuration; | |||
using System.Threading; | |||
using BPASmartClient.Helper; | |||
using BPASmartClient.Message; | |||
using BPA.ApolloClient; | |||
namespace BPASmartClient.Business | |||
{ | |||
/// <summary> | |||
/// 网络信息数据 | |||
/// </summary> | |||
public class InternetInfo | |||
{ | |||
/// <summary> | |||
/// 配置初始化 | |||
/// </summary> | |||
public static void InitConfig() | |||
{ | |||
NetworkConnectState = UniversalHelper.GetInstance().GetNetworkState(); | |||
while (!NetworkConnectState) | |||
{ | |||
NetworkConnectState = UniversalHelper.GetInstance().GetNetworkState(); | |||
Thread.Sleep(2000); | |||
} | |||
ClientId = int.Parse(System.Configuration.ConfigurationManager.AppSettings["ClientId"]); | |||
IConfigurationBuilder configurationBuilder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()); | |||
configurationBuilder.AddApolloConfiguration(p => | |||
{ | |||
p.AppId = "dev1_order"; | |||
p.MetaServer = "http://10.2.1.21:28070/"; | |||
p.Namespaces = new List<string>() { "DEV.Config"}; | |||
}); | |||
IConfiguration config = configurationBuilder.Build(); | |||
var mqttBroker = config.GetSection("BrokerHostSettings"); | |||
//while (StockServer == null) | |||
//{ | |||
// try | |||
// { | |||
// IConfigurationBuilder configurationBuilder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddConsul(ConsulAddress, "root/basic.json", false, 5_000); | |||
// IConfiguration config = configurationBuilder.Build(); | |||
// MqttUserName = config["MQTT:TcpAccount"]; | |||
// MqttPassword = config["MQTT:TcpPwd"]; | |||
// MqttAddress = config["MQTT:IP"]; | |||
// MqttPort = int.Parse(config["MQTT:Client"]); | |||
// ApiAddress = config["GateWay:BaseURL"]; | |||
// OrderServer = config["GateWay:Order"]; | |||
// StockServer = config["GateWay:Stock"]; | |||
// IotApiAddress = config["IOT:Address"]; | |||
// } | |||
// catch (Exception ex) | |||
// { | |||
// MessageLog.GetInstance.Show(ex.ToString()); | |||
// Thread.Sleep(30000); | |||
// } | |||
//} | |||
} | |||
/// <summary> | |||
/// Consul 地址 | |||
/// </summary> | |||
public static string ConsulAddress { get; set; } | |||
/// <summary> | |||
/// 网络连接状态 | |||
/// </summary> | |||
public static bool NetworkConnectState { get; set; } | |||
/// <summary> | |||
/// 广告地址 | |||
/// </summary> | |||
public static Uri SorbetesAddress { get; set; } | |||
/// <summary> | |||
/// 客户端ID | |||
/// </summary> | |||
public static int ClientId { get; set; } | |||
/// <summary> | |||
/// IOTAPI 地址 | |||
/// </summary> | |||
public static string IotApiAddress { get; set; } | |||
#region MQTT连接信息 | |||
/// <summary> | |||
/// mqtt 服务地址 | |||
/// </summary> | |||
public static string MqttAddress { get; set; } | |||
/// <summary> | |||
/// mqtt 用户名 | |||
/// </summary> | |||
public static string MqttUserName { get; set; } | |||
/// <summary> | |||
/// mqtt 密码 | |||
/// </summary> | |||
public static string MqttPassword { get; set; } | |||
/// <summary> | |||
/// mqtt 端口号 | |||
/// </summary> | |||
public static int MqttPort { get; set; } | |||
#endregion | |||
#region API地址 | |||
/// <summary> | |||
/// Api 网关地址 | |||
/// </summary> | |||
public static string ApiAddress { get; set; } | |||
/// <summary> | |||
/// 订单服务 | |||
/// </summary> | |||
public static string OrderServer { get; set; } | |||
/// <summary> | |||
/// 库存服务 | |||
/// </summary> | |||
public static string StockServer { get; set; } | |||
#endregion | |||
} | |||
} |
@@ -0,0 +1,43 @@ | |||
using HBLConsole.Communication; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace BPASmartClient.Business | |||
{ | |||
/// <summary> | |||
/// 主控入口 | |||
/// </summary> | |||
public class MainConsole | |||
{ | |||
/// <summary> | |||
/// 主业务线开始 | |||
/// </summary> | |||
public void Start() | |||
{ | |||
//网络相关 | |||
InternetInfo.InitConfig(); | |||
//业务插件初始化 | |||
Plugin.GetInstance().Init(); | |||
//主题初始化 | |||
TopicDefine.GetInstance().Initialize(Plugin.GetInstance().GetPlugin<DeviceMgr>().GetDevices()); | |||
//MQTT 重连成功 | |||
MqttHelper.GetInstance().Reconnection = new Action(() => | |||
{ | |||
MqttHelper.GetInstance().MqttSubscriptionAsync(TopicDefine.GetInstance().SubscribTopics.ToArray()); | |||
}); | |||
//MQTT 连接 | |||
MqttHelper.GetInstance().MqttInitAsync(InternetInfo.MqttUserName, InternetInfo.MqttPassword, | |||
InternetInfo.MqttAddress, InternetInfo.MqttPort, DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")); | |||
} | |||
/// <summary> | |||
/// 主业务线停止 | |||
/// </summary> | |||
public void Stop() | |||
{ | |||
} | |||
} | |||
} |
@@ -27,6 +27,11 @@ namespace BPASmartClient.Business | |||
LoadDevice(); | |||
} | |||
public List<IDevice> GetDevices() | |||
{ | |||
return devices; | |||
} | |||
/// <summary> | |||
/// 设备加载 | |||
/// </summary> | |||
@@ -54,6 +59,8 @@ namespace BPASmartClient.Business | |||
} | |||
} | |||
public void StartService() | |||
{ | |||
this.devices.ForEach(device => device.StartMain()); |
@@ -0,0 +1,44 @@ | |||
using HBLConsole.Communication; | |||
using System; | |||
using System.Collections.Concurrent; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace BPASmartClient.Business | |||
{ | |||
public class MQTTMgr : IPlugin | |||
{ | |||
//消息缓存 | |||
private ConcurrentQueue<string> msg = new ConcurrentQueue<string>(); | |||
public void Initialize() | |||
{ | |||
//MQTT 重连成功 | |||
MqttHelper.GetInstance().Reconnection = new Action(() => | |||
{ | |||
MqttHelper.GetInstance().MqttSubscriptionAsync(TopicDefine.GetInstance().SubscribTopics.ToArray()); | |||
}); | |||
//MQTT 连接成功 | |||
MqttHelper.GetInstance().ConnectOk = new Action(() => | |||
{ | |||
MqttHelper.GetInstance().MqttSubscriptionAsync(TopicDefine.GetInstance().SubscribTopics.ToArray()); | |||
}); | |||
//MQTT 数据接收 | |||
MqttHelper.GetInstance().MqttReceive = new Action<MQTTnet.MqttApplicationMessageReceivedEventArgs>((receivce) => | |||
{ | |||
msg.Enqueue(Encoding.UTF8.GetString(receivce.ApplicationMessage.Payload)); | |||
}); | |||
//MQTT 初始化 | |||
MqttHelper.GetInstance().MqttInitAsync(InternetInfo.MqttUserName, InternetInfo.MqttPassword, | |||
InternetInfo.MqttAddress, InternetInfo.MqttPort, DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")); | |||
} | |||
public void Dispose() | |||
{ | |||
MqttHelper.GetInstance().Close(); | |||
} | |||
} | |||
} |
@@ -0,0 +1,20 @@ | |||
using HBLConsole.Communication; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace BPASmartClient.Business | |||
{ | |||
public class OrderProxy : IPlugin | |||
{ | |||
public void Initialize() | |||
{ | |||
} | |||
public void Dispose() | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,39 @@ | |||
using BPA.Message; | |||
using BPA.Message.Enum; | |||
using BPASmartClient.Device; | |||
using BPASmartClient.Helper; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace BPASmartClient.Business | |||
{ | |||
/// <summary> | |||
/// 主题定义 | |||
/// </summary> | |||
public class TopicDefine : Singleton<TopicDefine> | |||
{ | |||
/// <summary> | |||
/// 获取订阅主题 | |||
/// </summary> | |||
public List<string> SubscribTopics { get; private set; } | |||
/// <summary> | |||
/// 获取心跳上报主题 | |||
/// </summary> | |||
public Dictionary<DeviceClientType, string> PushHeartbeatTopics { get; set; } | |||
public void Initialize(List<IDevice> devices) | |||
{ | |||
SubscribTopics = new List<string>(); | |||
PushHeartbeatTopics = new Dictionary<DeviceClientType, string>(); | |||
foreach (var device in devices) | |||
{ | |||
SubscribTopics.Add(TOPIC.GetInstance.GetOrderPushTopic(device.DeviceType, InternetInfo.ClientId)); | |||
SubscribTopics.Add(TOPIC.GetInstance.GetBusinessTopic(device.DeviceType, InternetInfo.ClientId)); | |||
PushHeartbeatTopics.Add(device.DeviceType, TOPIC.GetInstance.GetHeatbeatTopic(device.DeviceType)); | |||
} | |||
} | |||
} | |||
} |
@@ -4,6 +4,10 @@ | |||
<TargetFramework>net6.0</TargetFramework> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="BPA.Message" Version="1.0.9" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\BPASmartClient.Peripheral\BPASmartClient.Peripheral.csproj" /> | |||
</ItemGroup> | |||
@@ -1,4 +1,5 @@ | |||
using BPASmartClient.Peripheral; | |||
using BPA.Message.Enum; | |||
using BPASmartClient.Peripheral; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
@@ -20,7 +21,14 @@ namespace BPASmartClient.Device | |||
/// 设备所有状态 | |||
/// </summary> | |||
public DeviceStatus Status { get; set; } | |||
/// <summary> | |||
/// 设备名称 | |||
/// </summary> | |||
public string Name { get; set; } | |||
/// <summary> | |||
/// 设备类型 | |||
/// </summary> | |||
public abstract DeviceClientType DeviceType { get; } | |||
public void Initliaze() | |||
{ | |||
@@ -1,4 +1,5 @@ | |||
using BPASmartClient.Peripheral; | |||
using BPA.Message.Enum; | |||
using BPASmartClient.Peripheral; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
@@ -16,8 +17,15 @@ namespace BPASmartClient.Device | |||
/// 设备ID | |||
/// </summary> | |||
string DeviceId { get; set; } | |||
/// <summary> | |||
/// 设备名称 | |||
/// </summary> | |||
string Name { get; set; } | |||
/// <summary> | |||
/// 设备类型 | |||
/// </summary> | |||
DeviceClientType DeviceType { get; } | |||
/// <summary> | |||
/// 设备所有状态 | |||
/// </summary> | |||
DeviceStatus Status { get; set; } | |||
@@ -1,12 +0,0 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<PropertyGroup> | |||
<TargetFramework>net6.0</TargetFramework> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\BPASmartClient.Device\BPASmartClient.Device.csproj" /> | |||
<ProjectReference Include="..\BPASmartClient.Helper\BPASmartClient.Helper.csproj" /> | |||
</ItemGroup> | |||
</Project> |
@@ -1,26 +0,0 @@ | |||
using BPASmartClient.Device; | |||
using BPASmartClient.Helper; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace BPASmartClient.DeviceProxy | |||
{ | |||
/// <summary> | |||
/// 设备管理器,统一管理所有设备资源 | |||
/// </summary> | |||
public class DeviceMgr:Singleton<DeviceMgr> | |||
{ | |||
//设备集合 | |||
private List<IDevice> devices=new List<IDevice>(); | |||
/// <summary> | |||
/// 设备加载 | |||
/// </summary> | |||
public void LoadDevice() { | |||
} | |||
} | |||
} |
@@ -8,13 +8,9 @@ using System.Threading; | |||
namespace HBLConsole.Communication | |||
{ | |||
public class MqttHelper | |||
public class MqttHelper:Singleton<MqttHelper> | |||
{ | |||
private volatile static MqttHelper _Instance; | |||
public static MqttHelper GetInstance => _Instance ?? (_Instance = new MqttHelper()); | |||
private MqttHelper() { } | |||
private IMqttClient client; | |||
IMqttClientOptions options; | |||
@@ -71,7 +67,10 @@ namespace HBLConsole.Communication | |||
MessageLog.GetInstance.Show("MQTT连接成功!"); | |||
if (ConnectOk != null) ConnectOk(); | |||
} | |||
} | |||
public async void Close() { | |||
await client.DisconnectAsync(); | |||
} | |||
private void Reconnect() | |||
@@ -4,6 +4,10 @@ | |||
<TargetFramework>net6.0</TargetFramework> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="BPA.Message" Version="1.0.9" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\BPASmartClient.Device\BPASmartClient.Device.csproj" /> | |||
</ItemGroup> | |||
@@ -10,6 +10,8 @@ namespace BPASmartClient.MorkT | |||
{ | |||
public class Device_MorkT : BaseDevice | |||
{ | |||
public override global::BPA.Message.Enum.DeviceClientType DeviceType { get { return BPA.Message.Enum.DeviceClientType.MORKIC; } } | |||
public override void StartMain() | |||
{ | |||
} | |||
@@ -1,7 +0,0 @@ | |||
namespace BPASmartClient.OrderProxy | |||
{ | |||
public class Class1 | |||
{ | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
<?xml version="1.0" encoding="utf-8" ?> | |||
<configuration> | |||
<appSettings> | |||
<!--通用配置--> | |||
<!--测试服务 Consul 地址--> | |||
<add key="ConsulAddress" value="http://111.9.47.105:9011/" /> | |||
<!--正式服务 Consul 地址--> | |||
<!--<add key="ConsulAddress" value="http://162.14.105.138:9005" />--> | |||
<!--客户端ID--> | |||
<!--1:且时且多冰淇淋咖啡机,2:且时且多煮面机,3:海科煮面机测试店铺--> | |||
<add key="ClientId" value="12"/> | |||
<add key="COM_Coffee" value="COM3"/> | |||
<add key="BAUD_Coffee" value="115200"/> | |||
<add key="COM_IceCream" value="COM12"/> | |||
<add key="BAUD_IceCream" value="9600"/> | |||
<add key="IceCream_CXB_Threshold" value="90"/> | |||
<add key="COM_ICChip" value="COM6"/> | |||
<add key="BAUD_IChip" value="9600"/> | |||
</appSettings> | |||
</configuration> |
@@ -5,6 +5,7 @@ | |||
<TargetFramework>net6.0-windows</TargetFramework> | |||
<Nullable>enable</Nullable> | |||
<UseWPF>true</UseWPF> | |||
<StartupObject>BPASmartClient.App</StartupObject> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
@@ -25,8 +25,8 @@ namespace BPASmartClient | |||
{ | |||
public MainWindow() | |||
{ | |||
Plugin.GetInstance().Init(); | |||
InitializeComponent(); | |||
new MainConsole().Start(); | |||
} | |||
private void Button_Click(object sender, RoutedEventArgs e) | |||
@@ -41,8 +41,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.Helper", "BP | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.Message", "BPASmartClient.Message\BPASmartClient.Message.csproj", "{C517D33F-8800-405E-9D59-E1F6CA201431}" | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.DeviceProxy", "BPASmartClient.DeviceProxy\BPASmartClient.DeviceProxy.csproj", "{9D26C2D6-CF32-4FB6-A15E-8A1455DACD69}" | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.Status", "BPASmartClient.Status\BPASmartClient.Status.csproj", "{2C8DAB92-D5EB-4462-87C1-0BED75B26C54}" | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.IoT", "BPASmartClient.IoT\BPASmartClient.IoT.csproj", "{D3DBCC2D-086E-4E3A-B70A-22A79FB295CF}" | |||
@@ -63,9 +61,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.OrderProxy", | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.MessageCommunication", "BPASmartClient.MessageCommunication\BPASmartClient.MessageCommunication.csproj", "{DCC07B39-E342-4841-B9E4-4D44DA2978FD}" | |||
EndProject | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BPASmartClient.EventBus", "BPASmartClient.EventBus\BPASmartClient.EventBus.csproj", "{C7FC5FC8-4C72-4CD3-973E-327BDA880DF5}" | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.EventBus", "BPASmartClient.EventBus\BPASmartClient.EventBus.csproj", "{C7FC5FC8-4C72-4CD3-973E-327BDA880DF5}" | |||
EndProject | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BPASmartClient.Model", "BPASmartClient.Model\BPASmartClient.Model.csproj", "{268012B6-C4FC-4C40-802C-74D5FAD3CA45}" | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.Model", "BPASmartClient.Model\BPASmartClient.Model.csproj", "{268012B6-C4FC-4C40-802C-74D5FAD3CA45}" | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.Business", "BPASmartClient.Business\BPASmartClient.Business.csproj", "{EF5EF8EF-4A44-4E44-9594-D878CABC4182}" | |||
EndProject | |||
@@ -74,7 +72,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution | |||
.editorconfig = .editorconfig | |||
EndProjectSection | |||
EndProject | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BPASmartClient.CustomResource", "BPASmartClient.CustomResource\BPASmartClient.CustomResource.csproj", "{CB1BC55F-D267-4724-89BE-96E3A5E432A6}" | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.CustomResource", "BPASmartClient.CustomResource\BPASmartClient.CustomResource.csproj", "{CB1BC55F-D267-4724-89BE-96E3A5E432A6}" | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lebai.SDK", "Lebai.SDK\Lebai.SDK.csproj", "{3A55F68A-D526-4CFC-A5A6-B69FB76716C2}" | |||
EndProject | |||
@@ -136,10 +134,6 @@ Global | |||
{C517D33F-8800-405E-9D59-E1F6CA201431}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{C517D33F-8800-405E-9D59-E1F6CA201431}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{C517D33F-8800-405E-9D59-E1F6CA201431}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{9D26C2D6-CF32-4FB6-A15E-8A1455DACD69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{9D26C2D6-CF32-4FB6-A15E-8A1455DACD69}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{9D26C2D6-CF32-4FB6-A15E-8A1455DACD69}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{9D26C2D6-CF32-4FB6-A15E-8A1455DACD69}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{2C8DAB92-D5EB-4462-87C1-0BED75B26C54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{2C8DAB92-D5EB-4462-87C1-0BED75B26C54}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{2C8DAB92-D5EB-4462-87C1-0BED75B26C54}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
@@ -180,10 +174,6 @@ Global | |||
{DCC07B39-E342-4841-B9E4-4D44DA2978FD}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{DCC07B39-E342-4841-B9E4-4D44DA2978FD}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{DCC07B39-E342-4841-B9E4-4D44DA2978FD}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{CB1BC55F-D267-4724-89BE-96E3A5E432A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{CB1BC55F-D267-4724-89BE-96E3A5E432A6}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{CB1BC55F-D267-4724-89BE-96E3A5E432A6}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{CB1BC55F-D267-4724-89BE-96E3A5E432A6}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{C7FC5FC8-4C72-4CD3-973E-327BDA880DF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{C7FC5FC8-4C72-4CD3-973E-327BDA880DF5}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{C7FC5FC8-4C72-4CD3-973E-327BDA880DF5}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
@@ -196,6 +186,10 @@ Global | |||
{EF5EF8EF-4A44-4E44-9594-D878CABC4182}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{EF5EF8EF-4A44-4E44-9594-D878CABC4182}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{EF5EF8EF-4A44-4E44-9594-D878CABC4182}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{CB1BC55F-D267-4724-89BE-96E3A5E432A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{CB1BC55F-D267-4724-89BE-96E3A5E432A6}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{CB1BC55F-D267-4724-89BE-96E3A5E432A6}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{CB1BC55F-D267-4724-89BE-96E3A5E432A6}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{3A55F68A-D526-4CFC-A5A6-B69FB76716C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{3A55F68A-D526-4CFC-A5A6-B69FB76716C2}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{3A55F68A-D526-4CFC-A5A6-B69FB76716C2}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
@@ -218,7 +212,6 @@ Global | |||
{B399BCFF-82E8-4940-9CE5-B7DCDDFDC696} = {9FB27073-61A0-4FE3-94DB-5FDDE062332F} | |||
{A2A5CB83-11C7-4534-A65D-6F957B60EEFF} = {1A9920BA-7C8D-4BDC-8D7D-6544A71AF3CF} | |||
{C517D33F-8800-405E-9D59-E1F6CA201431} = {1A9920BA-7C8D-4BDC-8D7D-6544A71AF3CF} | |||
{9D26C2D6-CF32-4FB6-A15E-8A1455DACD69} = {6CEA3385-6F62-452A-8275-033A6037235D} | |||
{2C8DAB92-D5EB-4462-87C1-0BED75B26C54} = {6CEA3385-6F62-452A-8275-033A6037235D} | |||
{D3DBCC2D-086E-4E3A-B70A-22A79FB295CF} = {6CEA3385-6F62-452A-8275-033A6037235D} | |||
{2BA531E8-7F85-4EBF-AE97-811CD7C83EF2} = {8712125E-14CD-4E1B-A1CE-4BDE03805942} | |||
@@ -229,10 +222,10 @@ Global | |||
{9F5E2879-972A-45FB-913C-89E9F0CEB189} = {666CB1A9-562E-453A-A2C7-FD9D77CFDFDD} | |||
{EBDFF87C-0B98-4BB5-8760-D86964E38A88} = {6CEA3385-6F62-452A-8275-033A6037235D} | |||
{DCC07B39-E342-4841-B9E4-4D44DA2978FD} = {3D1D0E04-03FD-480A-8CF8-6E01A2E28625} | |||
{CB1BC55F-D267-4724-89BE-96E3A5E432A6} = {8712125E-14CD-4E1B-A1CE-4BDE03805942} | |||
{C7FC5FC8-4C72-4CD3-973E-327BDA880DF5} = {1A9920BA-7C8D-4BDC-8D7D-6544A71AF3CF} | |||
{268012B6-C4FC-4C40-802C-74D5FAD3CA45} = {1A9920BA-7C8D-4BDC-8D7D-6544A71AF3CF} | |||
{EF5EF8EF-4A44-4E44-9594-D878CABC4182} = {6CEA3385-6F62-452A-8275-033A6037235D} | |||
{CB1BC55F-D267-4724-89BE-96E3A5E432A6} = {8712125E-14CD-4E1B-A1CE-4BDE03805942} | |||
{3A55F68A-D526-4CFC-A5A6-B69FB76716C2} = {666CB1A9-562E-453A-A2C7-FD9D77CFDFDD} | |||
EndGlobalSection | |||
GlobalSection(ExtensibilityGlobals) = postSolution | |||