Browse Source

update README.md

pull/296/head
cKey 4 years ago
parent
commit
743b5b29c8
  1. 989
      aspnet-core/LINGYUN.MicroService.Common.sln
  2. 323
      aspnet-core/modules/common/LINGYUN.Abp.Features.LimitValidation.Redis/LINGYUN/Abp/Features/LimitValidation/Redis/RedisRequiresLimitFeatureChecker.cs
  3. 130
      aspnet-core/modules/common/LINGYUN.Abp.Features.LimitValidation/README.en.md
  4. 130
      aspnet-core/modules/common/LINGYUN.Abp.Features.LimitValidation/README.md
  5. 128
      aspnet-core/modules/localization/LINGYUN.Abp.Localization.Xml/README.md

989
aspnet-core/LINGYUN.MicroService.Common.sln

@ -1,491 +1,498 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30011.22
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{02EA4E78-5891-43BC-944F-3E52FEE032E4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{086BE5BE-8594-4DA7-8819-935FEF76DABD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IM", "modules\common\LINGYUN.Abp.IM\LINGYUN.Abp.IM.csproj", "{5A87E9DD-3340-44DC-9564-4D8832A0228E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.RealTime", "modules\common\LINGYUN.Abp.RealTime\LINGYUN.Abp.RealTime.csproj", "{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.RealTime.SignalR", "modules\common\LINGYUN.Abp.RealTime.SignalR\LINGYUN.Abp.RealTime.SignalR.csproj", "{824CB367-383B-48B2-972D-33923438A9A0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json", "modules\common\LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json\LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json.csproj", "{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.SignalR.JwtToken", "modules\common\LINGYUN.Abp.AspNetCore.SignalR\LINGYUN.Abp.AspNetCore.SignalR.JwtToken.csproj", "{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundJobs.Hangfire", "modules\common\LINGYUN.Abp.BackgroundJobs.Hangfire\LINGYUN.Abp.BackgroundJobs.Hangfire.csproj", "{492710E6-EEF5-4390-A474-8FB2412ECBE5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BlobStoring.Aliyun", "modules\common\LINGYUN.Abp.BlobStoring.Aliyun\LINGYUN.Abp.BlobStoring.Aliyun.csproj", "{CCF1EB86-29BD-4531-BB27-C9111CC67570}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DistributedLock", "modules\common\LINGYUN.Abp.DistributedLock\LINGYUN.Abp.DistributedLock.csproj", "{4BD715F2-D117-45FB-B26C-F92D912144C7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DistributedLock.Redis", "modules\common\LINGYUN.Abp.DistributedLock.Redis\LINGYUN.Abp.DistributedLock.Redis.csproj", "{71C57C19-671D-4CD4-AA46-E8021E53BBE5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.EventBus.CAP", "modules\common\LINGYUN.Abp.EventBus.CAP\LINGYUN.Abp.EventBus.CAP.csproj", "{7947D559-4288-486B-8FB3-D957CC7EDD32}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling", "modules\common\LINGYUN.Abp.ExceptionHandling\LINGYUN.Abp.ExceptionHandling.csproj", "{A4195E41-3919-4C3E-8768-7F277B583D16}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling.Emailing", "modules\common\LINGYUN.Abp.ExceptionHandling.Emailing\LINGYUN.Abp.ExceptionHandling.Emailing.csproj", "{60083380-062C-4914-9E4E-5AE6637CCC3F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling.Notifications", "modules\common\LINGYUN.Abp.ExceptionHandling.Notifications\LINGYUN.Abp.ExceptionHandling.Notifications.csproj", "{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Features.LimitValidation", "modules\common\LINGYUN.Abp.Features.LimitValidation\LINGYUN.Abp.Features.LimitValidation.csproj", "{34C1E979-65B9-46F5-B7BA-60F227EBA093}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Features.LimitValidation.Redis", "modules\common\LINGYUN.Abp.Features.LimitValidation.Redis\LINGYUN.Abp.Features.LimitValidation.Redis.csproj", "{80A56461-0ACC-4069-B571-87DCA064B2EF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Hangfire.Storage.MySql", "modules\common\LINGYUN.Abp.Hangfire.MySqlStorage\LINGYUN.Abp.Hangfire.Storage.MySql.csproj", "{568D2C50-1C31-4C31-89A2-C608FA93C6FD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Hangfire.Storage.SqlServer", "modules\common\LINGYUN.Abp.Hangfire.Storage.SqlServer\LINGYUN.Abp.Hangfire.Storage.SqlServer.csproj", "{12451B83-18DE-4E93-B98C-509477D53D5E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location", "modules\common\LINGYUN.Abp.Location\LINGYUN.Abp.Location.csproj", "{AAD0B6A7-847A-4537-A300-50E37F4B70CC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Baidu", "modules\common\LINGYUN.Abp.Location.Baidu\LINGYUN.Abp.Location.Baidu.csproj", "{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Tencent", "modules\common\LINGYUN.Abp.Location.Tencent\LINGYUN.Abp.Location.Tencent.csproj", "{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications", "modules\common\LINGYUN.Abp.Notifications\LINGYUN.Abp.Notifications.csproj", "{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.SignalR", "modules\common\LINGYUN.Abp.Notifications.SignalR\LINGYUN.Abp.Notifications.SignalR.csproj", "{B31CEE79-45F6-4BB9-9EEB-08843C324B37}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wechat", "wechat", "{22C61434-D29A-4376-AD56-F5089F3E617A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat", "modules\wechat\LINGYUN.Abp.WeChat\LINGYUN.Abp.WeChat.csproj", "{865D5508-63CD-4D44-9F5B-AE5CD4A43D08}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Settings", "modules\common\LINGYUN.Abp.Settings\LINGYUN.Abp.Settings.csproj", "{ECAA4B82-A240-4747-888C-FACD8634D389}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Sms.Aliyun", "modules\common\LINGYUN.Abp.Sms.Aliyun\LINGYUN.Abp.Sms.Aliyun.csproj", "{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "aliyun", "aliyun", "{7F18BCA5-35BD-41FB-8EFF-801B56E5E414}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "signalr", "signalr", "{E2E7A062-0ABB-41B4-8220-60228446D2C2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "location", "location", "{EFFAF456-50C1-42C9-836E-E95E7A38D52C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "realtime", "realtime", "{B91F26C5-B148-4094-B5F1-71E5F945DBED}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "features", "features", "{0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Features.Client", "modules\features\LINGYUN.Abp.Features.Client\LINGYUN.Abp.Features.Client.csproj", "{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.FeatureManagement.Client", "modules\features\LINGYUN.Abp.FeatureManagement.Client\LINGYUN.Abp.FeatureManagement.Client.csproj", "{99F8F254-A76E-43BB-8048-CC17EE1C8527}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tenants", "tenants", "{38E21687-5F19-42C9-9D11-4B1D2EF64EDB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy", "modules\tenants\LINGYUN.Abp.MultiTenancy\LINGYUN.Abp.MultiTenancy.csproj", "{F2DAA5EB-5508-4D99-AE64-A10C025712BC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy.DbFinder", "modules\tenants\LINGYUN.Abp.MultiTenancy.DbFinder\LINGYUN.Abp.MultiTenancy.DbFinder.csproj", "{BD0A1F2D-7667-45F8-872D-D41F36384163}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy.RemoteService", "modules\tenants\LINGYUN.Abp.MultiTenancy.RemoteService\LINGYUN.Abp.MultiTenancy.RemoteService.csproj", "{21C0A260-BC14-4A8F-9299-A9EE58682B96}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Sms", "modules\common\LINGYUN.Abp.Notifications.Sms\LINGYUN.Abp.Notifications.Sms.csproj", "{15FC0C39-A604-491F-91F6-BD44167FC5F6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.MiniProgram", "modules\wechat\LINGYUN.Abp.WeChat.MiniProgram\LINGYUN.Abp.WeChat.MiniProgram.csproj", "{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.Official", "modules\wechat\LINGYUN.Abp.WeChat.Official\LINGYUN.Abp.WeChat.Official.csproj", "{16942653-B746-4917-B3BF-464C99F8832F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.SettingManagement", "modules\wechat\LINGYUN.Abp.WeChat.SettingManagement\LINGYUN.Abp.WeChat.SettingManagement.csproj", "{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.WeChat.MiniProgram", "modules\wechat\LINGYUN.Abp.Notifications.WeChat.MiniProgram\LINGYUN.Abp.Notifications.WeChat.MiniProgram.csproj", "{D119C919-230B-4614-9A06-98586635DBFC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Core", "modules\common\LINGYUN.Abp.Core\LINGYUN.Abp.Core.csproj", "{A7A28D6C-6EDB-4615-8899-7DE1D435B750}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Aliyun", "modules\cloud-aliyun\LINGYUN.Abp.Aliyun\LINGYUN.Abp.Aliyun.csproj", "{17A8455F-D413-4664-AEFA-1ECAE9ED4B19}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{B86C21A4-73B7-471E-B73A-B4B905EC9435}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TestsBase", "tests\LINGYUN.Abp.TestBase\LINGYUN.Abp.TestsBase.csproj", "{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BlobStoring.Aliyun.Tests", "tests\LINGYUN.Abp.BlobStoring.Aliyun.Tests\LINGYUN.Abp.BlobStoring.Aliyun.Tests.csproj", "{2E35CB93-2E9C-4EE1-845F-72A40271648E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "console", "console", "{8D2AD50B-DD4B-48A2-88EC-0E8E8236D883}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Encryption.Console", "modules\console\LINGYUN.Abp.Encryption.Console\LINGYUN.Abp.Encryption.Console.csproj", "{8FB74B18-CA5C-4DC3-8DFA-600133A05712}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Aliyun.Tests", "tests\LINGYUN.Abp.Aliyun.Tests\LINGYUN.Abp.Aliyun.Tests.csproj", "{3DBF0975-B09D-49CA-9AF8-69175EDB9D52}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Sms.Aliyun.Tests", "tests\LINGYUN.Abp.Sms.Aliyun.Tests\LINGYUN.Abp.Sms.Aliyun.Tests.csproj", "{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Baidu.Tests", "tests\LINGYUN.Abp.Location.Baidu.Tests\LINGYUN.Abp.Location.Baidu.Tests.csproj", "{221725FF-6C01-4F41-9F29-AC04C7D52611}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Tencent.Tests", "tests\LINGYUN.Abp.Location.Tencent.Tests\LINGYUN.Abp.Location.Tencent.Tests.csproj", "{1B494EA1-28CF-4A61-B0BE-70BBA425C316}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Client", "modules\common\LINGYUN.Abp.AspNetCore.Mvc.Client\LINGYUN.Abp.AspNetCore.Mvc.Client.csproj", "{7F767ACF-754A-4EBC-8936-3C1402B6EF82}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "localization", "localization", "{E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Xml", "modules\localization\LINGYUN.Abp.Localization.Xml\LINGYUN.Abp.Localization.Xml.csproj", "{8CC72F4E-F134-4A43-9037-5D4D1F29B68A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Xml.Tests", "tests\LINGYUN.Abp.Localization.Xml.Tests\LINGYUN.Abp.Localization.Xml.Tests.csproj", "{94FEA59E-3B6D-41A0-9E44-BA5D6477244F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dapr", "dapr", "{7FDFB22F-1BFF-4E05-9427-78B7A8461D50}"
ProjectSection(SolutionItems) = preProject
modules\dapr\README.md = modules\dapr\README.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors", "modules\dapr\LINGYUN.Abp.Dapr.Actors\LINGYUN.Abp.Dapr.Actors.csproj", "{C72E0407-06FE-4CAA-86E5-30FF216A7B82}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.AspNetCore", "modules\dapr\LINGYUN.Abp.Dapr.Actors.AspNetCore\LINGYUN.Abp.Dapr.Actors.AspNetCore.csproj", "{E74FF671-6E5E-430C-9211-ED910634DDBE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Client", "modules\dapr\LINGYUN.Abp.Dapr.Client\LINGYUN.Abp.Dapr.Client.csproj", "{879791A3-BD69-42E4-A3BC-9878EFAADDD1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "rules", "rules", "{C8891F1A-E6E5-448A-B527-EBFA44D20808}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules", "modules\rules\LINGYUN.Abp.Rules\LINGYUN.Abp.Rules.csproj", "{5133D83C-9B23-491C-8780-3F9BBDBD0351}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.NRules", "modules\rules\LINGYUN.Abp.Rules.NRules\LINGYUN.Abp.Rules.NRules.csproj", "{B8E5026B-188F-422F-A1EA-502C4A394585}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.RulesEngine", "modules\rules\LINGYUN.Abp.Rules.RulesEngine\LINGYUN.Abp.Rules.RulesEngine.csproj", "{E861BE01-689D-4637-A5DC-E78E234F83FB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.RulesEngine.Tests", "tests\LINGYUN.Abp.Rules.RulesEngine.Tests\LINGYUN.Abp.Rules.RulesEngine.Tests.csproj", "{CF253F0A-3A45-40EE-875F-0E57C8968C48}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.NRules.Tests", "tests\LINGYUN.Abp.Rules.NRules.Tests\LINGYUN.Abp.Rules.NRules.Tests.csproj", "{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Client.Tests", "tests\LINGYUN.Abp.Dapr.Client.Tests\LINGYUN.Abp.Dapr.Client.Tests.csproj", "{9403FC1F-9677-489F-A03A-0B456153EE86}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Tests", "tests\LINGYUN.Abp.Dapr.Tests\LINGYUN.Abp.Dapr.Tests.csproj", "{26E87199-F0AD-4B30-B0E4-080B12E6F8FC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.AspNetCore.TestHost", "tests\LINGYUN.Abp.Dapr.AspNetCore.TestHost\LINGYUN.Abp.Dapr.AspNetCore.TestHost.csproj", "{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.Tests", "tests\LINGYUN.Abp.Dapr.Actors.Tests\LINGYUN.Abp.Dapr.Actors.Tests.csproj", "{CF30221B-CA7A-42CD-B91A-B7224AB2F38B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.HttpOverrides", "modules\common\LINGYUN.Abp.AspNetCore.HttpOverrides\LINGYUN.Abp.AspNetCore.HttpOverrides.csproj", "{191BB108-546E-4E70-978E-D6A8149C319C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IM.SignalR", "modules\common\LINGYUN.Abp.IM.SignalR\LINGYUN.Abp.IM.SignalR.csproj", "{DEB98AD7-9630-4F32-89E6-C1A118D1D18C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5A87E9DD-3340-44DC-9564-4D8832A0228E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5A87E9DD-3340-44DC-9564-4D8832A0228E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5A87E9DD-3340-44DC-9564-4D8832A0228E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5A87E9DD-3340-44DC-9564-4D8832A0228E}.Release|Any CPU.Build.0 = Release|Any CPU
{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Release|Any CPU.Build.0 = Release|Any CPU
{824CB367-383B-48B2-972D-33923438A9A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{824CB367-383B-48B2-972D-33923438A9A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{824CB367-383B-48B2-972D-33923438A9A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{824CB367-383B-48B2-972D-33923438A9A0}.Release|Any CPU.Build.0 = Release|Any CPU
{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Release|Any CPU.Build.0 = Release|Any CPU
{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Release|Any CPU.Build.0 = Release|Any CPU
{492710E6-EEF5-4390-A474-8FB2412ECBE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{492710E6-EEF5-4390-A474-8FB2412ECBE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{492710E6-EEF5-4390-A474-8FB2412ECBE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{492710E6-EEF5-4390-A474-8FB2412ECBE5}.Release|Any CPU.Build.0 = Release|Any CPU
{CCF1EB86-29BD-4531-BB27-C9111CC67570}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CCF1EB86-29BD-4531-BB27-C9111CC67570}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CCF1EB86-29BD-4531-BB27-C9111CC67570}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CCF1EB86-29BD-4531-BB27-C9111CC67570}.Release|Any CPU.Build.0 = Release|Any CPU
{4BD715F2-D117-45FB-B26C-F92D912144C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4BD715F2-D117-45FB-B26C-F92D912144C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4BD715F2-D117-45FB-B26C-F92D912144C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4BD715F2-D117-45FB-B26C-F92D912144C7}.Release|Any CPU.Build.0 = Release|Any CPU
{71C57C19-671D-4CD4-AA46-E8021E53BBE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{71C57C19-671D-4CD4-AA46-E8021E53BBE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{71C57C19-671D-4CD4-AA46-E8021E53BBE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{71C57C19-671D-4CD4-AA46-E8021E53BBE5}.Release|Any CPU.Build.0 = Release|Any CPU
{7947D559-4288-486B-8FB3-D957CC7EDD32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7947D559-4288-486B-8FB3-D957CC7EDD32}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7947D559-4288-486B-8FB3-D957CC7EDD32}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7947D559-4288-486B-8FB3-D957CC7EDD32}.Release|Any CPU.Build.0 = Release|Any CPU
{A4195E41-3919-4C3E-8768-7F277B583D16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A4195E41-3919-4C3E-8768-7F277B583D16}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A4195E41-3919-4C3E-8768-7F277B583D16}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A4195E41-3919-4C3E-8768-7F277B583D16}.Release|Any CPU.Build.0 = Release|Any CPU
{60083380-062C-4914-9E4E-5AE6637CCC3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{60083380-062C-4914-9E4E-5AE6637CCC3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{60083380-062C-4914-9E4E-5AE6637CCC3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{60083380-062C-4914-9E4E-5AE6637CCC3F}.Release|Any CPU.Build.0 = Release|Any CPU
{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Release|Any CPU.Build.0 = Release|Any CPU
{34C1E979-65B9-46F5-B7BA-60F227EBA093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{34C1E979-65B9-46F5-B7BA-60F227EBA093}.Debug|Any CPU.Build.0 = Debug|Any CPU
{34C1E979-65B9-46F5-B7BA-60F227EBA093}.Release|Any CPU.ActiveCfg = Release|Any CPU
{34C1E979-65B9-46F5-B7BA-60F227EBA093}.Release|Any CPU.Build.0 = Release|Any CPU
{80A56461-0ACC-4069-B571-87DCA064B2EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{80A56461-0ACC-4069-B571-87DCA064B2EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{80A56461-0ACC-4069-B571-87DCA064B2EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{80A56461-0ACC-4069-B571-87DCA064B2EF}.Release|Any CPU.Build.0 = Release|Any CPU
{568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Release|Any CPU.Build.0 = Release|Any CPU
{12451B83-18DE-4E93-B98C-509477D53D5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12451B83-18DE-4E93-B98C-509477D53D5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{12451B83-18DE-4E93-B98C-509477D53D5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12451B83-18DE-4E93-B98C-509477D53D5E}.Release|Any CPU.Build.0 = Release|Any CPU
{AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Release|Any CPU.Build.0 = Release|Any CPU
{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Release|Any CPU.Build.0 = Release|Any CPU
{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Release|Any CPU.Build.0 = Release|Any CPU
{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Release|Any CPU.Build.0 = Release|Any CPU
{B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Release|Any CPU.Build.0 = Release|Any CPU
{865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Debug|Any CPU.Build.0 = Debug|Any CPU
{865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Release|Any CPU.ActiveCfg = Release|Any CPU
{865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Release|Any CPU.Build.0 = Release|Any CPU
{ECAA4B82-A240-4747-888C-FACD8634D389}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ECAA4B82-A240-4747-888C-FACD8634D389}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ECAA4B82-A240-4747-888C-FACD8634D389}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ECAA4B82-A240-4747-888C-FACD8634D389}.Release|Any CPU.Build.0 = Release|Any CPU
{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Release|Any CPU.Build.0 = Release|Any CPU
{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Release|Any CPU.Build.0 = Release|Any CPU
{99F8F254-A76E-43BB-8048-CC17EE1C8527}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99F8F254-A76E-43BB-8048-CC17EE1C8527}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99F8F254-A76E-43BB-8048-CC17EE1C8527}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99F8F254-A76E-43BB-8048-CC17EE1C8527}.Release|Any CPU.Build.0 = Release|Any CPU
{F2DAA5EB-5508-4D99-AE64-A10C025712BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F2DAA5EB-5508-4D99-AE64-A10C025712BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F2DAA5EB-5508-4D99-AE64-A10C025712BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F2DAA5EB-5508-4D99-AE64-A10C025712BC}.Release|Any CPU.Build.0 = Release|Any CPU
{BD0A1F2D-7667-45F8-872D-D41F36384163}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BD0A1F2D-7667-45F8-872D-D41F36384163}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BD0A1F2D-7667-45F8-872D-D41F36384163}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BD0A1F2D-7667-45F8-872D-D41F36384163}.Release|Any CPU.Build.0 = Release|Any CPU
{21C0A260-BC14-4A8F-9299-A9EE58682B96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{21C0A260-BC14-4A8F-9299-A9EE58682B96}.Debug|Any CPU.Build.0 = Debug|Any CPU
{21C0A260-BC14-4A8F-9299-A9EE58682B96}.Release|Any CPU.ActiveCfg = Release|Any CPU
{21C0A260-BC14-4A8F-9299-A9EE58682B96}.Release|Any CPU.Build.0 = Release|Any CPU
{15FC0C39-A604-491F-91F6-BD44167FC5F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{15FC0C39-A604-491F-91F6-BD44167FC5F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{15FC0C39-A604-491F-91F6-BD44167FC5F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{15FC0C39-A604-491F-91F6-BD44167FC5F6}.Release|Any CPU.Build.0 = Release|Any CPU
{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Release|Any CPU.Build.0 = Release|Any CPU
{16942653-B746-4917-B3BF-464C99F8832F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{16942653-B746-4917-B3BF-464C99F8832F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{16942653-B746-4917-B3BF-464C99F8832F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{16942653-B746-4917-B3BF-464C99F8832F}.Release|Any CPU.Build.0 = Release|Any CPU
{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Release|Any CPU.Build.0 = Release|Any CPU
{D119C919-230B-4614-9A06-98586635DBFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D119C919-230B-4614-9A06-98586635DBFC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D119C919-230B-4614-9A06-98586635DBFC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D119C919-230B-4614-9A06-98586635DBFC}.Release|Any CPU.Build.0 = Release|Any CPU
{A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Release|Any CPU.Build.0 = Release|Any CPU
{17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Debug|Any CPU.Build.0 = Debug|Any CPU
{17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Release|Any CPU.ActiveCfg = Release|Any CPU
{17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Release|Any CPU.Build.0 = Release|Any CPU
{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Release|Any CPU.Build.0 = Release|Any CPU
{2E35CB93-2E9C-4EE1-845F-72A40271648E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2E35CB93-2E9C-4EE1-845F-72A40271648E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2E35CB93-2E9C-4EE1-845F-72A40271648E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2E35CB93-2E9C-4EE1-845F-72A40271648E}.Release|Any CPU.Build.0 = Release|Any CPU
{8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Release|Any CPU.Build.0 = Release|Any CPU
{3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Release|Any CPU.Build.0 = Release|Any CPU
{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Release|Any CPU.Build.0 = Release|Any CPU
{221725FF-6C01-4F41-9F29-AC04C7D52611}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{221725FF-6C01-4F41-9F29-AC04C7D52611}.Debug|Any CPU.Build.0 = Debug|Any CPU
{221725FF-6C01-4F41-9F29-AC04C7D52611}.Release|Any CPU.ActiveCfg = Release|Any CPU
{221725FF-6C01-4F41-9F29-AC04C7D52611}.Release|Any CPU.Build.0 = Release|Any CPU
{1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Release|Any CPU.Build.0 = Release|Any CPU
{7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Release|Any CPU.Build.0 = Release|Any CPU
{8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Release|Any CPU.Build.0 = Release|Any CPU
{94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Release|Any CPU.Build.0 = Release|Any CPU
{C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Release|Any CPU.Build.0 = Release|Any CPU
{E74FF671-6E5E-430C-9211-ED910634DDBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E74FF671-6E5E-430C-9211-ED910634DDBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E74FF671-6E5E-430C-9211-ED910634DDBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E74FF671-6E5E-430C-9211-ED910634DDBE}.Release|Any CPU.Build.0 = Release|Any CPU
{879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Release|Any CPU.Build.0 = Release|Any CPU
{5133D83C-9B23-491C-8780-3F9BBDBD0351}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5133D83C-9B23-491C-8780-3F9BBDBD0351}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5133D83C-9B23-491C-8780-3F9BBDBD0351}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5133D83C-9B23-491C-8780-3F9BBDBD0351}.Release|Any CPU.Build.0 = Release|Any CPU
{B8E5026B-188F-422F-A1EA-502C4A394585}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B8E5026B-188F-422F-A1EA-502C4A394585}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B8E5026B-188F-422F-A1EA-502C4A394585}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B8E5026B-188F-422F-A1EA-502C4A394585}.Release|Any CPU.Build.0 = Release|Any CPU
{E861BE01-689D-4637-A5DC-E78E234F83FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E861BE01-689D-4637-A5DC-E78E234F83FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E861BE01-689D-4637-A5DC-E78E234F83FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E861BE01-689D-4637-A5DC-E78E234F83FB}.Release|Any CPU.Build.0 = Release|Any CPU
{CF253F0A-3A45-40EE-875F-0E57C8968C48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF253F0A-3A45-40EE-875F-0E57C8968C48}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF253F0A-3A45-40EE-875F-0E57C8968C48}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF253F0A-3A45-40EE-875F-0E57C8968C48}.Release|Any CPU.Build.0 = Release|Any CPU
{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Release|Any CPU.Build.0 = Release|Any CPU
{9403FC1F-9677-489F-A03A-0B456153EE86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9403FC1F-9677-489F-A03A-0B456153EE86}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9403FC1F-9677-489F-A03A-0B456153EE86}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9403FC1F-9677-489F-A03A-0B456153EE86}.Release|Any CPU.Build.0 = Release|Any CPU
{26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Release|Any CPU.Build.0 = Release|Any CPU
{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Release|Any CPU.Build.0 = Release|Any CPU
{CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Release|Any CPU.Build.0 = Release|Any CPU
{191BB108-546E-4E70-978E-D6A8149C319C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{191BB108-546E-4E70-978E-D6A8149C319C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{191BB108-546E-4E70-978E-D6A8149C319C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{191BB108-546E-4E70-978E-D6A8149C319C}.Release|Any CPU.Build.0 = Release|Any CPU
{DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{086BE5BE-8594-4DA7-8819-935FEF76DABD} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{5A87E9DD-3340-44DC-9564-4D8832A0228E} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{824CB367-383B-48B2-972D-33923438A9A0} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2} = {E2E7A062-0ABB-41B4-8220-60228446D2C2}
{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC} = {E2E7A062-0ABB-41B4-8220-60228446D2C2}
{492710E6-EEF5-4390-A474-8FB2412ECBE5} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{CCF1EB86-29BD-4531-BB27-C9111CC67570} = {7F18BCA5-35BD-41FB-8EFF-801B56E5E414}
{4BD715F2-D117-45FB-B26C-F92D912144C7} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{71C57C19-671D-4CD4-AA46-E8021E53BBE5} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{7947D559-4288-486B-8FB3-D957CC7EDD32} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{A4195E41-3919-4C3E-8768-7F277B583D16} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{60083380-062C-4914-9E4E-5AE6637CCC3F} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{34C1E979-65B9-46F5-B7BA-60F227EBA093} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
{80A56461-0ACC-4069-B571-87DCA064B2EF} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
{568D2C50-1C31-4C31-89A2-C608FA93C6FD} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{12451B83-18DE-4E93-B98C-509477D53D5E} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{AAD0B6A7-847A-4537-A300-50E37F4B70CC} = {EFFAF456-50C1-42C9-836E-E95E7A38D52C}
{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB} = {EFFAF456-50C1-42C9-836E-E95E7A38D52C}
{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2} = {EFFAF456-50C1-42C9-836E-E95E7A38D52C}
{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{B31CEE79-45F6-4BB9-9EEB-08843C324B37} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{22C61434-D29A-4376-AD56-F5089F3E617A} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{865D5508-63CD-4D44-9F5B-AE5CD4A43D08} = {22C61434-D29A-4376-AD56-F5089F3E617A}
{ECAA4B82-A240-4747-888C-FACD8634D389} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0} = {7F18BCA5-35BD-41FB-8EFF-801B56E5E414}
{7F18BCA5-35BD-41FB-8EFF-801B56E5E414} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{E2E7A062-0ABB-41B4-8220-60228446D2C2} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{EFFAF456-50C1-42C9-836E-E95E7A38D52C} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{B91F26C5-B148-4094-B5F1-71E5F945DBED} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
{99F8F254-A76E-43BB-8048-CC17EE1C8527} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
{38E21687-5F19-42C9-9D11-4B1D2EF64EDB} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{F2DAA5EB-5508-4D99-AE64-A10C025712BC} = {38E21687-5F19-42C9-9D11-4B1D2EF64EDB}
{BD0A1F2D-7667-45F8-872D-D41F36384163} = {38E21687-5F19-42C9-9D11-4B1D2EF64EDB}
{21C0A260-BC14-4A8F-9299-A9EE58682B96} = {38E21687-5F19-42C9-9D11-4B1D2EF64EDB}
{15FC0C39-A604-491F-91F6-BD44167FC5F6} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8} = {22C61434-D29A-4376-AD56-F5089F3E617A}
{16942653-B746-4917-B3BF-464C99F8832F} = {22C61434-D29A-4376-AD56-F5089F3E617A}
{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6} = {22C61434-D29A-4376-AD56-F5089F3E617A}
{D119C919-230B-4614-9A06-98586635DBFC} = {22C61434-D29A-4376-AD56-F5089F3E617A}
{A7A28D6C-6EDB-4615-8899-7DE1D435B750} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{17A8455F-D413-4664-AEFA-1ECAE9ED4B19} = {7F18BCA5-35BD-41FB-8EFF-801B56E5E414}
{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{2E35CB93-2E9C-4EE1-845F-72A40271648E} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{8D2AD50B-DD4B-48A2-88EC-0E8E8236D883} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{8FB74B18-CA5C-4DC3-8DFA-600133A05712} = {8D2AD50B-DD4B-48A2-88EC-0E8E8236D883}
{3DBF0975-B09D-49CA-9AF8-69175EDB9D52} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{221725FF-6C01-4F41-9F29-AC04C7D52611} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{1B494EA1-28CF-4A61-B0BE-70BBA425C316} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{7F767ACF-754A-4EBC-8936-3C1402B6EF82} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{8CC72F4E-F134-4A43-9037-5D4D1F29B68A} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}
{94FEA59E-3B6D-41A0-9E44-BA5D6477244F} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{7FDFB22F-1BFF-4E05-9427-78B7A8461D50} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{C72E0407-06FE-4CAA-86E5-30FF216A7B82} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
{E74FF671-6E5E-430C-9211-ED910634DDBE} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
{879791A3-BD69-42E4-A3BC-9878EFAADDD1} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
{C8891F1A-E6E5-448A-B527-EBFA44D20808} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{5133D83C-9B23-491C-8780-3F9BBDBD0351} = {C8891F1A-E6E5-448A-B527-EBFA44D20808}
{B8E5026B-188F-422F-A1EA-502C4A394585} = {C8891F1A-E6E5-448A-B527-EBFA44D20808}
{E861BE01-689D-4637-A5DC-E78E234F83FB} = {C8891F1A-E6E5-448A-B527-EBFA44D20808}
{CF253F0A-3A45-40EE-875F-0E57C8968C48} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{9403FC1F-9677-489F-A03A-0B456153EE86} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{26E87199-F0AD-4B30-B0E4-080B12E6F8FC} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{CF30221B-CA7A-42CD-B91A-B7224AB2F38B} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{191BB108-546E-4E70-978E-D6A8149C319C} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{DEB98AD7-9630-4F32-89E6-C1A118D1D18C} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {06C707C6-02C0-411A-AD3B-2D0E13787CB8}
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30011.22
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{02EA4E78-5891-43BC-944F-3E52FEE032E4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{086BE5BE-8594-4DA7-8819-935FEF76DABD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IM", "modules\common\LINGYUN.Abp.IM\LINGYUN.Abp.IM.csproj", "{5A87E9DD-3340-44DC-9564-4D8832A0228E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.RealTime", "modules\common\LINGYUN.Abp.RealTime\LINGYUN.Abp.RealTime.csproj", "{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.RealTime.SignalR", "modules\common\LINGYUN.Abp.RealTime.SignalR\LINGYUN.Abp.RealTime.SignalR.csproj", "{824CB367-383B-48B2-972D-33923438A9A0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json", "modules\common\LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json\LINGYUN.Abp.AspNetCore.SignalR.Protocol.Json.csproj", "{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.SignalR.JwtToken", "modules\common\LINGYUN.Abp.AspNetCore.SignalR\LINGYUN.Abp.AspNetCore.SignalR.JwtToken.csproj", "{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BackgroundJobs.Hangfire", "modules\common\LINGYUN.Abp.BackgroundJobs.Hangfire\LINGYUN.Abp.BackgroundJobs.Hangfire.csproj", "{492710E6-EEF5-4390-A474-8FB2412ECBE5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BlobStoring.Aliyun", "modules\common\LINGYUN.Abp.BlobStoring.Aliyun\LINGYUN.Abp.BlobStoring.Aliyun.csproj", "{CCF1EB86-29BD-4531-BB27-C9111CC67570}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DistributedLock", "modules\common\LINGYUN.Abp.DistributedLock\LINGYUN.Abp.DistributedLock.csproj", "{4BD715F2-D117-45FB-B26C-F92D912144C7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.DistributedLock.Redis", "modules\common\LINGYUN.Abp.DistributedLock.Redis\LINGYUN.Abp.DistributedLock.Redis.csproj", "{71C57C19-671D-4CD4-AA46-E8021E53BBE5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.EventBus.CAP", "modules\common\LINGYUN.Abp.EventBus.CAP\LINGYUN.Abp.EventBus.CAP.csproj", "{7947D559-4288-486B-8FB3-D957CC7EDD32}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling", "modules\common\LINGYUN.Abp.ExceptionHandling\LINGYUN.Abp.ExceptionHandling.csproj", "{A4195E41-3919-4C3E-8768-7F277B583D16}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling.Emailing", "modules\common\LINGYUN.Abp.ExceptionHandling.Emailing\LINGYUN.Abp.ExceptionHandling.Emailing.csproj", "{60083380-062C-4914-9E4E-5AE6637CCC3F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.ExceptionHandling.Notifications", "modules\common\LINGYUN.Abp.ExceptionHandling.Notifications\LINGYUN.Abp.ExceptionHandling.Notifications.csproj", "{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Features.LimitValidation", "modules\common\LINGYUN.Abp.Features.LimitValidation\LINGYUN.Abp.Features.LimitValidation.csproj", "{34C1E979-65B9-46F5-B7BA-60F227EBA093}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Features.LimitValidation.Redis", "modules\common\LINGYUN.Abp.Features.LimitValidation.Redis\LINGYUN.Abp.Features.LimitValidation.Redis.csproj", "{80A56461-0ACC-4069-B571-87DCA064B2EF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Hangfire.Storage.MySql", "modules\common\LINGYUN.Abp.Hangfire.MySqlStorage\LINGYUN.Abp.Hangfire.Storage.MySql.csproj", "{568D2C50-1C31-4C31-89A2-C608FA93C6FD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Hangfire.Storage.SqlServer", "modules\common\LINGYUN.Abp.Hangfire.Storage.SqlServer\LINGYUN.Abp.Hangfire.Storage.SqlServer.csproj", "{12451B83-18DE-4E93-B98C-509477D53D5E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location", "modules\common\LINGYUN.Abp.Location\LINGYUN.Abp.Location.csproj", "{AAD0B6A7-847A-4537-A300-50E37F4B70CC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Baidu", "modules\common\LINGYUN.Abp.Location.Baidu\LINGYUN.Abp.Location.Baidu.csproj", "{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Tencent", "modules\common\LINGYUN.Abp.Location.Tencent\LINGYUN.Abp.Location.Tencent.csproj", "{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications", "modules\common\LINGYUN.Abp.Notifications\LINGYUN.Abp.Notifications.csproj", "{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.SignalR", "modules\common\LINGYUN.Abp.Notifications.SignalR\LINGYUN.Abp.Notifications.SignalR.csproj", "{B31CEE79-45F6-4BB9-9EEB-08843C324B37}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wechat", "wechat", "{22C61434-D29A-4376-AD56-F5089F3E617A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat", "modules\wechat\LINGYUN.Abp.WeChat\LINGYUN.Abp.WeChat.csproj", "{865D5508-63CD-4D44-9F5B-AE5CD4A43D08}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Settings", "modules\common\LINGYUN.Abp.Settings\LINGYUN.Abp.Settings.csproj", "{ECAA4B82-A240-4747-888C-FACD8634D389}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Sms.Aliyun", "modules\common\LINGYUN.Abp.Sms.Aliyun\LINGYUN.Abp.Sms.Aliyun.csproj", "{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "aliyun", "aliyun", "{7F18BCA5-35BD-41FB-8EFF-801B56E5E414}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "signalr", "signalr", "{E2E7A062-0ABB-41B4-8220-60228446D2C2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "location", "location", "{EFFAF456-50C1-42C9-836E-E95E7A38D52C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "realtime", "realtime", "{B91F26C5-B148-4094-B5F1-71E5F945DBED}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "features", "features", "{0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Features.Client", "modules\features\LINGYUN.Abp.Features.Client\LINGYUN.Abp.Features.Client.csproj", "{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.FeatureManagement.Client", "modules\features\LINGYUN.Abp.FeatureManagement.Client\LINGYUN.Abp.FeatureManagement.Client.csproj", "{99F8F254-A76E-43BB-8048-CC17EE1C8527}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tenants", "tenants", "{38E21687-5F19-42C9-9D11-4B1D2EF64EDB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy", "modules\tenants\LINGYUN.Abp.MultiTenancy\LINGYUN.Abp.MultiTenancy.csproj", "{F2DAA5EB-5508-4D99-AE64-A10C025712BC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy.DbFinder", "modules\tenants\LINGYUN.Abp.MultiTenancy.DbFinder\LINGYUN.Abp.MultiTenancy.DbFinder.csproj", "{BD0A1F2D-7667-45F8-872D-D41F36384163}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.MultiTenancy.RemoteService", "modules\tenants\LINGYUN.Abp.MultiTenancy.RemoteService\LINGYUN.Abp.MultiTenancy.RemoteService.csproj", "{21C0A260-BC14-4A8F-9299-A9EE58682B96}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Sms", "modules\common\LINGYUN.Abp.Notifications.Sms\LINGYUN.Abp.Notifications.Sms.csproj", "{15FC0C39-A604-491F-91F6-BD44167FC5F6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.MiniProgram", "modules\wechat\LINGYUN.Abp.WeChat.MiniProgram\LINGYUN.Abp.WeChat.MiniProgram.csproj", "{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.Official", "modules\wechat\LINGYUN.Abp.WeChat.Official\LINGYUN.Abp.WeChat.Official.csproj", "{16942653-B746-4917-B3BF-464C99F8832F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.WeChat.SettingManagement", "modules\wechat\LINGYUN.Abp.WeChat.SettingManagement\LINGYUN.Abp.WeChat.SettingManagement.csproj", "{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.WeChat.MiniProgram", "modules\wechat\LINGYUN.Abp.Notifications.WeChat.MiniProgram\LINGYUN.Abp.Notifications.WeChat.MiniProgram.csproj", "{D119C919-230B-4614-9A06-98586635DBFC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Core", "modules\common\LINGYUN.Abp.Core\LINGYUN.Abp.Core.csproj", "{A7A28D6C-6EDB-4615-8899-7DE1D435B750}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Aliyun", "modules\cloud-aliyun\LINGYUN.Abp.Aliyun\LINGYUN.Abp.Aliyun.csproj", "{17A8455F-D413-4664-AEFA-1ECAE9ED4B19}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{B86C21A4-73B7-471E-B73A-B4B905EC9435}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.TestsBase", "tests\LINGYUN.Abp.TestBase\LINGYUN.Abp.TestsBase.csproj", "{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.BlobStoring.Aliyun.Tests", "tests\LINGYUN.Abp.BlobStoring.Aliyun.Tests\LINGYUN.Abp.BlobStoring.Aliyun.Tests.csproj", "{2E35CB93-2E9C-4EE1-845F-72A40271648E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "console", "console", "{8D2AD50B-DD4B-48A2-88EC-0E8E8236D883}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Encryption.Console", "modules\console\LINGYUN.Abp.Encryption.Console\LINGYUN.Abp.Encryption.Console.csproj", "{8FB74B18-CA5C-4DC3-8DFA-600133A05712}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Aliyun.Tests", "tests\LINGYUN.Abp.Aliyun.Tests\LINGYUN.Abp.Aliyun.Tests.csproj", "{3DBF0975-B09D-49CA-9AF8-69175EDB9D52}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Sms.Aliyun.Tests", "tests\LINGYUN.Abp.Sms.Aliyun.Tests\LINGYUN.Abp.Sms.Aliyun.Tests.csproj", "{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Baidu.Tests", "tests\LINGYUN.Abp.Location.Baidu.Tests\LINGYUN.Abp.Location.Baidu.Tests.csproj", "{221725FF-6C01-4F41-9F29-AC04C7D52611}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Location.Tencent.Tests", "tests\LINGYUN.Abp.Location.Tencent.Tests\LINGYUN.Abp.Location.Tencent.Tests.csproj", "{1B494EA1-28CF-4A61-B0BE-70BBA425C316}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Client", "modules\common\LINGYUN.Abp.AspNetCore.Mvc.Client\LINGYUN.Abp.AspNetCore.Mvc.Client.csproj", "{7F767ACF-754A-4EBC-8936-3C1402B6EF82}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "localization", "localization", "{E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Xml", "modules\localization\LINGYUN.Abp.Localization.Xml\LINGYUN.Abp.Localization.Xml.csproj", "{8CC72F4E-F134-4A43-9037-5D4D1F29B68A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Xml.Tests", "tests\LINGYUN.Abp.Localization.Xml.Tests\LINGYUN.Abp.Localization.Xml.Tests.csproj", "{94FEA59E-3B6D-41A0-9E44-BA5D6477244F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dapr", "dapr", "{7FDFB22F-1BFF-4E05-9427-78B7A8461D50}"
ProjectSection(SolutionItems) = preProject
modules\dapr\README.md = modules\dapr\README.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors", "modules\dapr\LINGYUN.Abp.Dapr.Actors\LINGYUN.Abp.Dapr.Actors.csproj", "{C72E0407-06FE-4CAA-86E5-30FF216A7B82}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.AspNetCore", "modules\dapr\LINGYUN.Abp.Dapr.Actors.AspNetCore\LINGYUN.Abp.Dapr.Actors.AspNetCore.csproj", "{E74FF671-6E5E-430C-9211-ED910634DDBE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Client", "modules\dapr\LINGYUN.Abp.Dapr.Client\LINGYUN.Abp.Dapr.Client.csproj", "{879791A3-BD69-42E4-A3BC-9878EFAADDD1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "rules", "rules", "{C8891F1A-E6E5-448A-B527-EBFA44D20808}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules", "modules\rules\LINGYUN.Abp.Rules\LINGYUN.Abp.Rules.csproj", "{5133D83C-9B23-491C-8780-3F9BBDBD0351}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.NRules", "modules\rules\LINGYUN.Abp.Rules.NRules\LINGYUN.Abp.Rules.NRules.csproj", "{B8E5026B-188F-422F-A1EA-502C4A394585}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.RulesEngine", "modules\rules\LINGYUN.Abp.Rules.RulesEngine\LINGYUN.Abp.Rules.RulesEngine.csproj", "{E861BE01-689D-4637-A5DC-E78E234F83FB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.RulesEngine.Tests", "tests\LINGYUN.Abp.Rules.RulesEngine.Tests\LINGYUN.Abp.Rules.RulesEngine.Tests.csproj", "{CF253F0A-3A45-40EE-875F-0E57C8968C48}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Rules.NRules.Tests", "tests\LINGYUN.Abp.Rules.NRules.Tests\LINGYUN.Abp.Rules.NRules.Tests.csproj", "{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Client.Tests", "tests\LINGYUN.Abp.Dapr.Client.Tests\LINGYUN.Abp.Dapr.Client.Tests.csproj", "{9403FC1F-9677-489F-A03A-0B456153EE86}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Tests", "tests\LINGYUN.Abp.Dapr.Tests\LINGYUN.Abp.Dapr.Tests.csproj", "{26E87199-F0AD-4B30-B0E4-080B12E6F8FC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.AspNetCore.TestHost", "tests\LINGYUN.Abp.Dapr.AspNetCore.TestHost\LINGYUN.Abp.Dapr.AspNetCore.TestHost.csproj", "{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.Tests", "tests\LINGYUN.Abp.Dapr.Actors.Tests\LINGYUN.Abp.Dapr.Actors.Tests.csproj", "{CF30221B-CA7A-42CD-B91A-B7224AB2F38B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.HttpOverrides", "modules\common\LINGYUN.Abp.AspNetCore.HttpOverrides\LINGYUN.Abp.AspNetCore.HttpOverrides.csproj", "{191BB108-546E-4E70-978E-D6A8149C319C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IM.SignalR", "modules\common\LINGYUN.Abp.IM.SignalR\LINGYUN.Abp.IM.SignalR.csproj", "{DEB98AD7-9630-4F32-89E6-C1A118D1D18C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.WeChat", "modules\wechat\LINGYUN.Abp.Identity.WeChat\LINGYUN.Abp.Identity.WeChat.csproj", "{00F1D30E-A6F6-464F-A80B-D423CFAA79A3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5A87E9DD-3340-44DC-9564-4D8832A0228E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5A87E9DD-3340-44DC-9564-4D8832A0228E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5A87E9DD-3340-44DC-9564-4D8832A0228E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5A87E9DD-3340-44DC-9564-4D8832A0228E}.Release|Any CPU.Build.0 = Release|Any CPU
{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4}.Release|Any CPU.Build.0 = Release|Any CPU
{824CB367-383B-48B2-972D-33923438A9A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{824CB367-383B-48B2-972D-33923438A9A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{824CB367-383B-48B2-972D-33923438A9A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{824CB367-383B-48B2-972D-33923438A9A0}.Release|Any CPU.Build.0 = Release|Any CPU
{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2}.Release|Any CPU.Build.0 = Release|Any CPU
{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC}.Release|Any CPU.Build.0 = Release|Any CPU
{492710E6-EEF5-4390-A474-8FB2412ECBE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{492710E6-EEF5-4390-A474-8FB2412ECBE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{492710E6-EEF5-4390-A474-8FB2412ECBE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{492710E6-EEF5-4390-A474-8FB2412ECBE5}.Release|Any CPU.Build.0 = Release|Any CPU
{CCF1EB86-29BD-4531-BB27-C9111CC67570}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CCF1EB86-29BD-4531-BB27-C9111CC67570}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CCF1EB86-29BD-4531-BB27-C9111CC67570}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CCF1EB86-29BD-4531-BB27-C9111CC67570}.Release|Any CPU.Build.0 = Release|Any CPU
{4BD715F2-D117-45FB-B26C-F92D912144C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4BD715F2-D117-45FB-B26C-F92D912144C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4BD715F2-D117-45FB-B26C-F92D912144C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4BD715F2-D117-45FB-B26C-F92D912144C7}.Release|Any CPU.Build.0 = Release|Any CPU
{71C57C19-671D-4CD4-AA46-E8021E53BBE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{71C57C19-671D-4CD4-AA46-E8021E53BBE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{71C57C19-671D-4CD4-AA46-E8021E53BBE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{71C57C19-671D-4CD4-AA46-E8021E53BBE5}.Release|Any CPU.Build.0 = Release|Any CPU
{7947D559-4288-486B-8FB3-D957CC7EDD32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7947D559-4288-486B-8FB3-D957CC7EDD32}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7947D559-4288-486B-8FB3-D957CC7EDD32}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7947D559-4288-486B-8FB3-D957CC7EDD32}.Release|Any CPU.Build.0 = Release|Any CPU
{A4195E41-3919-4C3E-8768-7F277B583D16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A4195E41-3919-4C3E-8768-7F277B583D16}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A4195E41-3919-4C3E-8768-7F277B583D16}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A4195E41-3919-4C3E-8768-7F277B583D16}.Release|Any CPU.Build.0 = Release|Any CPU
{60083380-062C-4914-9E4E-5AE6637CCC3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{60083380-062C-4914-9E4E-5AE6637CCC3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{60083380-062C-4914-9E4E-5AE6637CCC3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{60083380-062C-4914-9E4E-5AE6637CCC3F}.Release|Any CPU.Build.0 = Release|Any CPU
{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845}.Release|Any CPU.Build.0 = Release|Any CPU
{34C1E979-65B9-46F5-B7BA-60F227EBA093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{34C1E979-65B9-46F5-B7BA-60F227EBA093}.Debug|Any CPU.Build.0 = Debug|Any CPU
{34C1E979-65B9-46F5-B7BA-60F227EBA093}.Release|Any CPU.ActiveCfg = Release|Any CPU
{34C1E979-65B9-46F5-B7BA-60F227EBA093}.Release|Any CPU.Build.0 = Release|Any CPU
{80A56461-0ACC-4069-B571-87DCA064B2EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{80A56461-0ACC-4069-B571-87DCA064B2EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{80A56461-0ACC-4069-B571-87DCA064B2EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{80A56461-0ACC-4069-B571-87DCA064B2EF}.Release|Any CPU.Build.0 = Release|Any CPU
{568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{568D2C50-1C31-4C31-89A2-C608FA93C6FD}.Release|Any CPU.Build.0 = Release|Any CPU
{12451B83-18DE-4E93-B98C-509477D53D5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12451B83-18DE-4E93-B98C-509477D53D5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{12451B83-18DE-4E93-B98C-509477D53D5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12451B83-18DE-4E93-B98C-509477D53D5E}.Release|Any CPU.Build.0 = Release|Any CPU
{AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AAD0B6A7-847A-4537-A300-50E37F4B70CC}.Release|Any CPU.Build.0 = Release|Any CPU
{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB}.Release|Any CPU.Build.0 = Release|Any CPU
{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2}.Release|Any CPU.Build.0 = Release|Any CPU
{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE}.Release|Any CPU.Build.0 = Release|Any CPU
{B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B31CEE79-45F6-4BB9-9EEB-08843C324B37}.Release|Any CPU.Build.0 = Release|Any CPU
{865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Debug|Any CPU.Build.0 = Debug|Any CPU
{865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Release|Any CPU.ActiveCfg = Release|Any CPU
{865D5508-63CD-4D44-9F5B-AE5CD4A43D08}.Release|Any CPU.Build.0 = Release|Any CPU
{ECAA4B82-A240-4747-888C-FACD8634D389}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ECAA4B82-A240-4747-888C-FACD8634D389}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ECAA4B82-A240-4747-888C-FACD8634D389}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ECAA4B82-A240-4747-888C-FACD8634D389}.Release|Any CPU.Build.0 = Release|Any CPU
{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0}.Release|Any CPU.Build.0 = Release|Any CPU
{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5}.Release|Any CPU.Build.0 = Release|Any CPU
{99F8F254-A76E-43BB-8048-CC17EE1C8527}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99F8F254-A76E-43BB-8048-CC17EE1C8527}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99F8F254-A76E-43BB-8048-CC17EE1C8527}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99F8F254-A76E-43BB-8048-CC17EE1C8527}.Release|Any CPU.Build.0 = Release|Any CPU
{F2DAA5EB-5508-4D99-AE64-A10C025712BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F2DAA5EB-5508-4D99-AE64-A10C025712BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F2DAA5EB-5508-4D99-AE64-A10C025712BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F2DAA5EB-5508-4D99-AE64-A10C025712BC}.Release|Any CPU.Build.0 = Release|Any CPU
{BD0A1F2D-7667-45F8-872D-D41F36384163}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BD0A1F2D-7667-45F8-872D-D41F36384163}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BD0A1F2D-7667-45F8-872D-D41F36384163}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BD0A1F2D-7667-45F8-872D-D41F36384163}.Release|Any CPU.Build.0 = Release|Any CPU
{21C0A260-BC14-4A8F-9299-A9EE58682B96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{21C0A260-BC14-4A8F-9299-A9EE58682B96}.Debug|Any CPU.Build.0 = Debug|Any CPU
{21C0A260-BC14-4A8F-9299-A9EE58682B96}.Release|Any CPU.ActiveCfg = Release|Any CPU
{21C0A260-BC14-4A8F-9299-A9EE58682B96}.Release|Any CPU.Build.0 = Release|Any CPU
{15FC0C39-A604-491F-91F6-BD44167FC5F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{15FC0C39-A604-491F-91F6-BD44167FC5F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{15FC0C39-A604-491F-91F6-BD44167FC5F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{15FC0C39-A604-491F-91F6-BD44167FC5F6}.Release|Any CPU.Build.0 = Release|Any CPU
{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8}.Release|Any CPU.Build.0 = Release|Any CPU
{16942653-B746-4917-B3BF-464C99F8832F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{16942653-B746-4917-B3BF-464C99F8832F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{16942653-B746-4917-B3BF-464C99F8832F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{16942653-B746-4917-B3BF-464C99F8832F}.Release|Any CPU.Build.0 = Release|Any CPU
{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6}.Release|Any CPU.Build.0 = Release|Any CPU
{D119C919-230B-4614-9A06-98586635DBFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D119C919-230B-4614-9A06-98586635DBFC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D119C919-230B-4614-9A06-98586635DBFC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D119C919-230B-4614-9A06-98586635DBFC}.Release|Any CPU.Build.0 = Release|Any CPU
{A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A7A28D6C-6EDB-4615-8899-7DE1D435B750}.Release|Any CPU.Build.0 = Release|Any CPU
{17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Debug|Any CPU.Build.0 = Debug|Any CPU
{17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Release|Any CPU.ActiveCfg = Release|Any CPU
{17A8455F-D413-4664-AEFA-1ECAE9ED4B19}.Release|Any CPU.Build.0 = Release|Any CPU
{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25}.Release|Any CPU.Build.0 = Release|Any CPU
{2E35CB93-2E9C-4EE1-845F-72A40271648E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2E35CB93-2E9C-4EE1-845F-72A40271648E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2E35CB93-2E9C-4EE1-845F-72A40271648E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2E35CB93-2E9C-4EE1-845F-72A40271648E}.Release|Any CPU.Build.0 = Release|Any CPU
{8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8FB74B18-CA5C-4DC3-8DFA-600133A05712}.Release|Any CPU.Build.0 = Release|Any CPU
{3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3DBF0975-B09D-49CA-9AF8-69175EDB9D52}.Release|Any CPU.Build.0 = Release|Any CPU
{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C}.Release|Any CPU.Build.0 = Release|Any CPU
{221725FF-6C01-4F41-9F29-AC04C7D52611}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{221725FF-6C01-4F41-9F29-AC04C7D52611}.Debug|Any CPU.Build.0 = Debug|Any CPU
{221725FF-6C01-4F41-9F29-AC04C7D52611}.Release|Any CPU.ActiveCfg = Release|Any CPU
{221725FF-6C01-4F41-9F29-AC04C7D52611}.Release|Any CPU.Build.0 = Release|Any CPU
{1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1B494EA1-28CF-4A61-B0BE-70BBA425C316}.Release|Any CPU.Build.0 = Release|Any CPU
{7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7F767ACF-754A-4EBC-8936-3C1402B6EF82}.Release|Any CPU.Build.0 = Release|Any CPU
{8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8CC72F4E-F134-4A43-9037-5D4D1F29B68A}.Release|Any CPU.Build.0 = Release|Any CPU
{94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{94FEA59E-3B6D-41A0-9E44-BA5D6477244F}.Release|Any CPU.Build.0 = Release|Any CPU
{C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C72E0407-06FE-4CAA-86E5-30FF216A7B82}.Release|Any CPU.Build.0 = Release|Any CPU
{E74FF671-6E5E-430C-9211-ED910634DDBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E74FF671-6E5E-430C-9211-ED910634DDBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E74FF671-6E5E-430C-9211-ED910634DDBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E74FF671-6E5E-430C-9211-ED910634DDBE}.Release|Any CPU.Build.0 = Release|Any CPU
{879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{879791A3-BD69-42E4-A3BC-9878EFAADDD1}.Release|Any CPU.Build.0 = Release|Any CPU
{5133D83C-9B23-491C-8780-3F9BBDBD0351}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5133D83C-9B23-491C-8780-3F9BBDBD0351}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5133D83C-9B23-491C-8780-3F9BBDBD0351}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5133D83C-9B23-491C-8780-3F9BBDBD0351}.Release|Any CPU.Build.0 = Release|Any CPU
{B8E5026B-188F-422F-A1EA-502C4A394585}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B8E5026B-188F-422F-A1EA-502C4A394585}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B8E5026B-188F-422F-A1EA-502C4A394585}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B8E5026B-188F-422F-A1EA-502C4A394585}.Release|Any CPU.Build.0 = Release|Any CPU
{E861BE01-689D-4637-A5DC-E78E234F83FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E861BE01-689D-4637-A5DC-E78E234F83FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E861BE01-689D-4637-A5DC-E78E234F83FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E861BE01-689D-4637-A5DC-E78E234F83FB}.Release|Any CPU.Build.0 = Release|Any CPU
{CF253F0A-3A45-40EE-875F-0E57C8968C48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF253F0A-3A45-40EE-875F-0E57C8968C48}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF253F0A-3A45-40EE-875F-0E57C8968C48}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF253F0A-3A45-40EE-875F-0E57C8968C48}.Release|Any CPU.Build.0 = Release|Any CPU
{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF}.Release|Any CPU.Build.0 = Release|Any CPU
{9403FC1F-9677-489F-A03A-0B456153EE86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9403FC1F-9677-489F-A03A-0B456153EE86}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9403FC1F-9677-489F-A03A-0B456153EE86}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9403FC1F-9677-489F-A03A-0B456153EE86}.Release|Any CPU.Build.0 = Release|Any CPU
{26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26E87199-F0AD-4B30-B0E4-080B12E6F8FC}.Release|Any CPU.Build.0 = Release|Any CPU
{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC}.Release|Any CPU.Build.0 = Release|Any CPU
{CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF30221B-CA7A-42CD-B91A-B7224AB2F38B}.Release|Any CPU.Build.0 = Release|Any CPU
{191BB108-546E-4E70-978E-D6A8149C319C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{191BB108-546E-4E70-978E-D6A8149C319C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{191BB108-546E-4E70-978E-D6A8149C319C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{191BB108-546E-4E70-978E-D6A8149C319C}.Release|Any CPU.Build.0 = Release|Any CPU
{DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DEB98AD7-9630-4F32-89E6-C1A118D1D18C}.Release|Any CPU.Build.0 = Release|Any CPU
{00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{00F1D30E-A6F6-464F-A80B-D423CFAA79A3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{086BE5BE-8594-4DA7-8819-935FEF76DABD} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{5A87E9DD-3340-44DC-9564-4D8832A0228E} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{E9BE3C65-2AB2-4CE8-8EB9-5C91B329ADB4} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{824CB367-383B-48B2-972D-33923438A9A0} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{E9AEC9D6-1FE7-4B00-BAC5-2C3D4B63CCA2} = {E2E7A062-0ABB-41B4-8220-60228446D2C2}
{304D06E6-41EC-4DCB-AEAE-DBEEC75F9ADC} = {E2E7A062-0ABB-41B4-8220-60228446D2C2}
{492710E6-EEF5-4390-A474-8FB2412ECBE5} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{CCF1EB86-29BD-4531-BB27-C9111CC67570} = {7F18BCA5-35BD-41FB-8EFF-801B56E5E414}
{4BD715F2-D117-45FB-B26C-F92D912144C7} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{71C57C19-671D-4CD4-AA46-E8021E53BBE5} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{7947D559-4288-486B-8FB3-D957CC7EDD32} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{A4195E41-3919-4C3E-8768-7F277B583D16} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{60083380-062C-4914-9E4E-5AE6637CCC3F} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{9C6E9EE2-5C83-4D96-A7B7-32798FEF2845} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{34C1E979-65B9-46F5-B7BA-60F227EBA093} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
{80A56461-0ACC-4069-B571-87DCA064B2EF} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
{568D2C50-1C31-4C31-89A2-C608FA93C6FD} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{12451B83-18DE-4E93-B98C-509477D53D5E} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{AAD0B6A7-847A-4537-A300-50E37F4B70CC} = {EFFAF456-50C1-42C9-836E-E95E7A38D52C}
{5B5C2372-2EAB-4559-BBCB-0C1C9A7158DB} = {EFFAF456-50C1-42C9-836E-E95E7A38D52C}
{2A0C5EF1-CB21-4656-8C32-B5673F6B82D2} = {EFFAF456-50C1-42C9-836E-E95E7A38D52C}
{3021DD8B-EA8F-4A88-BC2C-1BBEDC6255FE} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{B31CEE79-45F6-4BB9-9EEB-08843C324B37} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{22C61434-D29A-4376-AD56-F5089F3E617A} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{865D5508-63CD-4D44-9F5B-AE5CD4A43D08} = {22C61434-D29A-4376-AD56-F5089F3E617A}
{ECAA4B82-A240-4747-888C-FACD8634D389} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{8AF8FD6B-634F-41FA-B421-A4ACFD159FE0} = {7F18BCA5-35BD-41FB-8EFF-801B56E5E414}
{7F18BCA5-35BD-41FB-8EFF-801B56E5E414} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{E2E7A062-0ABB-41B4-8220-60228446D2C2} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{EFFAF456-50C1-42C9-836E-E95E7A38D52C} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{B91F26C5-B148-4094-B5F1-71E5F945DBED} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{3B455AA7-B165-4EA0-8870-DB8DA5C76FC5} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
{99F8F254-A76E-43BB-8048-CC17EE1C8527} = {0D2D7A10-CBA5-4798-BFC7-EB05D1E6B94C}
{38E21687-5F19-42C9-9D11-4B1D2EF64EDB} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{F2DAA5EB-5508-4D99-AE64-A10C025712BC} = {38E21687-5F19-42C9-9D11-4B1D2EF64EDB}
{BD0A1F2D-7667-45F8-872D-D41F36384163} = {38E21687-5F19-42C9-9D11-4B1D2EF64EDB}
{21C0A260-BC14-4A8F-9299-A9EE58682B96} = {38E21687-5F19-42C9-9D11-4B1D2EF64EDB}
{15FC0C39-A604-491F-91F6-BD44167FC5F6} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{9E59B1DB-E0D5-485D-BDA0-B6C31E1358A8} = {22C61434-D29A-4376-AD56-F5089F3E617A}
{16942653-B746-4917-B3BF-464C99F8832F} = {22C61434-D29A-4376-AD56-F5089F3E617A}
{D0717513-2CEE-4AD5-A1DA-A08EA5DE6DD6} = {22C61434-D29A-4376-AD56-F5089F3E617A}
{D119C919-230B-4614-9A06-98586635DBFC} = {22C61434-D29A-4376-AD56-F5089F3E617A}
{A7A28D6C-6EDB-4615-8899-7DE1D435B750} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{17A8455F-D413-4664-AEFA-1ECAE9ED4B19} = {7F18BCA5-35BD-41FB-8EFF-801B56E5E414}
{3BAA3D38-96C2-4C4C-B790-AE2997BFDE25} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{2E35CB93-2E9C-4EE1-845F-72A40271648E} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{8D2AD50B-DD4B-48A2-88EC-0E8E8236D883} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{8FB74B18-CA5C-4DC3-8DFA-600133A05712} = {8D2AD50B-DD4B-48A2-88EC-0E8E8236D883}
{3DBF0975-B09D-49CA-9AF8-69175EDB9D52} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{93DD5A05-B67A-4E11-BB56-F6B4E7F1489C} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{221725FF-6C01-4F41-9F29-AC04C7D52611} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{1B494EA1-28CF-4A61-B0BE-70BBA425C316} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{7F767ACF-754A-4EBC-8936-3C1402B6EF82} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{8CC72F4E-F134-4A43-9037-5D4D1F29B68A} = {E73A0F8B-2B4B-4CED-82A4-1EE5E0B89744}
{94FEA59E-3B6D-41A0-9E44-BA5D6477244F} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{7FDFB22F-1BFF-4E05-9427-78B7A8461D50} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{C72E0407-06FE-4CAA-86E5-30FF216A7B82} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
{E74FF671-6E5E-430C-9211-ED910634DDBE} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
{879791A3-BD69-42E4-A3BC-9878EFAADDD1} = {7FDFB22F-1BFF-4E05-9427-78B7A8461D50}
{C8891F1A-E6E5-448A-B527-EBFA44D20808} = {02EA4E78-5891-43BC-944F-3E52FEE032E4}
{5133D83C-9B23-491C-8780-3F9BBDBD0351} = {C8891F1A-E6E5-448A-B527-EBFA44D20808}
{B8E5026B-188F-422F-A1EA-502C4A394585} = {C8891F1A-E6E5-448A-B527-EBFA44D20808}
{E861BE01-689D-4637-A5DC-E78E234F83FB} = {C8891F1A-E6E5-448A-B527-EBFA44D20808}
{CF253F0A-3A45-40EE-875F-0E57C8968C48} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{EF03A0A7-A93E-4DEF-A33E-F5A82E995FBF} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{9403FC1F-9677-489F-A03A-0B456153EE86} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{26E87199-F0AD-4B30-B0E4-080B12E6F8FC} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{8968EDAF-9F5C-4786-AF2A-D3928B70C3EC} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{CF30221B-CA7A-42CD-B91A-B7224AB2F38B} = {B86C21A4-73B7-471E-B73A-B4B905EC9435}
{191BB108-546E-4E70-978E-D6A8149C319C} = {086BE5BE-8594-4DA7-8819-935FEF76DABD}
{DEB98AD7-9630-4F32-89E6-C1A118D1D18C} = {B91F26C5-B148-4094-B5F1-71E5F945DBED}
{00F1D30E-A6F6-464F-A80B-D423CFAA79A3} = {22C61434-D29A-4376-AD56-F5089F3E617A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {06C707C6-02C0-411A-AD3B-2D0E13787CB8}
EndGlobalSection
EndGlobal

323
aspnet-core/modules/common/LINGYUN.Abp.Features.LimitValidation.Redis/LINGYUN/Abp/Features/LimitValidation/Redis/RedisRequiresLimitFeatureChecker.cs

@ -1,189 +1,134 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Microsoft.Extensions.Options;
using StackExchange.Redis;
using System;
using System.IO;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.DependencyInjection;
using Volo.Abp.VirtualFileSystem;
namespace LINGYUN.Abp.Features.LimitValidation.Redis
{
[DisableConventionalRegistration]
public class RedisRequiresLimitFeatureChecker : IRequiresLimitFeatureChecker
{
private const string CHECK_LUA_SCRIPT = "/LINGYUN/Abp/Features/LimitValidation/Redis/Lua/check.lua";
private const string PROCESS_LUA_SCRIPT = "/LINGYUN/Abp/Features/LimitValidation/Redis/Lua/process.lua";
public ILogger<RedisRequiresLimitFeatureChecker> Logger { protected get; set; }
private volatile ConnectionMultiplexer _connection;
private volatile ConfigurationOptions _redisConfig;
private IDatabaseAsync _redis;
private IServer _server;
private readonly IVirtualFileProvider _virtualFileProvider;
private readonly IRedisLimitFeatureNamingNormalizer _featureNamingNormalizer;
private readonly AbpRedisRequiresLimitFeatureOptions _options;
private readonly string _instance;
private readonly SemaphoreSlim _connectionLock = new SemaphoreSlim(initialCount: 1, maxCount: 1);
public RedisRequiresLimitFeatureChecker(
IVirtualFileProvider virtualFileProvider,
IRedisLimitFeatureNamingNormalizer featureNamingNormalizer,
IOptions<AbpRedisRequiresLimitFeatureOptions> optionsAccessor)
{
if (optionsAccessor == null)
{
throw new ArgumentNullException(nameof(optionsAccessor));
}
_options = optionsAccessor.Value;
_virtualFileProvider = virtualFileProvider;
_featureNamingNormalizer = featureNamingNormalizer;
_instance = _options.InstanceName ?? string.Empty;
Logger = NullLogger<RedisRequiresLimitFeatureChecker>.Instance;
}
public virtual async Task<bool> CheckAsync(RequiresLimitFeatureContext context, CancellationToken cancellation = default)
{
await ConnectAsync(cancellation);
var result = await EvaluateAsync(CHECK_LUA_SCRIPT, context, cancellation);
return result + 1 <= context.Limit;
}
public virtual async Task ProcessAsync(RequiresLimitFeatureContext context, CancellationToken cancellation = default)
{
await ConnectAsync(cancellation);
await EvaluateAsync(PROCESS_LUA_SCRIPT, context, cancellation);
}
private async Task<int> EvaluateAsync(string luaScriptFilePath, RequiresLimitFeatureContext context, CancellationToken cancellation = default)
{
var luaScriptFile = _virtualFileProvider.GetFileInfo(luaScriptFilePath);
using var luaScriptFileStream = luaScriptFile.CreateReadStream();
var fileBytes = await luaScriptFileStream.GetAllBytesAsync(cancellation);
var luaSha1 = fileBytes.Sha1();
if (!await _server.ScriptExistsAsync(luaSha1))
{
var luaScript = Encoding.UTF8.GetString(fileBytes);
luaSha1 = await _server.ScriptLoadAsync(luaScript);
}
var keys = new RedisKey[1] { NormalizeKey(context) };
var values = new RedisValue[] { context.GetEffectTicks() };
var result = await _redis.ScriptEvaluateAsync(luaSha1, keys, values);
if (result.Type == ResultType.Error)
{
throw new AbpException($"脚本执行错误:{result}");
}
return (int)result;
}
private string NormalizeKey(RequiresLimitFeatureContext context)
{
return _featureNamingNormalizer.NormalizeFeatureName(_instance, context);
}
private void RegistenConnectionEvent(ConnectionMultiplexer connection)
{
if (connection != null)
{
connection.ConnectionFailed += OnConnectionFailed;
connection.ConnectionRestored += OnConnectionRestored;
connection.ErrorMessage += OnErrorMessage;
connection.ConfigurationChanged += OnConfigurationChanged;
connection.HashSlotMoved += OnHashSlotMoved;
connection.InternalError += OnInternalError;
connection.ConfigurationChangedBroadcast += OnConfigurationChangedBroadcast;
}
}
private async Task ConnectAsync(CancellationToken token = default(CancellationToken))
{
token.ThrowIfCancellationRequested();
if (_redis != null)
{
return;
}
await _connectionLock.WaitAsync(token);
try
{
if (_redis == null)
{
if (_options.ConfigurationOptions != null)
{
_redisConfig = _options.ConfigurationOptions;
}
else
{
_redisConfig = ConfigurationOptions.Parse(_options.Configuration);
}
_redisConfig.AllowAdmin = true;
_redisConfig.SetDefaultPorts();
_connection = await ConnectionMultiplexer.ConnectAsync(_redisConfig);
RegistenConnectionEvent(_connection);
_redis = _connection.GetDatabase();
_server = _connection.GetServer(_redisConfig.EndPoints[0]);
}
}
finally
{
_connectionLock.Release();
}
}
private void OnConfigurationChangedBroadcast(object sender, EndPointEventArgs e)
{
Logger.LogInformation("Redis server master/slave changes");
}
private void OnInternalError(object sender, InternalErrorEventArgs e)
{
Logger.LogError("Redis internal error, origin:{0}, connectionType:{1}",
e.Origin, e.ConnectionType);
Logger.LogError(e.Exception, "Redis internal error");
}
private void OnHashSlotMoved(object sender, HashSlotMovedEventArgs e)
{
Logger.LogInformation("Redis configuration changed");
}
private void OnConfigurationChanged(object sender, EndPointEventArgs e)
{
Logger.LogInformation("Redis configuration changed");
}
private void OnErrorMessage(object sender, RedisErrorEventArgs e)
{
Logger.LogWarning("Redis error, message:{0}", e.Message);
}
private void OnConnectionRestored(object sender, ConnectionFailedEventArgs e)
{
Logger.LogWarning("Redis connection restored, failureType:{0}, connectionType:{1}",
e.FailureType, e.ConnectionType);
}
private void OnConnectionFailed(object sender, ConnectionFailedEventArgs e)
{
Logger.LogError("Redis connection failed, failureType:{0}, connectionType:{1}",
e.FailureType, e.ConnectionType);
Logger.LogError(e.Exception, "Redis lock connection failed");
}
}
}
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Microsoft.Extensions.Options;
using StackExchange.Redis;
using System;
using System.IO;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.DependencyInjection;
using Volo.Abp.VirtualFileSystem;
namespace LINGYUN.Abp.Features.LimitValidation.Redis
{
[DisableConventionalRegistration]
public class RedisRequiresLimitFeatureChecker : IRequiresLimitFeatureChecker
{
private const string CHECK_LUA_SCRIPT = "/LINGYUN/Abp/Features/LimitValidation/Redis/Lua/check.lua";
private const string PROCESS_LUA_SCRIPT = "/LINGYUN/Abp/Features/LimitValidation/Redis/Lua/process.lua";
public ILogger<RedisRequiresLimitFeatureChecker> Logger { protected get; set; }
private volatile ConnectionMultiplexer _connection;
private volatile ConfigurationOptions _redisConfig;
private IDatabaseAsync _redis;
private IServer _server;
private readonly IVirtualFileProvider _virtualFileProvider;
private readonly IRedisLimitFeatureNamingNormalizer _featureNamingNormalizer;
private readonly AbpRedisRequiresLimitFeatureOptions _options;
private readonly string _instance;
private readonly SemaphoreSlim _connectionLock = new SemaphoreSlim(initialCount: 1, maxCount: 1);
public RedisRequiresLimitFeatureChecker(
IVirtualFileProvider virtualFileProvider,
IRedisLimitFeatureNamingNormalizer featureNamingNormalizer,
IOptions<AbpRedisRequiresLimitFeatureOptions> optionsAccessor)
{
if (optionsAccessor == null)
{
throw new ArgumentNullException(nameof(optionsAccessor));
}
_options = optionsAccessor.Value;
_virtualFileProvider = virtualFileProvider;
_featureNamingNormalizer = featureNamingNormalizer;
_instance = _options.InstanceName ?? string.Empty;
Logger = NullLogger<RedisRequiresLimitFeatureChecker>.Instance;
}
public virtual async Task<bool> CheckAsync(RequiresLimitFeatureContext context, CancellationToken cancellation = default)
{
await ConnectAsync(cancellation);
var result = await EvaluateAsync(CHECK_LUA_SCRIPT, context, cancellation);
return result + 1 <= context.Limit;
}
public virtual async Task ProcessAsync(RequiresLimitFeatureContext context, CancellationToken cancellation = default)
{
await ConnectAsync(cancellation);
await EvaluateAsync(PROCESS_LUA_SCRIPT, context, cancellation);
}
private async Task<int> EvaluateAsync(string luaScriptFilePath, RequiresLimitFeatureContext context, CancellationToken cancellation = default)
{
var luaScriptFile = _virtualFileProvider.GetFileInfo(luaScriptFilePath);
using var luaScriptFileStream = luaScriptFile.CreateReadStream();
var fileBytes = await luaScriptFileStream.GetAllBytesAsync(cancellation);
var luaSha1 = fileBytes.Sha1();
if (!await _server.ScriptExistsAsync(luaSha1))
{
var luaScript = Encoding.UTF8.GetString(fileBytes);
luaSha1 = await _server.ScriptLoadAsync(luaScript);
}
var keys = new RedisKey[1] { NormalizeKey(context) };
var values = new RedisValue[] { context.GetEffectTicks() };
var result = await _redis.ScriptEvaluateAsync(luaSha1, keys, values);
if (result.Type == ResultType.Error)
{
throw new AbpException($"Script evaluate error: {result}");
}
return (int)result;
}
private string NormalizeKey(RequiresLimitFeatureContext context)
{
return _featureNamingNormalizer.NormalizeFeatureName(_instance, context);
}
private async Task ConnectAsync(CancellationToken token = default(CancellationToken))
{
token.ThrowIfCancellationRequested();
if (_redis != null)
{
return;
}
await _connectionLock.WaitAsync(token);
try
{
if (_redis == null)
{
if (_options.ConfigurationOptions != null)
{
_redisConfig = _options.ConfigurationOptions;
}
else
{
_redisConfig = ConfigurationOptions.Parse(_options.Configuration);
}
_redisConfig.AllowAdmin = true;
_redisConfig.SetDefaultPorts();
_connection = await ConnectionMultiplexer.ConnectAsync(_redisConfig);
// fix: 无需关注redis连接事件
_redis = _connection.GetDatabase();
_server = _connection.GetServer(_redisConfig.EndPoints[0]);
}
}
finally
{
_connectionLock.Release();
}
}
}
}

130
aspnet-core/modules/common/LINGYUN.Abp.Features.LimitValidation/README.en.md

@ -1,43 +1,87 @@
English | [简体中文](./README.md)
# LINGYUN.Abp.Features.LimitValidation
Features limit validation component
Check the number of function calls defined to limit calls to the application by specific entities (tenants, users, clients, and so on)
Predefined policy
LimitPolicy.Minute Calculate the flow by the minutes
LimitPolicy.Hours Calculate the flow by the hours
LimitPolicy.Days Calculate the flow by days
LimitPolicy.Weeks Calculate the flow by weeks
LimitPolicy.Month Calculate the flow by the number of month
LimitPolicy.Years Calculate the flow by the number of years
## How to use
```csharp
[DependsOn(typeof(AbpFeaturesLimitValidationModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
If you want to limit the policy duration by self-processing, override the default policy for the corresponding policy and always return a clock scale in seconds
```csharp
[DependsOn(typeof(AbpFeaturesLimitValidationModule))]
public class YouProjectModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpFeaturesLimitValidationOptions>(options =>
{
options.MapEffectPolicy(LimitPolicy.Minute, (time) => return 60;); // Means that no matter how many minutes (time), only 60 seconds will be limited
});
}
}
```
English | [简体中文](./README.md)
# LINGYUN.Abp.Features.LimitValidation
Features limit validation component
Check the number of function calls defined to limit calls to the application by specific entities (tenants, users, clients, and so on)
Predefined policy
LimitPolicy.Minute Calculate the flow by the minutes
LimitPolicy.Hours Calculate the flow by the hours
LimitPolicy.Days Calculate the flow by days
LimitPolicy.Weeks Calculate the flow by weeks
LimitPolicy.Month Calculate the flow by the number of month
LimitPolicy.Years Calculate the flow by the number of years
## How to use
```csharp
[DependsOn(typeof(AbpFeaturesLimitValidationModule))]
public class YouProjectModule : AbpModule
{
// other
}
public static class FakeFeatureNames
{
public const string GroupName = "FakeFeature.Tests";
// Type Limit feature name
public const string ClassLimitFeature = GroupName + ".LimitFeature";
// Method limits the number of calls to the feature name
public const string MethodLimitFeature = GroupName + ".MethodLimitFeature";
// Limit the call interval feature name
public const string IntervalFeature = GroupName + ".IntervalFeature";
}
// Traffic limiting depends on user-defined features
public class FakeFeatureDefinitionProvider : FeatureDefinitionProvider
{
public override void Define(IFeatureDefinitionContext context)
{
var featureGroup = context.AddGroup(FakeFeatureNames.GroupName);
featureGroup.AddFeature(
name: FakeFeatureNames.ClassLimitFeature,
defaultValue: 1000.ToString(), // A maximum of 1000 calls can be made within a period
valueType: new ToggleStringValueType(new NumericValueValidator(1, 1000)));
featureGroup.AddFeature(
name: FakeFeatureNames.MethodLimitFeature,
defaultValue: 100.ToString(), // A maximum of 100 calls can be made within a period
valueType: new ToggleStringValueType(new NumericValueValidator(1, 1000)));
featureGroup.AddFeature(
name: FakeFeatureNames.IntervalFeature,
defaultValue: 1.ToString(), // Limit cycle
valueType: new ToggleStringValueType(new NumericValueValidator(1, 1000)));
}
}
// By default, the type is allowed to be called only 1000 times a day
[RequiresLimitFeature(FakeFeatureNames.ClassLimitFeature, FakeFeatureNames.IntervalFeature, LimitPolicy.Days)]
public class FakeLimitClass
{
// By default, the method is only allowed to be called 100 times a minute
[RequiresLimitFeature(FakeFeatureNames.MethodLimitFeature, FakeFeatureNames.IntervalFeature, LimitPolicy.Minute)]
public void LimitMethod()
{
// other...
}
}
```
If you want to limit the policy duration by self-processing, override the default policy for the corresponding policy and always return a clock scale in seconds
```csharp
[DependsOn(typeof(AbpFeaturesLimitValidationModule))]
public class YouProjectModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpFeaturesLimitValidationOptions>(options =>
{
options.MapEffectPolicy(LimitPolicy.Minute, (time) => return 60;); // Means that no matter how many minutes (time), only 60 seconds will be limited
});
}
}
```

130
aspnet-core/modules/common/LINGYUN.Abp.Features.LimitValidation/README.md

@ -1,43 +1,87 @@
[English](./README.en.md) | 简体中文
# LINGYUN.Abp.Features.LimitValidation
功能上限验证组件
检查定义的功能调用次数,来限制特定的实体(租户、用户、客户端等)对于应用程序的调用
预先设定了如下几个策略
LimitPolicy.Minute 按分钟计算流量
LimitPolicy.Hours 按小时计算流量
LimitPolicy.Days 按天数计算流量
LimitPolicy.Weeks 按周数计算流量
LimitPolicy.Month 按月数计算流量
LimitPolicy.Years 按年数计算流量
## 配置使用
```csharp
[DependsOn(typeof(AbpFeaturesLimitValidationModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
如果需要自行处理功能限制策略时长,请覆盖对应策略的默认策略,返回的时钟刻度单位始终是秒
```csharp
[DependsOn(typeof(AbpFeaturesLimitValidationModule))]
public class YouProjectModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpFeaturesLimitValidationOptions>(options =>
{
options.MapEffectPolicy(LimitPolicy.Minute, (time) => return 60;); // 表示不管多少分钟(time),都只会限制60秒
});
}
}
```
[English](./README.en.md) | 简体中文
# LINGYUN.Abp.Features.LimitValidation
功能上限验证组件
检查定义的功能调用次数,来限制特定的实体(租户、用户、客户端等)对于应用程序的调用
预先设定了如下几个策略
LimitPolicy.Minute 按分钟计算流量
LimitPolicy.Hours 按小时计算流量
LimitPolicy.Days 按天数计算流量
LimitPolicy.Weeks 按周数计算流量
LimitPolicy.Month 按月数计算流量
LimitPolicy.Years 按年数计算流量
## 配置使用
```csharp
[DependsOn(typeof(AbpFeaturesLimitValidationModule))]
public class YouProjectModule : AbpModule
{
// other
}
public static class FakeFeatureNames
{
public const string GroupName = "FakeFeature.Tests";
// 类型限制调用次数功能名称
public const string ClassLimitFeature = GroupName + ".LimitFeature";
// 方法限制调用次数功能名称
public const string MethodLimitFeature = GroupName + ".MethodLimitFeature";
// 限制调用间隔功能名称
public const string IntervalFeature = GroupName + ".IntervalFeature";
}
// 流量限制依赖自定义功能
public class FakeFeatureDefinitionProvider : FeatureDefinitionProvider
{
public override void Define(IFeatureDefinitionContext context)
{
var featureGroup = context.AddGroup(FakeFeatureNames.GroupName);
featureGroup.AddFeature(
name: FakeFeatureNames.ClassLimitFeature,
defaultValue: 1000.ToString(), // 周期内最大允许调用1000次
valueType: new ToggleStringValueType(new NumericValueValidator(1, 1000)));
featureGroup.AddFeature(
name: FakeFeatureNames.MethodLimitFeature,
defaultValue: 100.ToString(), // 周期内最大允许调用100次
valueType: new ToggleStringValueType(new NumericValueValidator(1, 1000)));
featureGroup.AddFeature(
name: FakeFeatureNames.IntervalFeature,
defaultValue: 1.ToString(), // 限制周期
valueType: new ToggleStringValueType(new NumericValueValidator(1, 1000)));
}
}
// 按照预设的参数,类型在一天钟内仅允许调用1000次
[RequiresLimitFeature(FakeFeatureNames.ClassLimitFeature, FakeFeatureNames.IntervalFeature, LimitPolicy.Days)]
public class FakeLimitClass
{
// 按照预设的参数,方法在一分钟内仅允许调用100次
[RequiresLimitFeature(FakeFeatureNames.MethodLimitFeature, FakeFeatureNames.IntervalFeature, LimitPolicy.Minute)]
public void LimitMethod()
{
// other...
}
}
```
如果需要自行处理功能限制策略时长,请覆盖对应策略的默认策略,返回的时钟刻度单位始终是秒
```csharp
[DependsOn(typeof(AbpFeaturesLimitValidationModule))]
public class YouProjectModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpFeaturesLimitValidationOptions>(options =>
{
options.MapEffectPolicy(LimitPolicy.Minute, (time) => return 60;); // 表示不管多少分钟(time),都只会限制60秒
});
}
}
```

128
aspnet-core/modules/localization/LINGYUN.Abp.Localization.Xml/README.md

@ -1,64 +1,64 @@
# LINGYUN.Abp.Localization.Xml
## 模块说明
本地化组件的Xml文档集成,内置PhysicalFileProvider与VirtualFileProvider实现
### 基础模块
### 高阶模块
### 权限定义
### 功能定义
### 配置定义
### 如何使用
```csharp
[DependsOn(
typeof(AbpLocalizationXmlModule))]
public class YouProjectModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<YouProjectModule>();
});
Configure<AbpLocalizationOptions>(options =>
{
options.Resources
.Add<YouResource>("en")
// 当前项目中的虚拟文件系统目录,详情见: https://docs.abp.io/en/abp/latest/Virtual-File-System
.AddVirtualXml("/LINGYUN/Abp/Localization/Xml/Resources")
// 一般配置在宿主项目中, 写入宿主项目中存储xml文件的绝对路径(受PhysicalFileProvider的限制)
// 详情见: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.fileproviders.physicalfileprovider?view=dotnet-plat-ext-5.0
.AddPhysicalXml(Path.Combine(Directory.GetCurrentDirectory(), "Resources"));
});
}
}
```
Xml文件格式如下
序列化: [XmlLocalizationFile](./LINGYUN/Abp/Localization/Xml/XmlLocalizationFile.cs) 类型实现
```xml
<?xml version="1.0" encoding="utf-8"?>
<localization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="lingyun.abp">
<culture name="en" />
<texts>
<text key="Hello China" value="Hello China!" />
<text key="Welcome" value="Welcome!" />
</texts>
</localization>
```
### 更新日志
# LINGYUN.Abp.Localization.Xml
## 模块说明
本地化组件的Xml文档集成,内置PhysicalFileProvider与VirtualFileProvider实现
### 基础模块
### 高阶模块
### 权限定义
### 功能定义
### 配置定义
### 如何使用
```csharp
[DependsOn(
typeof(AbpLocalizationXmlModule))]
public class YouProjectModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<YouProjectModule>();
});
Configure<AbpLocalizationOptions>(options =>
{
options.Resources
.Add<YouResource>("en")
// 当前项目中的虚拟文件系统目录,详情见: https://docs.abp.io/en/abp/latest/Virtual-File-System
.AddVirtualXml("/LINGYUN/Abp/Localization/Xml/Resources")
// 一般配置在宿主项目中, 写入宿主项目中存储xml文件的绝对路径(受PhysicalFileProvider的限制)
// 详情见: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.fileproviders.physicalfileprovider?view=dotnet-plat-ext-5.0
.AddPhysicalXml(Path.Combine(Directory.GetCurrentDirectory(), "Resources"));
});
}
}
```
Xml文件格式如下
序列化: [XmlLocalizationFile](./LINGYUN/Abp/Localization/Xml/XmlLocalizationFile.cs) 类型实现
```xml
<?xml version="1.0" encoding="utf-8"?>
<localization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<culture name="en" />
<texts>
<text key="Hello China" value="Hello China!" />
<text key="Welcome" value="Welcome!" />
</texts>
</localization>
```
### 更新日志

Loading…
Cancel
Save