Преглед изворни кода

Merge branch 'Release2.3' of http://36.129.163.148:10080/gaoshipeng/OTS2_0 into Release2.3

CXS пре 3 година
родитељ
комит
27a6caf479
26 измењених фајлова са 1300 додато и 186 уклоњено
  1. 104 111
      OTS.sln
  2. 77 0
      OTSCPP/OTSClassifyEngine/OTSClassifyEngine.vcxproj
  3. 69 0
      OTSCPP/OTSClrInterface/OTSClrInterface.vcxproj
  4. 108 0
      OTSCPP/OTSControl/OTSControl.vcxproj
  5. 106 0
      OTSCPP/OTSData/OTSData.vcxproj
  6. 122 0
      OTSCPP/OTSImagePro/OTSImagePro.vcxproj
  7. 106 0
      OTSCPP/OTSLog/OTSLog.vcxproj
  8. 72 0
      OTSCPP/OTSRptCalculate/OTSRptCalculate.vcxproj
  9. 101 1
      OTSCPP/OTSSQLiteDll/OTSSQLiteDll.vcxproj
  10. 90 0
      OTSCPP/SQLite3Dll/SQLite3Dll.vcxproj
  11. 55 1
      OTSExtremum/OTSExtremum.csproj
  12. 4 0
      OTSExtremum/packages.config
  13. 17 0
      OTSIncAMeasureApp/OTSIncAMeasureApp.csproj
  14. 23 3
      OTSIncAReportApp/1-UI/Control_ECharts/EChart_ParticlesComposition.cs
  15. 3 2
      OTSIncAReportApp/1-UI/Control_ECharts/EChart_Trianglediagram.Designer.cs
  16. 1 0
      OTSIncAReportApp/1-UI/Control_ECharts/EChart_Trianglediagram.cs
  17. 48 9
      OTSIncAReportApp/1-UI/OTSTemplateDesigner/Export_ReportTemplate.cs
  18. 37 37
      OTSIncAReportApp/1-UI/OTSTemplateDesigner/OTSReport_TemplateDesignerRM.Designer.cs
  19. 26 0
      OTSIncAReportApp/OTSIncAReportApp.csproj
  20. 12 22
      OTSIncAReportTemplate/OTSIncAReportTemplate.cs
  21. 26 0
      OTSIncAReportTemplate/OTSIncAReportTemplate.csproj
  22. 20 0
      OTSPartA_STDEditor/OTSPartA_STDEditor.csproj
  23. 20 0
      OTSRegister/OTSRegister.csproj
  24. 17 0
      OTSSysMgrApp/OTSSysMgrApp.csproj
  25. 16 0
      OTSSysMgrTools/OTSSysMgrTools.csproj
  26. 20 0
      RegistrationAuthorization/RegistrationAuthorization.csproj

+ 104 - 111
OTS.sln

@@ -78,12 +78,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OTSExtremum", "OTSExtremum\
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		CleannessRelease|Any CPU = CleannessRelease|Any CPU
+		CleannessRelease|x64 = CleannessRelease|x64
+		CleannessRelease|x86 = CleannessRelease|x86
 		Debug|Any CPU = Debug|Any CPU
 		Debug|x64 = Debug|x64
 		Debug|x86 = Debug|x86
-		projectconfig|Any CPU = projectconfig|Any CPU
-		projectconfig|x64 = projectconfig|x64
-		projectconfig|x86 = projectconfig|x86
 		Release_oxford50|Any CPU = Release_oxford50|Any CPU
 		Release_oxford50|x64 = Release_oxford50|x64
 		Release_oxford50|x86 = Release_oxford50|x86
@@ -92,18 +92,18 @@ Global
 		Release|x86 = Release|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Any CPU
+		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.CleannessRelease|Any CPU.Build.0 = CleannessRelease|Any CPU
+		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Any CPU
+		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.CleannessRelease|x86.Build.0 = CleannessRelease|Any CPU
 		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.Debug|Any CPU.ActiveCfg = Debug|x64
 		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.Debug|Any CPU.Build.0 = Debug|x64
 		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.Debug|x64.ActiveCfg = Debug|x64
 		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.Debug|x64.Build.0 = Debug|x64
 		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.Debug|x86.Build.0 = Debug|Any CPU
-		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.projectconfig|Any CPU.ActiveCfg = Release|Any CPU
-		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.projectconfig|Any CPU.Build.0 = Release|Any CPU
-		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.projectconfig|x64.ActiveCfg = Release|x64
-		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.projectconfig|x64.Build.0 = Release|x64
-		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.projectconfig|x86.ActiveCfg = Release|Any CPU
-		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.projectconfig|x86.Build.0 = Release|Any CPU
 		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|Any CPU
 		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.Release_oxford50|Any CPU.Build.0 = Release_oxford50|Any CPU
 		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
@@ -116,18 +116,18 @@ Global
 		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.Release|x64.Build.0 = Release|Any CPU
 		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.Release|x86.ActiveCfg = Release|Any CPU
 		{3FBF0B16-5E6C-4AA1-995B-471C47C5367D}.Release|x86.Build.0 = Release|Any CPU
+		{3B7695AA-8231-45AC-B493-84390A945D02}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Any CPU
+		{3B7695AA-8231-45AC-B493-84390A945D02}.CleannessRelease|Any CPU.Build.0 = CleannessRelease|Any CPU
+		{3B7695AA-8231-45AC-B493-84390A945D02}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{3B7695AA-8231-45AC-B493-84390A945D02}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{3B7695AA-8231-45AC-B493-84390A945D02}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Any CPU
+		{3B7695AA-8231-45AC-B493-84390A945D02}.CleannessRelease|x86.Build.0 = CleannessRelease|Any CPU
 		{3B7695AA-8231-45AC-B493-84390A945D02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{3B7695AA-8231-45AC-B493-84390A945D02}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{3B7695AA-8231-45AC-B493-84390A945D02}.Debug|x64.ActiveCfg = Debug|x64
 		{3B7695AA-8231-45AC-B493-84390A945D02}.Debug|x64.Build.0 = Debug|x64
 		{3B7695AA-8231-45AC-B493-84390A945D02}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{3B7695AA-8231-45AC-B493-84390A945D02}.Debug|x86.Build.0 = Debug|Any CPU
-		{3B7695AA-8231-45AC-B493-84390A945D02}.projectconfig|Any CPU.ActiveCfg = Release|Any CPU
-		{3B7695AA-8231-45AC-B493-84390A945D02}.projectconfig|Any CPU.Build.0 = Release|Any CPU
-		{3B7695AA-8231-45AC-B493-84390A945D02}.projectconfig|x64.ActiveCfg = Release|x64
-		{3B7695AA-8231-45AC-B493-84390A945D02}.projectconfig|x64.Build.0 = Release|x64
-		{3B7695AA-8231-45AC-B493-84390A945D02}.projectconfig|x86.ActiveCfg = Release|Any CPU
-		{3B7695AA-8231-45AC-B493-84390A945D02}.projectconfig|x86.Build.0 = Release|Any CPU
 		{3B7695AA-8231-45AC-B493-84390A945D02}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|Any CPU
 		{3B7695AA-8231-45AC-B493-84390A945D02}.Release_oxford50|Any CPU.Build.0 = Release_oxford50|Any CPU
 		{3B7695AA-8231-45AC-B493-84390A945D02}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
@@ -139,18 +139,18 @@ Global
 		{3B7695AA-8231-45AC-B493-84390A945D02}.Release|x64.ActiveCfg = Release|Any CPU
 		{3B7695AA-8231-45AC-B493-84390A945D02}.Release|x64.Build.0 = Release|Any CPU
 		{3B7695AA-8231-45AC-B493-84390A945D02}.Release|x86.ActiveCfg = Release|Any CPU
+		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Any CPU
+		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.CleannessRelease|Any CPU.Build.0 = CleannessRelease|Any CPU
+		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.CleannessRelease|x86.ActiveCfg = CleannessRelease|x86
+		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.CleannessRelease|x86.Build.0 = CleannessRelease|x86
 		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.Debug|x64.ActiveCfg = Debug|x64
 		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.Debug|x64.Build.0 = Debug|x64
 		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.Debug|x86.ActiveCfg = Debug|x86
 		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.Debug|x86.Build.0 = Debug|x86
-		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.projectconfig|Any CPU.ActiveCfg = Release_oxford50|Any CPU
-		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.projectconfig|Any CPU.Build.0 = Release_oxford50|Any CPU
-		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.projectconfig|x64.ActiveCfg = Release|x64
-		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.projectconfig|x64.Build.0 = Release|x64
-		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.projectconfig|x86.ActiveCfg = Release|x86
-		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.projectconfig|x86.Build.0 = Release|x86
 		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|x64
 		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.Release_oxford50|Any CPU.Build.0 = Release_oxford50|x64
 		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
@@ -163,13 +163,15 @@ Global
 		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.Release|x64.Build.0 = Release|x64
 		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.Release|x86.ActiveCfg = Release|x86
 		{A3059BB1-9315-49DB-9680-FE16FAB1499D}.Release|x86.Build.0 = Release|x86
+		{BA8F9918-E809-4957-99D3-B2CD823BB236}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Any CPU
+		{BA8F9918-E809-4957-99D3-B2CD823BB236}.CleannessRelease|Any CPU.Build.0 = CleannessRelease|Any CPU
+		{BA8F9918-E809-4957-99D3-B2CD823BB236}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{BA8F9918-E809-4957-99D3-B2CD823BB236}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{BA8F9918-E809-4957-99D3-B2CD823BB236}.CleannessRelease|x86.ActiveCfg = CleannessRelease|x86
+		{BA8F9918-E809-4957-99D3-B2CD823BB236}.CleannessRelease|x86.Build.0 = CleannessRelease|x86
 		{BA8F9918-E809-4957-99D3-B2CD823BB236}.Debug|Any CPU.ActiveCfg = Debug|x64
 		{BA8F9918-E809-4957-99D3-B2CD823BB236}.Debug|x64.ActiveCfg = Debug|x64
 		{BA8F9918-E809-4957-99D3-B2CD823BB236}.Debug|x86.ActiveCfg = Debug|x64
-		{BA8F9918-E809-4957-99D3-B2CD823BB236}.projectconfig|Any CPU.ActiveCfg = Debug|x64
-		{BA8F9918-E809-4957-99D3-B2CD823BB236}.projectconfig|x64.ActiveCfg = Release|x64
-		{BA8F9918-E809-4957-99D3-B2CD823BB236}.projectconfig|x64.Build.0 = Release|x64
-		{BA8F9918-E809-4957-99D3-B2CD823BB236}.projectconfig|x86.ActiveCfg = Debug|x64
 		{BA8F9918-E809-4957-99D3-B2CD823BB236}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|x64
 		{BA8F9918-E809-4957-99D3-B2CD823BB236}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x86
 		{BA8F9918-E809-4957-99D3-B2CD823BB236}.Release_oxford50|x64.Build.0 = Release_oxford50|x86
@@ -178,17 +180,16 @@ Global
 		{BA8F9918-E809-4957-99D3-B2CD823BB236}.Release|x64.ActiveCfg = Release|x64
 		{BA8F9918-E809-4957-99D3-B2CD823BB236}.Release|x64.Build.0 = Release|x64
 		{BA8F9918-E809-4957-99D3-B2CD823BB236}.Release|x86.ActiveCfg = Release|x64
+		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Win32
+		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Win32
+		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.CleannessRelease|x86.Build.0 = CleannessRelease|Win32
 		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.Debug|x64.ActiveCfg = Debug|x64
 		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.Debug|x64.Build.0 = Debug|x64
 		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.Debug|x86.ActiveCfg = Debug|Win32
 		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.Debug|x86.Build.0 = Debug|Win32
-		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.projectconfig|Any CPU.ActiveCfg = Release|x64
-		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.projectconfig|Any CPU.Build.0 = Release|x64
-		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.projectconfig|x64.ActiveCfg = Release|x64
-		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.projectconfig|x64.Build.0 = Release|x64
-		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.projectconfig|x86.ActiveCfg = Release|Win32
-		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.projectconfig|x86.Build.0 = Release|Win32
 		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|Win32
 		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
 		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.Release_oxford50|x64.Build.0 = Release_oxford50|x64
@@ -199,17 +200,16 @@ Global
 		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.Release|x64.Build.0 = Release|x64
 		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.Release|x86.ActiveCfg = Release|Win32
 		{CEA06DD1-5CD7-4B7D-A807-785718C3A854}.Release|x86.Build.0 = Release|Win32
+		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Win32
+		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Win32
+		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.CleannessRelease|x86.Build.0 = CleannessRelease|Win32
 		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.Debug|x64.ActiveCfg = Debug|x64
 		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.Debug|x64.Build.0 = Debug|x64
 		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.Debug|x86.ActiveCfg = Debug|Win32
 		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.Debug|x86.Build.0 = Debug|Win32
-		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.projectconfig|Any CPU.ActiveCfg = Release|x64
-		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.projectconfig|Any CPU.Build.0 = Release|x64
-		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.projectconfig|x64.ActiveCfg = Release|x64
-		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.projectconfig|x64.Build.0 = Release|x64
-		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.projectconfig|x86.ActiveCfg = Release|Win32
-		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.projectconfig|x86.Build.0 = Release|Win32
 		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|Win32
 		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
 		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.Release_oxford50|x64.Build.0 = Release_oxford50|x64
@@ -220,17 +220,16 @@ Global
 		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.Release|x64.Build.0 = Release|x64
 		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.Release|x86.ActiveCfg = Release|Win32
 		{3737BD0B-0DBB-4C11-AAD1-6E2B9822270B}.Release|x86.Build.0 = Release|Win32
+		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Win32
+		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Win32
+		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.CleannessRelease|x86.Build.0 = CleannessRelease|Win32
 		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.Debug|x64.ActiveCfg = Debug|x64
 		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.Debug|x64.Build.0 = Debug|x64
 		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.Debug|x86.ActiveCfg = Debug|Win32
 		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.Debug|x86.Build.0 = Debug|Win32
-		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.projectconfig|Any CPU.ActiveCfg = Release|x64
-		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.projectconfig|Any CPU.Build.0 = Release|x64
-		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.projectconfig|x64.ActiveCfg = Release|x64
-		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.projectconfig|x64.Build.0 = Release|x64
-		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.projectconfig|x86.ActiveCfg = Release|Win32
-		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.projectconfig|x86.Build.0 = Release|Win32
 		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|Win32
 		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
 		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.Release_oxford50|x64.Build.0 = Release_oxford50|x64
@@ -241,17 +240,16 @@ Global
 		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.Release|x64.Build.0 = Release|x64
 		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.Release|x86.ActiveCfg = Release|Win32
 		{201A7F92-48AE-4BCC-B75E-988E3AAC117C}.Release|x86.Build.0 = Release|Win32
+		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Win32
+		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Win32
+		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.CleannessRelease|x86.Build.0 = CleannessRelease|Win32
 		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.Debug|x64.ActiveCfg = Debug|x64
 		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.Debug|x64.Build.0 = Debug|x64
 		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.Debug|x86.ActiveCfg = Debug|Win32
 		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.Debug|x86.Build.0 = Debug|Win32
-		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.projectconfig|Any CPU.ActiveCfg = Release|x64
-		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.projectconfig|Any CPU.Build.0 = Release|x64
-		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.projectconfig|x64.ActiveCfg = Release|x64
-		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.projectconfig|x64.Build.0 = Release|x64
-		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.projectconfig|x86.ActiveCfg = Release|Win32
-		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.projectconfig|x86.Build.0 = Release|Win32
 		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|Win32
 		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
 		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.Release_oxford50|x64.Build.0 = Release_oxford50|x64
@@ -262,17 +260,16 @@ Global
 		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.Release|x64.Build.0 = Release|x64
 		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.Release|x86.ActiveCfg = Release|Win32
 		{CD59EA38-9ADF-40D3-B1C0-7A66A9D2F77B}.Release|x86.Build.0 = Release|Win32
+		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Win32
+		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Win32
+		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.CleannessRelease|x86.Build.0 = CleannessRelease|Win32
 		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.Debug|x64.ActiveCfg = Debug|x64
 		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.Debug|x64.Build.0 = Debug|x64
 		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.Debug|x86.ActiveCfg = Debug|Win32
 		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.Debug|x86.Build.0 = Debug|Win32
-		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.projectconfig|Any CPU.ActiveCfg = Release|x64
-		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.projectconfig|Any CPU.Build.0 = Release|x64
-		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.projectconfig|x64.ActiveCfg = Release|x64
-		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.projectconfig|x64.Build.0 = Release|x64
-		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.projectconfig|x86.ActiveCfg = Release|Win32
-		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.projectconfig|x86.Build.0 = Release|Win32
 		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|Win32
 		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
 		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.Release_oxford50|x64.Build.0 = Release_oxford50|x64
@@ -283,17 +280,16 @@ Global
 		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.Release|x64.Build.0 = Release|x64
 		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.Release|x86.ActiveCfg = Release|Win32
 		{DAA6170E-5984-46DC-A8BA-DE696299DCA6}.Release|x86.Build.0 = Release|Win32
+		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Win32
+		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Win32
+		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.CleannessRelease|x86.Build.0 = CleannessRelease|Win32
 		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.Debug|x64.ActiveCfg = Debug|x64
 		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.Debug|x64.Build.0 = Debug|x64
 		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.Debug|x86.ActiveCfg = Debug|Win32
 		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.Debug|x86.Build.0 = Debug|Win32
-		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.projectconfig|Any CPU.ActiveCfg = Release_oxford50|Win32
-		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.projectconfig|Any CPU.Build.0 = Release_oxford50|Win32
-		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.projectconfig|x64.ActiveCfg = Release|x64
-		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.projectconfig|x64.Build.0 = Release|x64
-		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.projectconfig|x86.ActiveCfg = Release_oxford50|Win32
-		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.projectconfig|x86.Build.0 = Release_oxford50|Win32
 		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.Release_oxford50|Any CPU.ActiveCfg = Debug|x64
 		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.Release_oxford50|Any CPU.Build.0 = Debug|x64
 		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
@@ -305,17 +301,16 @@ Global
 		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.Release|x64.Build.0 = Release|x64
 		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.Release|x86.ActiveCfg = Release|Win32
 		{11A59D12-007A-40D9-9D74-D8F079BD9F86}.Release|x86.Build.0 = Release|Win32
+		{490A8592-7B13-4536-B475-028E73007FAE}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Win32
+		{490A8592-7B13-4536-B475-028E73007FAE}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{490A8592-7B13-4536-B475-028E73007FAE}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{490A8592-7B13-4536-B475-028E73007FAE}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Win32
+		{490A8592-7B13-4536-B475-028E73007FAE}.CleannessRelease|x86.Build.0 = CleannessRelease|Win32
 		{490A8592-7B13-4536-B475-028E73007FAE}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{490A8592-7B13-4536-B475-028E73007FAE}.Debug|x64.ActiveCfg = Debug|x64
 		{490A8592-7B13-4536-B475-028E73007FAE}.Debug|x64.Build.0 = Debug|x64
 		{490A8592-7B13-4536-B475-028E73007FAE}.Debug|x86.ActiveCfg = Debug|Win32
 		{490A8592-7B13-4536-B475-028E73007FAE}.Debug|x86.Build.0 = Debug|Win32
-		{490A8592-7B13-4536-B475-028E73007FAE}.projectconfig|Any CPU.ActiveCfg = Release|x64
-		{490A8592-7B13-4536-B475-028E73007FAE}.projectconfig|Any CPU.Build.0 = Release|x64
-		{490A8592-7B13-4536-B475-028E73007FAE}.projectconfig|x64.ActiveCfg = Release|x64
-		{490A8592-7B13-4536-B475-028E73007FAE}.projectconfig|x64.Build.0 = Release|x64
-		{490A8592-7B13-4536-B475-028E73007FAE}.projectconfig|x86.ActiveCfg = Release|Win32
-		{490A8592-7B13-4536-B475-028E73007FAE}.projectconfig|x86.Build.0 = Release|Win32
 		{490A8592-7B13-4536-B475-028E73007FAE}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|Win32
 		{490A8592-7B13-4536-B475-028E73007FAE}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
 		{490A8592-7B13-4536-B475-028E73007FAE}.Release_oxford50|x64.Build.0 = Release_oxford50|x64
@@ -326,17 +321,16 @@ Global
 		{490A8592-7B13-4536-B475-028E73007FAE}.Release|x64.Build.0 = Release|x64
 		{490A8592-7B13-4536-B475-028E73007FAE}.Release|x86.ActiveCfg = Release|Win32
 		{490A8592-7B13-4536-B475-028E73007FAE}.Release|x86.Build.0 = Release|Win32
+		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Win32
+		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Win32
+		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.CleannessRelease|x86.Build.0 = CleannessRelease|Win32
 		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.Debug|x64.ActiveCfg = Debug|x64
 		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.Debug|x64.Build.0 = Debug|x64
 		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.Debug|x86.ActiveCfg = Debug|Win32
 		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.Debug|x86.Build.0 = Debug|Win32
-		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.projectconfig|Any CPU.ActiveCfg = Release|x64
-		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.projectconfig|Any CPU.Build.0 = Release|x64
-		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.projectconfig|x64.ActiveCfg = Release|x64
-		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.projectconfig|x64.Build.0 = Release|x64
-		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.projectconfig|x86.ActiveCfg = Release|Win32
-		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.projectconfig|x86.Build.0 = Release|Win32
 		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|Win32
 		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
 		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.Release_oxford50|x64.Build.0 = Release_oxford50|x64
@@ -347,17 +341,16 @@ Global
 		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.Release|x64.Build.0 = Release|x64
 		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.Release|x86.ActiveCfg = Release|Win32
 		{EC722DFC-BD72-4673-B9E2-226C70B015A8}.Release|x86.Build.0 = Release|Win32
+		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Win32
+		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Win32
+		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.CleannessRelease|x86.Build.0 = CleannessRelease|Win32
 		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.Debug|x64.ActiveCfg = Debug|x64
 		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.Debug|x64.Build.0 = Debug|x64
 		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.Debug|x86.ActiveCfg = Debug|Win32
 		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.Debug|x86.Build.0 = Debug|Win32
-		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.projectconfig|Any CPU.ActiveCfg = Release|x64
-		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.projectconfig|Any CPU.Build.0 = Release|x64
-		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.projectconfig|x64.ActiveCfg = Release|x64
-		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.projectconfig|x64.Build.0 = Release|x64
-		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.projectconfig|x86.ActiveCfg = Release|Win32
-		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.projectconfig|x86.Build.0 = Release|Win32
 		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|Win32
 		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
 		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.Release_oxford50|x64.Build.0 = Release_oxford50|x64
@@ -368,18 +361,18 @@ Global
 		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.Release|x64.Build.0 = Release|x64
 		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.Release|x86.ActiveCfg = Release|Win32
 		{0FF40344-34D5-49D0-9467-1F43C81A0D31}.Release|x86.Build.0 = Release|Win32
+		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Any CPU
+		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.CleannessRelease|Any CPU.Build.0 = CleannessRelease|Any CPU
+		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Any CPU
+		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.CleannessRelease|x86.Build.0 = CleannessRelease|Any CPU
 		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.Debug|x64.ActiveCfg = Debug|x64
 		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.Debug|x64.Build.0 = Debug|x64
 		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.Debug|x86.Build.0 = Debug|Any CPU
-		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.projectconfig|Any CPU.ActiveCfg = Release|Any CPU
-		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.projectconfig|Any CPU.Build.0 = Release|Any CPU
-		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.projectconfig|x64.ActiveCfg = Release|x64
-		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.projectconfig|x64.Build.0 = Release|x64
-		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.projectconfig|x86.ActiveCfg = Release|Any CPU
-		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.projectconfig|x86.Build.0 = Release|Any CPU
 		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|Any CPU
 		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.Release_oxford50|Any CPU.Build.0 = Release_oxford50|Any CPU
 		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
@@ -392,18 +385,18 @@ Global
 		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.Release|x64.Build.0 = Release|x64
 		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.Release|x86.ActiveCfg = Release|Any CPU
 		{52B47C78-BF08-4670-AB88-FDC972B4D7B4}.Release|x86.Build.0 = Release|Any CPU
+		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Any CPU
+		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.CleannessRelease|Any CPU.Build.0 = CleannessRelease|Any CPU
+		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Any CPU
+		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.CleannessRelease|x86.Build.0 = CleannessRelease|Any CPU
 		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.Debug|x64.Build.0 = Debug|Any CPU
 		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.Debug|x86.Build.0 = Debug|Any CPU
-		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.projectconfig|Any CPU.ActiveCfg = Release|Any CPU
-		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.projectconfig|Any CPU.Build.0 = Release|Any CPU
-		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.projectconfig|x64.ActiveCfg = Release|Any CPU
-		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.projectconfig|x64.Build.0 = Release|Any CPU
-		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.projectconfig|x86.ActiveCfg = Release|Any CPU
-		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.projectconfig|x86.Build.0 = Release|Any CPU
 		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.Release_oxford50|Any CPU.ActiveCfg = Release|Any CPU
 		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.Release_oxford50|Any CPU.Build.0 = Release|Any CPU
 		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
@@ -416,18 +409,18 @@ Global
 		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.Release|x64.Build.0 = Release|Any CPU
 		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.Release|x86.ActiveCfg = Release|Any CPU
 		{8B08AA54-13CA-4D28-8F70-3B1F238E10A4}.Release|x86.Build.0 = Release|Any CPU
+		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Any CPU
+		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.CleannessRelease|Any CPU.Build.0 = CleannessRelease|Any CPU
+		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Any CPU
+		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.CleannessRelease|x86.Build.0 = CleannessRelease|Any CPU
 		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.Debug|x64.Build.0 = Debug|Any CPU
 		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.Debug|x86.Build.0 = Debug|Any CPU
-		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.projectconfig|Any CPU.ActiveCfg = Release|Any CPU
-		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.projectconfig|Any CPU.Build.0 = Release|Any CPU
-		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.projectconfig|x64.ActiveCfg = Release|Any CPU
-		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.projectconfig|x64.Build.0 = Release|Any CPU
-		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.projectconfig|x86.ActiveCfg = Release|Any CPU
-		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.projectconfig|x86.Build.0 = Release|Any CPU
 		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.Release_oxford50|Any CPU.ActiveCfg = Release|Any CPU
 		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.Release_oxford50|Any CPU.Build.0 = Release|Any CPU
 		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
@@ -440,18 +433,18 @@ Global
 		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.Release|x64.Build.0 = Release|Any CPU
 		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.Release|x86.ActiveCfg = Release|Any CPU
 		{2A6A6643-02DC-4361-9C8B-0BBBF8BE79BE}.Release|x86.Build.0 = Release|Any CPU
+		{474772DC-334A-4E87-BB46-3ABD913AA44A}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Any CPU
+		{474772DC-334A-4E87-BB46-3ABD913AA44A}.CleannessRelease|Any CPU.Build.0 = CleannessRelease|Any CPU
+		{474772DC-334A-4E87-BB46-3ABD913AA44A}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{474772DC-334A-4E87-BB46-3ABD913AA44A}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{474772DC-334A-4E87-BB46-3ABD913AA44A}.CleannessRelease|x86.ActiveCfg = CleannessRelease|x86
+		{474772DC-334A-4E87-BB46-3ABD913AA44A}.CleannessRelease|x86.Build.0 = CleannessRelease|x86
 		{474772DC-334A-4E87-BB46-3ABD913AA44A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{474772DC-334A-4E87-BB46-3ABD913AA44A}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{474772DC-334A-4E87-BB46-3ABD913AA44A}.Debug|x64.ActiveCfg = Debug|x64
 		{474772DC-334A-4E87-BB46-3ABD913AA44A}.Debug|x64.Build.0 = Debug|x64
 		{474772DC-334A-4E87-BB46-3ABD913AA44A}.Debug|x86.ActiveCfg = Debug|x86
 		{474772DC-334A-4E87-BB46-3ABD913AA44A}.Debug|x86.Build.0 = Debug|x86
-		{474772DC-334A-4E87-BB46-3ABD913AA44A}.projectconfig|Any CPU.ActiveCfg = Debug|Any CPU
-		{474772DC-334A-4E87-BB46-3ABD913AA44A}.projectconfig|Any CPU.Build.0 = Debug|Any CPU
-		{474772DC-334A-4E87-BB46-3ABD913AA44A}.projectconfig|x64.ActiveCfg = Debug|x64
-		{474772DC-334A-4E87-BB46-3ABD913AA44A}.projectconfig|x64.Build.0 = Debug|x64
-		{474772DC-334A-4E87-BB46-3ABD913AA44A}.projectconfig|x86.ActiveCfg = Debug|x86
-		{474772DC-334A-4E87-BB46-3ABD913AA44A}.projectconfig|x86.Build.0 = Debug|x86
 		{474772DC-334A-4E87-BB46-3ABD913AA44A}.Release_oxford50|Any CPU.ActiveCfg = Release_oxford50|Any CPU
 		{474772DC-334A-4E87-BB46-3ABD913AA44A}.Release_oxford50|Any CPU.Build.0 = Release_oxford50|Any CPU
 		{474772DC-334A-4E87-BB46-3ABD913AA44A}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
@@ -464,22 +457,22 @@ Global
 		{474772DC-334A-4E87-BB46-3ABD913AA44A}.Release|x64.Build.0 = Release|x64
 		{474772DC-334A-4E87-BB46-3ABD913AA44A}.Release|x86.ActiveCfg = Release|x86
 		{474772DC-334A-4E87-BB46-3ABD913AA44A}.Release|x86.Build.0 = Release|x86
+		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.CleannessRelease|Any CPU.ActiveCfg = CleannessRelease|Any CPU
+		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.CleannessRelease|Any CPU.Build.0 = CleannessRelease|Any CPU
+		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.CleannessRelease|x64.ActiveCfg = CleannessRelease|x64
+		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.CleannessRelease|x64.Build.0 = CleannessRelease|x64
+		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.CleannessRelease|x86.ActiveCfg = CleannessRelease|Any CPU
+		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.CleannessRelease|x86.Build.0 = CleannessRelease|Any CPU
 		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Debug|x64.Build.0 = Debug|Any CPU
 		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Debug|x86.Build.0 = Debug|Any CPU
-		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.projectconfig|Any CPU.ActiveCfg = Debug|Any CPU
-		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.projectconfig|Any CPU.Build.0 = Debug|Any CPU
-		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.projectconfig|x64.ActiveCfg = Debug|Any CPU
-		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.projectconfig|x64.Build.0 = Debug|Any CPU
-		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.projectconfig|x86.ActiveCfg = Debug|Any CPU
-		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.projectconfig|x86.Build.0 = Debug|Any CPU
 		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Release_oxford50|Any CPU.ActiveCfg = Release|Any CPU
 		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Release_oxford50|Any CPU.Build.0 = Release|Any CPU
-		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Release_oxford50|x64.ActiveCfg = Release|Any CPU
-		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Release_oxford50|x64.Build.0 = Release|Any CPU
+		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Release_oxford50|x64.ActiveCfg = Release_oxford50|x64
+		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Release_oxford50|x64.Build.0 = Release_oxford50|x64
 		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Release_oxford50|x86.ActiveCfg = Release|Any CPU
 		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Release_oxford50|x86.Build.0 = Release|Any CPU
 		{BBA845E8-27ED-4832-90FA-32F737E1FCA7}.Release|Any CPU.ActiveCfg = Release|Any CPU

+ 77 - 0
OTSCPP/OTSClassifyEngine/OTSClassifyEngine.vcxproj

@@ -1,6 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="CleannessRelease|Win32">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="CleannessRelease|x64">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
@@ -51,6 +59,14 @@
     <CharacterSet>MultiByte</CharacterSet>
     <UseOfMfc>Dynamic</UseOfMfc>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CLRSupport>false</CLRSupport>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -77,6 +93,15 @@
     <UseOfMfc>Dynamic</UseOfMfc>
     <WholeProgramOptimization>true</WholeProgramOptimization>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CLRSupport>false</CLRSupport>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -96,6 +121,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -105,6 +133,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -122,6 +153,13 @@
     <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
     <LibraryPath>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;$(LibraryPath)</LibraryPath>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <IncludePath>$(SolutionDir)OTSCPP\OTSClassifyEngine;$(SolutionDir)OTSCPP\OTSClassifyEngine\CurveCompareEngine;$(SolutionDir)OTSCPP\Tools;$(SolutionDir)OTSCPP\OTSLog;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)OTSCPP\OTSSQLiteDll;$(IncludePath)</IncludePath>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LibraryPath>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <LinkIncremental>true</LinkIncremental>
     <IncludePath>$(SolutionDir)OTSCPP\OTSClassifyEngine;$(SolutionDir)OTSCPP\OTSClassifyEngine\CurveCompareEngine;$(SolutionDir)OTSCPP\Tools;$(SolutionDir)OTSCPP\OTSLog;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)OTSCPP\OTSSQLiteDll;$(IncludePath)</IncludePath>
@@ -136,6 +174,13 @@
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
     <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <IncludePath>$(SolutionDir)OTSCPP\OTSClassifyEngine;$(SolutionDir)OTSCPP\OTSClassifyEngine\CurveCompareEngine;$(SolutionDir)OTSCPP\Tools;$(SolutionDir)OTSCPP\OTSLog;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)OTSCPP\OTSSQLiteDll;$(IncludePath)</IncludePath>
+    <LibraryPath>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;$(LibraryPath)</LibraryPath>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LinkIncremental>true</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
@@ -175,6 +220,19 @@
       <AdditionalLibraryDirectories>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
     </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>Create</PrecompiledHeader>
+      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;NODEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>OTSData.lib;OTSLog.lib;OTSSQLiteDll.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <PrecompiledHeader>Create</PrecompiledHeader>
@@ -206,6 +264,25 @@
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
     </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <ClCompile>
+      <PrecompiledHeader>Create</PrecompiledHeader>
+      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>OTSData.lib;OTSLog.lib;OTSSQLiteDll.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <PrecompiledHeader>Create</PrecompiledHeader>

+ 69 - 0
OTSCPP/OTSClrInterface/OTSClrInterface.vcxproj

@@ -1,6 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="CleannessRelease|Win32">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="CleannessRelease|x64">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
@@ -58,6 +66,14 @@
     <CharacterSet>MultiByte</CharacterSet>
     <UseOfMfc>Dynamic</UseOfMfc>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CLRSupport>true</CLRSupport>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
@@ -83,6 +99,15 @@
     <UseOfMfc>Dynamic</UseOfMfc>
     <WholeProgramOptimization>true</WholeProgramOptimization>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CLRSupport>true</CLRSupport>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
@@ -97,6 +122,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -106,6 +134,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
@@ -125,6 +156,12 @@
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
     <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <IncludePath>$(SolutionDir)\OTSCPP\OTSData;$(SolutionDir)\OTSCPP\OTSControl;$(SolutionDir)\OTSCPP\OTSClassifyEngine\;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv2;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include;$(SolutionDir)\OTSCPP\OTSImagePro;$(SolutionDir)\OTSCPP\OTSClrInterface\CommonClr;$(SolutionDir)\OTSCPP\OTSLog;$(SolutionDir)OTSCPP\Tools;$(SolutionDir)OTSCPP\OTSClassifyEngine\CurveCompareEngine;$(SolutionDir)OTSCPP\OTSRptCalculate\GBCal;$(SolutionDir)OTSCPP\OTSRptCalculate\Model;$(SolutionDir)\OTSCPP\OTSClrInterface\ImageProClr;$(SolutionDir)OTSCPP\OTSRptCalculate\DTL;$(SolutionDir)OTSCPP\OTSSQLiteDll;$(IncludePath)</IncludePath>
+    <LibraryPath>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;$(LibraryPath)</LibraryPath>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
     <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
@@ -137,6 +174,12 @@
     <IncludePath>$(SolutionDir)\OTSCPP\OTSData;$(SolutionDir)\OTSCPP\OTSControl;$(SolutionDir)\OTSCPP\OTSClassifyEngine\;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv2;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include;$(SolutionDir)\OTSCPP\OTSImagePro;$(SolutionDir)\OTSCPP\OTSClrInterface\CommonClr;$(SolutionDir)\OTSCPP\OTSLog;$(SolutionDir)OTSCPP\Tools;$(SolutionDir)OTSCPP\OTSClassifyEngine\CurveCompareEngine;$(IncludePath)</IncludePath>
     <LibraryPath>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;$(LibraryPath)</LibraryPath>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <IncludePath>$(SolutionDir)\OTSCPP\OTSData;$(SolutionDir)\OTSCPP\OTSControl;$(SolutionDir)\OTSCPP\OTSClassifyEngine\;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv2;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include;$(SolutionDir)\OTSCPP\OTSImagePro;$(SolutionDir)\OTSCPP\OTSClrInterface\CommonClr;$(SolutionDir)\OTSCPP\OTSLog;$(SolutionDir)OTSCPP\Tools;$(SolutionDir)OTSCPP\OTSClassifyEngine\CurveCompareEngine;$(IncludePath)</IncludePath>
+    <LibraryPath>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
@@ -177,6 +220,16 @@
       <AdditionalDependencies>OTSData.lib;OTSLog.lib;OTSClassifyEngine.lib;OTSControl.lib;OTSImagePro.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;NODEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Optimization>MaxSpeed</Optimization>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>OTSData.lib;OTSLog.lib;OTSClassifyEngine.lib;OTSControl.lib;OTSImagePro.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
@@ -202,6 +255,22 @@
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
     </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PreprocessorDefinitions>_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <SupportJustMyCode>true</SupportJustMyCode>
+      <Optimization>MaxSpeed</Optimization>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>OTSData.lib;OTSLog.lib;OTSClassifyEngine.lib;OTSControl.lib;OTSImagePro.lib;OTSRptCalculate.lib;OTSSQLiteDll.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemGroup>
     <ClCompile Include="ClassificationClr\OTSClassifyEngineClr.cpp" />
     <ClCompile Include="CommonClr\BSEImgClr.cpp" />

+ 108 - 0
OTSCPP/OTSControl/OTSControl.vcxproj

@@ -1,6 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="CleannessRelease|Win32">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="CleannessRelease|x64">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
@@ -51,6 +59,14 @@
     <UseOfMfc>Dynamic</UseOfMfc>
     <CLRSupport>true</CLRSupport>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+    <CLRSupport>true</CLRSupport>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -77,6 +93,15 @@
     <CLRSupport>true</CLRSupport>
     <WholeProgramOptimization>true</WholeProgramOptimization>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+    <CLRSupport>true</CLRSupport>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -97,6 +122,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -106,6 +134,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -126,6 +157,14 @@
     <ReferencePath>$(SolutionDir)OTSCPP\OpenDll\OxfordApi50Dll;$(ReferencePath)</ReferencePath>
     <LibraryPath>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;$(LibraryPath)</LibraryPath>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IncludePath>$(SolutionDir)\OTSCPP\OTSControl;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)OTSCPP\Tools;$(SolutionDir)OTSCPP\OTSLog;$(IncludePath)</IncludePath>
+    <ReferencePath>$(SolutionDir)OTSCPP\OpenDll\OxfordApi50Dll;$(ReferencePath)</ReferencePath>
+    <LibraryPath>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LinkIncremental>true</LinkIncremental>
     <IncludePath>$(SolutionDir)\OTSCPP\OTSControl;$(SolutionDir)\OTSCPP\OTSLog;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)OTSCPP\Tools;$(IncludePath)</IncludePath>
@@ -142,6 +181,14 @@
     <EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild>
     <ReferencePath>$(SolutionDir)\OTSCPP\OpenDll\OxfordApi50Dll;$(ReferencePath)</ReferencePath>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <IncludePath>$(SolutionDir)\OTSCPP\OTSControl;$(SolutionDir)\OTSCPP\OTSLog;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)OTSCPP\Tools;$(IncludePath)</IncludePath>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild>
+    <ReferencePath>$(SolutionDir)\OTSCPP\OpenDll\OxfordApi50Dll;$(ReferencePath)</ReferencePath>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LinkIncremental>false</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
@@ -213,6 +260,37 @@
       <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <ClCompile>
+      <PrecompiledHeader>Create</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <SupportJustMyCode>true</SupportJustMyCode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <ModuleDefinitionFile>
+      </ModuleDefinitionFile>
+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>OTSData.lib;OTSLog.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+    </Link>
+    <Midl>
+      <MkTypLibCompatible>false</MkTypLibCompatible>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <PrecompiledHeader>Use</PrecompiledHeader>
@@ -268,6 +346,34 @@
       <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;NODEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <CompileAsManaged>true</CompileAsManaged>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <ModuleDefinitionFile>
+      </ModuleDefinitionFile>
+      <AdditionalLibraryDirectories>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>OTSLog.lib;OTSDATA.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+    <Midl>
+      <MkTypLibCompatible>false</MkTypLibCompatible>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ResourceCompile>
+      <Culture>0x0804</Culture>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
@@ -356,8 +462,10 @@
     <ClCompile Include="stdafx.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
     </ClCompile>

+ 106 - 0
OTSCPP/OTSData/OTSData.vcxproj

@@ -1,6 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="CleannessRelease|Win32">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="CleannessRelease|x64">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
@@ -53,6 +61,14 @@
     <UseOfMfc>Dynamic</UseOfMfc>
     <CLRSupport>false</CLRSupport>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+    <CLRSupport>false</CLRSupport>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -79,6 +95,15 @@
     <CLRSupport>false</CLRSupport>
     <WholeProgramOptimization>true</WholeProgramOptimization>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+    <CLRSupport>false</CLRSupport>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -99,6 +124,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -108,6 +136,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -124,6 +155,12 @@
     <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
     <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)Tools</IncludePath>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)Tools</IncludePath>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LinkIncremental>true</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
@@ -136,6 +173,12 @@
     <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
     <EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LinkIncremental>false</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
@@ -208,6 +251,40 @@
       <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <ClCompile>
+      <PrecompiledHeader>Create</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <ModuleDefinitionFile>.\OTSData.def</ModuleDefinitionFile>
+      <AdditionalLibraryDirectories>
+      </AdditionalLibraryDirectories>
+      <AdditionalDependencies>
+      </AdditionalDependencies>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+    </Link>
+    <Midl>
+      <MkTypLibCompatible>false</MkTypLibCompatible>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <PrecompiledHeader>Use</PrecompiledHeader>
@@ -261,6 +338,33 @@
       <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;NODEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <ModuleDefinitionFile>.\OTSData.def</ModuleDefinitionFile>
+      <AdditionalLibraryDirectories>
+      </AdditionalLibraryDirectories>
+      <AdditionalDependencies>
+      </AdditionalDependencies>
+    </Link>
+    <Midl>
+      <MkTypLibCompatible>false</MkTypLibCompatible>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
@@ -353,8 +457,10 @@
     <ClCompile Include="stdafx.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
     </ClCompile>

+ 122 - 0
OTSCPP/OTSImagePro/OTSImagePro.vcxproj

@@ -1,6 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="CleannessRelease|Win32">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="CleannessRelease|x64">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
@@ -53,6 +61,14 @@
     <UseOfMfc>Dynamic</UseOfMfc>
     <CLRSupport>true</CLRSupport>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+    <CLRSupport>true</CLRSupport>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -78,6 +94,15 @@
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CLRSupport>false</CLRSupport>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CLRSupport>false</CLRSupport>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -97,6 +122,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -106,6 +134,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -124,6 +155,13 @@
     <IncludePath>$(SolutionDir)\OTSCPP\OTSData;$(SolutionDir)\OTSCPP\OTSImagePro\CommonCLR;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv2;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include;$(IncludePath)</IncludePath>
     <LibraryPath>$(SolutionDir)\OTSCPP\OpenCV\$(platform)\lib;$(LibraryPath)</LibraryPath>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <IncludePath>$(SolutionDir)\OTSCPP\OTSData;$(SolutionDir)\OTSCPP\OTSImagePro\CommonCLR;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv2;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include;$(IncludePath)</IncludePath>
+    <LibraryPath>$(SolutionDir)\OTSCPP\OpenCV\$(platform)\lib;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <LinkIncremental>true</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
@@ -138,6 +176,13 @@
     <IncludePath>$(SolutionDir)\OTSCPP\OTSData;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv2;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include;$(IncludePath)</IncludePath>
     <LibraryPath>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;$(LibraryPath)</LibraryPath>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <IncludePath>$(SolutionDir)\OTSCPP\OTSData;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv2;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include\opencv;$(SolutionDir)\OTSCPP\OpenCV\$(platform)\include;$(IncludePath)</IncludePath>
+    <LibraryPath>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LinkIncremental>false</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
@@ -216,6 +261,39 @@
       </Command>
     </PreBuildEvent>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>Create</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <CompileAsManaged>true</CompileAsManaged>
+      <AdditionalIncludeDirectories>
+      </AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <ModuleDefinitionFile>.\ImageProDll.def</ModuleDefinitionFile>
+      <AdditionalDependencies>opencv_world341d.lib;OTSData.lib;OTSLog.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <DelayLoadDLLs>opencv_world341d.dll</DelayLoadDLLs>
+    </Link>
+    <Midl>
+      <MkTypLibCompatible>false</MkTypLibCompatible>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ResourceCompile>
+      <Culture>0x0804</Culture>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <PreBuildEvent>
+      <Command>
+      </Command>
+    </PreBuildEvent>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <PrecompiledHeader>Use</PrecompiledHeader>
@@ -281,6 +359,43 @@
       </Command>
     </PreBuildEvent>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <ModuleDefinitionFile>
+      </ModuleDefinitionFile>
+      <AdditionalDependencies>opencv_world341.lib;OTSData.lib;OTSLog.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(SolutionDir)\OTSCPP\OpenCV\$(platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+    </Link>
+    <Midl>
+      <MkTypLibCompatible>false</MkTypLibCompatible>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ResourceCompile>
+      <Culture>0x0804</Culture>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <PreBuildEvent>
+      <Command>
+      </Command>
+    </PreBuildEvent>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
@@ -355,29 +470,36 @@
     <ClCompile Include="GBImgPropCal.cpp">
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsManaged>
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">false</CompileAsManaged>
+      <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">false</CompileAsManaged>
     </ClCompile>
     <ClCompile Include="ImageProDll.cpp">
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsManaged>
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">false</CompileAsManaged>
+      <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">false</CompileAsManaged>
     </ClCompile>
     <ClCompile Include="OTSImageProcess.cpp">
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsManaged>
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">false</CompileAsManaged>
+      <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">false</CompileAsManaged>
     </ClCompile>
     <ClCompile Include="OTSImageProcessParam.cpp">
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsManaged>
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">false</CompileAsManaged>
+      <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">false</CompileAsManaged>
     </ClCompile>
     <ClCompile Include="OTSImageScanParam.cpp" />
     <ClCompile Include="stdafx.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsManaged>
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">false</CompileAsManaged>
+      <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">false</CompileAsManaged>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>

+ 106 - 0
OTSCPP/OTSLog/OTSLog.vcxproj

@@ -1,6 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="CleannessRelease|Win32">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="CleannessRelease|x64">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
@@ -50,6 +58,14 @@
     <UseOfMfc>Dynamic</UseOfMfc>
     <CLRSupport>false</CLRSupport>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+    <CLRSupport>false</CLRSupport>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -76,6 +92,15 @@
     <CLRSupport>false</CLRSupport>
     <WholeProgramOptimization>true</WholeProgramOptimization>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+    <CLRSupport>false</CLRSupport>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -96,6 +121,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -105,6 +133,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -123,6 +154,13 @@
     <IncludePath>$(SolutionDir)\OTSCPP\Tools;$(IncludePath)</IncludePath>
     <EnableManagedIncrementalBuild>false</EnableManagedIncrementalBuild>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <IncludePath>$(SolutionDir)\OTSCPP\Tools;$(IncludePath)</IncludePath>
+    <EnableManagedIncrementalBuild>false</EnableManagedIncrementalBuild>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <LinkIncremental>true</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
@@ -135,6 +173,12 @@
     <IncludePath>$(SolutionDir)Tools;$(IncludePath)</IncludePath>
     <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IncludePath>$(SolutionDir)Tools;$(IncludePath)</IncludePath>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LinkIncremental>false</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
@@ -200,6 +244,33 @@
       <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <PrecompiledHeaderFile>Logstdafx.h</PrecompiledHeaderFile>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <ModuleDefinitionFile>.\OTSLog.def</ModuleDefinitionFile>
+      <AdditionalLibraryDirectories>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <Midl>
+      <MkTypLibCompatible>false</MkTypLibCompatible>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ResourceCompile>
+      <Culture>0x0804</Culture>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <PrecompiledHeader>Use</PrecompiledHeader>
@@ -259,6 +330,39 @@
       <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MinSpace</Optimization>
+      <PreprocessorDefinitions>_WINDOWS;NDEBUG;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <PrecompiledHeaderFile>Logstdafx.h</PrecompiledHeaderFile>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <IntrinsicFunctions>false</IntrinsicFunctions>
+      <WholeProgramOptimization>false</WholeProgramOptimization>
+      <SupportJustMyCode>true</SupportJustMyCode>
+      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <ModuleDefinitionFile>.\OTSLog.def</ModuleDefinitionFile>
+      <AdditionalLibraryDirectories>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
+      <AdditionalDependencies>
+      </AdditionalDependencies>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+    </Link>
+    <Midl>
+      <MkTypLibCompatible>false</MkTypLibCompatible>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ResourceCompile>
+      <Culture>0x0804</Culture>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
@@ -327,8 +431,10 @@
     <ClCompile Include="Logstdafx.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
     </ClCompile>

+ 72 - 0
OTSCPP/OTSRptCalculate/OTSRptCalculate.vcxproj

@@ -1,6 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="CleannessRelease|Win32">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="CleannessRelease|x64">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
@@ -129,6 +137,13 @@
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>Unicode</CharacterSet>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
@@ -152,6 +167,14 @@
     <CharacterSet>MultiByte</CharacterSet>
     <UseOfMfc>Dynamic</UseOfMfc>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+  </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
@@ -166,6 +189,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -175,6 +201,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LinkIncremental>true</LinkIncremental>
@@ -185,6 +214,9 @@
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">
     <LinkIncremental>false</LinkIncremental>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <LinkIncremental>true</LinkIncremental>
     <IncludePath>$(SolutionDir)\OTSCPP\OTSControl;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)OTSCPP\Tools;$(SolutionDir)OTSCPP\OTSLog;$(SolutionDir)OTSCPP\OTSImagePro;$(SolutionDir)OTSCPP\OTSSQLiteDll;$(SolutionDir)OTSCPP\OTSRptCalculate\Tools;$(SolutionDir)OTSCPP\OTSRptCalculate\Model;$(SolutionDir)OTSCPP\OTSRptCalculate\DTL;$(SolutionDir)OTSCPP\OTSRptCalculate\GBCal;$(IncludePath)</IncludePath>
@@ -206,6 +238,13 @@
     <IncludePath>$(SolutionDir)\OTSCPP\OTSControl;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)OTSCPP\Tools;$(SolutionDir)OTSCPP\OTSLog;$(SolutionDir)OTSCPP\OTSImagePro;$(SolutionDir)OTSCPP\OTSSQLiteDll;$(SolutionDir)OTSCPP\OTSRptCalculate\Tools;$(SolutionDir)OTSCPP\OTSRptCalculate\Model;$(SolutionDir)OTSCPP\OTSRptCalculate\DTL;$(SolutionDir)OTSCPP\OTSRptCalculate\GBCal;$(IncludePath)</IncludePath>
     <LibraryPath>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;$(LibraryPath)</LibraryPath>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <IncludePath>$(SolutionDir)\OTSCPP\OTSControl;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)OTSCPP\Tools;$(SolutionDir)OTSCPP\OTSLog;$(SolutionDir)OTSCPP\OTSImagePro;$(SolutionDir)OTSCPP\OTSSQLiteDll;$(SolutionDir)OTSCPP\OTSRptCalculate\Tools;$(SolutionDir)OTSCPP\OTSRptCalculate\Model;$(SolutionDir)OTSCPP\OTSRptCalculate\DTL;$(SolutionDir)OTSCPP\OTSRptCalculate\GBCal;$(IncludePath)</IncludePath>
+    <LibraryPath>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
@@ -250,6 +289,22 @@
       <GenerateDebugInformation>true</GenerateDebugInformation>
     </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
@@ -297,6 +352,23 @@
       <AdditionalDependencies>OTSData.lib;OTSLog.lib;OTSImagePro.lib;OTSSQLiteDll.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>OTSData.lib;OTSLog.lib;OTSImagePro.lib;OTSSQLiteDll.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>

+ 101 - 1
OTSCPP/OTSSQLiteDll/OTSSQLiteDll.vcxproj

@@ -1,6 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="CleannessRelease|Win32">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="CleannessRelease|x64">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
@@ -48,6 +56,13 @@
     <CharacterSet>MultiByte</CharacterSet>
     <UseOfMfc>Dynamic</UseOfMfc>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -72,6 +87,15 @@
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CLRSupport>false</CLRSupport>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CLRSupport>false</CLRSupport>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -91,6 +115,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -100,6 +127,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -108,7 +138,7 @@
     <LinkIncremental>true</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
     <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-    <IncludePath>$(SolutionDir)SQLite3Dll;$(SolutionDir)\OTSLog;$(SolutionDir)Tools;$(SolutionDir)OTSData;$(IncludePath)</IncludePath>
+    <IncludePath>$(SolutionDir)OTSCPP\SQLite3Dll;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)\OTSCPP\OTSLog;$(SolutionDir)OTSCPP\Tools;$(IncludePath)</IncludePath>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">
     <LinkIncremental>true</LinkIncremental>
@@ -116,6 +146,12 @@
     <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
     <IncludePath>$(SolutionDir)OTSCPP\SQLite3Dll;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)\OTSCPP\OTSLog;$(SolutionDir)OTSCPP\Tools;$(IncludePath)</IncludePath>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <IncludePath>$(SolutionDir)OTSCPP\SQLite3Dll;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)\OTSCPP\OTSLog;$(SolutionDir)OTSCPP\Tools;$(IncludePath)</IncludePath>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <LinkIncremental>true</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
@@ -128,6 +164,12 @@
     <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
     <IncludePath>$(SolutionDir)OTSCPP\SQLite3Dll;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)\OTSCPP\OTSLog;$(SolutionDir)OTSCPP\Tools;$(IncludePath)</IncludePath>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <IncludePath>$(SolutionDir)OTSCPP\SQLite3Dll;$(SolutionDir)OTSCPP\OTSData;$(SolutionDir)\OTSCPP\OTSLog;$(SolutionDir)OTSCPP\Tools;$(IncludePath)</IncludePath>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LinkIncremental>false</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
@@ -190,6 +232,31 @@
       <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <ModuleDefinitionFile>.\OTSSQLiteDll.def</ModuleDefinitionFile>
+      <AdditionalDependencies>SQLite3Dll.lib;OTSData.lib;OTSLog.lib</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
+    <Midl>
+      <MkTypLibCompatible>false</MkTypLibCompatible>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ResourceCompile>
+      <Culture>0x0804</Culture>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <PrecompiledHeader>Use</PrecompiledHeader>
@@ -245,6 +312,37 @@
       <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>_WINDOWS;NODEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <ModuleDefinitionFile>.\OTSSQLiteDll.def</ModuleDefinitionFile>
+      <AdditionalDependencies>SQLite3Win64Dll.lib;OTSData.lib;OTSLog.lib;</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+    </Link>
+    <Midl>
+      <MkTypLibCompatible>false</MkTypLibCompatible>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ResourceCompile>
+      <Culture>0x0804</Culture>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
@@ -323,8 +421,10 @@
     <ClCompile Include="stdafx.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
     </ClCompile>

+ 90 - 0
OTSCPP/SQLite3Dll/SQLite3Dll.vcxproj

@@ -1,6 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="CleannessRelease|Win32">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="CleannessRelease|x64">
+      <Configuration>CleannessRelease</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
@@ -47,6 +55,13 @@
     <CharacterSet>MultiByte</CharacterSet>
     <UseOfMfc>Dynamic</UseOfMfc>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <UseOfMfc>Dynamic</UseOfMfc>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -67,6 +82,13 @@
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -85,6 +107,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -94,6 +119,9 @@
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -116,6 +144,15 @@
     <ReferencePath>E:\OTS_SrcV1.1\OTS\SQLite3Dll;$(ReferencePath)</ReferencePath>
     <IgnoreImportLibrary>true</IgnoreImportLibrary>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <TargetName>SQLite3Dll</TargetName>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IncludePath>$(SolutionDir)SQLite3Dll;$(IncludePath)</IncludePath>
+    <ReferencePath>E:\OTS_SrcV1.1\OTS\SQLite3Dll;$(ReferencePath)</ReferencePath>
+    <IgnoreImportLibrary>true</IgnoreImportLibrary>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <LinkIncremental>true</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
@@ -132,6 +169,14 @@
     <IncludePath>$(SolutionDir)SQLite3Dll;$(IncludePath)</IncludePath>
     <ReferencePath>SQLiteDBWin64Dll</ReferencePath>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <TargetName>SQLite3Win64Dll</TargetName>
+    <IncludePath>$(SolutionDir)SQLite3Dll;$(IncludePath)</IncludePath>
+    <ReferencePath>SQLiteDBWin64Dll</ReferencePath>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LinkIncremental>false</LinkIncremental>
     <TargetName>SQLite3Dll</TargetName>
@@ -175,6 +220,20 @@
       <OutputFile>$(OutDir)\SQLite3Dll.dll</OutputFile>
     </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE3DLL_EXPORTS;SQLITE_ENABLE_COLUMN_METADATA;SQLITE_ENABLE_RTREE;SQLITE_ENABLE_FTS5;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <ModuleDefinitionFile>sqlite3Win32.def</ModuleDefinitionFile>
+      <OutputFile>$(OutDir)\SQLite3Dll.dll</OutputFile>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <PrecompiledHeader>Use</PrecompiledHeader>
@@ -209,6 +268,27 @@
       <OptimizeReferences>true</OptimizeReferences>
     </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;SQLITE3DLL_EXPORTS;SQLITE_ENABLE_COLUMN_METADATA;SQLITE_ENABLE_RTREE;SQLITE_ENABLE_FTS5;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <SupportJustMyCode>true</SupportJustMyCode>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <ModuleDefinitionFile>sqlite3Win64.def</ModuleDefinitionFile>
+      <OutputFile>$(OutDir)\SQLite3Win64Dll.dll</OutputFile>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
@@ -256,16 +336,22 @@
     <ClCompile Include="dllmain.cpp">
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsManaged>
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">false</CompileAsManaged>
+      <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">false</CompileAsManaged>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
       </PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">
       </PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">
+      </PrecompiledHeader>
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</CompileAsManaged>
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'">false</CompileAsManaged>
+      <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">false</CompileAsManaged>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
       </PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'">
       </PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">
+      </PrecompiledHeader>
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsManaged>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
       <CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</CompileAsManaged>
@@ -275,17 +361,21 @@
     <ClCompile Include="sqlite3.c">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">NotUsing</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">NotUsing</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'">NotUsing</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">NotUsing</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
     </ClCompile>
     <ClCompile Include="SQLite3Dll.cpp" />
     <ClCompile Include="stdafx.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='CleannessRelease|x64'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
     </ClCompile>

+ 55 - 1
OTSExtremum/OTSExtremum.csproj

@@ -41,7 +41,7 @@
     <Prefer32Bit>false</Prefer32Bit>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
+    <PlatformTarget>x64</PlatformTarget>
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
     <OutputPath>..\bin\x64\Release_oxford50\</OutputPath>
@@ -50,6 +50,60 @@
     <WarningLevel>4</WarningLevel>
     <Prefer32Bit>false</Prefer32Bit>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_oxford50|AnyCPU'">
+    <OutputPath>bin\Release_oxford50\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x64\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+    <OutputPath>bin\x64\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_oxford50|x64'">
+    <OutputPath>bin\x64\Release_oxford50\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|AnyCPU'">
+    <OutputPath>bin\CleannessRelease\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|x64'">
+    <OutputPath>bin\x64\CleannessRelease\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="Microsoft.Solver.Foundation, Version=3.0.2.10889, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
       <HintPath>..\packages\Microsoft.Solver.Foundation.3.1.0\lib\Microsoft.Solver.Foundation.dll</HintPath>

+ 4 - 0
OTSExtremum/packages.config

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Microsoft.Solver.Foundation" version="3.1.0" targetFramework="net472" />
+</packages>

+ 17 - 0
OTSIncAMeasureApp/OTSIncAMeasureApp.csproj

@@ -104,6 +104,23 @@
   <PropertyGroup>
     <ApplicationIcon>Resources\OTSIncAMeasure.ico</ApplicationIcon>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|AnyCPU'">
+    <OutputPath>bin\CleannessRelease\</OutputPath>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|x86'">
+    <OutputPath>bin\x86\CleannessRelease\</OutputPath>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|x64'">
+    <OutputPath>bin\x64\CleannessRelease\</OutputPath>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="CefSharp.Core, Version=51.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=AMD64">
       <SpecificVersion>False</SpecificVersion>

+ 23 - 3
OTSIncAReportApp/1-UI/Control_ECharts/EChart_ParticlesComposition.cs

@@ -303,7 +303,8 @@ namespace OTSIncAReportApp.Control_ECharts
             chart.YName = m_str_AxisY;
 
             int sel = m_ReportApp.m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
-            DataTable dt = particledata.GetAreaByAllIncA("");
+            DataTable data = particledata.GetAreaByAllIncA("");
+            DataTable dt = ConSolidateInvalid(data);
             //设置标签名称
             List<string> listName = new List<string>();
             //ListName
@@ -395,7 +396,9 @@ namespace OTSIncAReportApp.Control_ECharts
             keyValues_ResultGrid.TryGetValue(ls_resultgrid.table["col5"].ToString(), out str_SCZS);//视场总数
 
             DataOperation.DataAccess.ParticleData particledata = new DataOperation.DataAccess.ParticleData(path);
-            DataTable AreaInformationOfAllElements = particledata.GetAreaByAllIncA("");//获取所有分类面积和数量信息
+           
+            DataTable data = particledata.GetAreaByAllIncA("");//获取所有分类面积和数量信息
+            DataTable AreaInformationOfAllElements = ConSolidateInvalid(data);
             DataTable AllAnalysisDetails = new DataTable();
             AllAnalysisDetails.Columns.Add("Name");
             AllAnalysisDetails.Columns.Add("TypeId");
@@ -501,7 +504,24 @@ namespace OTSIncAReportApp.Control_ECharts
             }
             return AllAnalysisDetails1;
         }
-
+        private DataTable ConSolidateInvalid(DataTable dt)
+        {
+           
+            DataTable dt_invalid = dt.Clone();
+            DataTable dt_no_invalid = dt.Clone();
+            for (int i = 0; i < dt.Rows.Count; i++)
+            {
+                if (dt.Rows[i]["TypeName"].ToString()=="Invalid")
+                {
+                    dt_invalid.Rows.Add(dt.Rows[i].ItemArray);
+                }
+                else
+                {
+                    dt_no_invalid.Rows.Add(dt.Rows[i].ItemArray);
+                }
+            }
+            return dt_no_invalid;
+        }
         /// <summary>
         /// 获取颗粒成分数据
         /// </summary>

+ 3 - 2
OTSIncAReportApp/1-UI/Control_ECharts/EChart_Trianglediagram.Designer.cs

@@ -39,10 +39,11 @@
             // 
             // EChart_Trianglediagram
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Margin = new System.Windows.Forms.Padding(2);
             this.Name = "EChart_Trianglediagram";
-            this.Size = new System.Drawing.Size(1160, 715);
+            this.Size = new System.Drawing.Size(773, 477);
             this.Load += new System.EventHandler(this.EChart_Trianglediagram_Load);
             this.ResumeLayout(false);
 

+ 1 - 0
OTSIncAReportApp/1-UI/Control_ECharts/EChart_Trianglediagram.cs

@@ -628,6 +628,7 @@ namespace OTSIncAReportApp.Control_ECharts
                 butclic(m_ReportApp.js.MessageText);
                 timer1.Enabled = false;
                 m_ReportApp.timerKG = false;
+                m_ReportApp.js.MessageText = "";
             }
         }
 

+ 48 - 9
OTSIncAReportApp/1-UI/OTSTemplateDesigner/Export_ReportTemplate.cs

@@ -1425,6 +1425,10 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
                 for (int i = 0; i < ls_gv.Rows.Count; i++)
                 {
                     DataRow dr2 = ls_element_dt.NewRow();
+                    if (ls_gv.Rows[i].Cells[1].Value.ToString()== "Invalid")
+                    {
+                        continue;
+                    }
                     dr2["PName"] = ls_gv.Rows[i].Cells[1].Value.ToString();
                     dr2["Count"] = ls_gv.Rows[i].Cells[2].Value.ToString();
 
@@ -2331,19 +2335,28 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
 
 
             //加载模块
-            m_otsreport_export.m_ReportApp.im_EChart_Trianglediagram = new EChart_Trianglediagram(m_otsreport_export.m_ReportApp, TemplateList[selectindex]);
+            //m_otsreport_export.m_ReportApp.im_EChart_Trianglediagram = new EChart_Trianglediagram(m_otsreport_export.m_ReportApp, TemplateList[selectindex]);
+            //m_otsreport_export.m_ReportApp.timerKG = true;
+            //m_otsreport_export.m_ReportApp.im_EChart_Trianglediagram.condition = m_otsreport_export.m_mbszclass.M_SYXT.index_cb_syxt_jsfs;
+            //m_otsreport_export.m_ReportApp.im_EChart_Trianglediagram.Report = true;
+            //m_otsreport_export.m_ReportApp.m_ChartsWindow.Controls.Add(m_otsreport_export.m_ReportApp.im_EChart_Trianglediagram);
+
+
+
+            EChart_Trianglediagram eChart_Trianglediagram= new EChart_Trianglediagram(m_otsreport_export.m_ReportApp, TemplateList[selectindex]);
             m_otsreport_export.m_ReportApp.timerKG = true;
-            m_otsreport_export.m_ReportApp.im_EChart_Trianglediagram.condition = m_otsreport_export.m_mbszclass.M_SYXT.index_cb_syxt_jsfs;
-            m_otsreport_export.m_ReportApp.im_EChart_Trianglediagram.Report = true;
-            m_otsreport_export.m_ReportApp.m_ChartsWindow.Controls.Add(m_otsreport_export.m_ReportApp.im_EChart_Trianglediagram);
+            eChart_Trianglediagram.condition = m_otsreport_export.m_mbszclass.M_SYXT.index_cb_syxt_jsfs;
+            eChart_Trianglediagram.Report = true;
+            m_otsreport_export.m_ReportApp.m_ChartsWindow.Controls.Add(eChart_Trianglediagram);
 
             //ls_echart_trianglediagram.
             //弹出加载图片窗体
-            OTSReport_GetEChartImage og = new OTSReport_GetEChartImage();
 
+            OTSReport_GetEChartImage og = new OTSReport_GetEChartImage();
+            //System.Threading.Thread.Sleep(2000);
             //将EChart委托事件注册给加载图片窗体的方法
-            m_otsreport_export.m_ReportApp.im_EChart_Trianglediagram.butclic += og.get_ParticalesCompositionChart;
-
+            //m_otsreport_export.m_ReportApp.im_EChart_Trianglediagram.butclic += og.get_ParticalesCompositionChart;
+            eChart_Trianglediagram.butclic += og.get_ParticalesCompositionChart;
             og.ShowDialog();
 
             //获取图片数据
@@ -2351,18 +2364,23 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
 
             //将Base64String转为图片并保存
             byte[] arr = Convert.FromBase64String(str.Substring(str.IndexOf(',') + 1));
-            MemoryStream ms = new MemoryStream(arr);
+            using (MemoryStream ms = new MemoryStream(arr))
+            {
+
+          
             System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(ms);
 
 
             //再将图转成流,流再转二进制-------------------------------------------
             MemoryStream newms = new MemoryStream();
             bmp.Save(newms, System.Drawing.Imaging.ImageFormat.Bmp);
+
+            
             newms.Seek(0, SeekOrigin.Begin);
             newarr = new byte[newms.Length];
             newms.Read(newarr, 0, newarr.Length);
             newms.Dispose();
-
+            };
 
             return newarr;
         }
@@ -2375,6 +2393,27 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
         {
             try
             {
+                ////创建二进制列的数据表,循环插入三元选择的模板
+                //DataTable dt_pic = GetPicDataTable_PicSYXT2T();
+                //List<byte[]> lt_by = new List<byte[]>();
+                //for (int i = 0; i < m_otsreport_export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Count; i ++)
+                //{
+                //    byte[] newarr, newarr2;
+                //    newarr = GetByte_InsertReportTemplateChart_Trianglediagram(m_otsreport_export.m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index[i]);
+                //    lt_by.Add(newarr);
+                    
+                //    newarr2 = null;
+                //    DataRow dr = dt_pic.NewRow();
+                //    dr["pict"] = newarr;//图像二进制
+                //    dr["pict2"] = newarr2;//图像二进制
+                //    dt_pic.Rows.Add(dr);
+                //}
+                //if (lt_by.GroupBy(i => i).Where(g => g.Count() > 1).Count() >= 1)
+                //{
+                //    MessageBox.Show("图片重复");
+                //}
+
+
                 //创建二进制列的数据表,循环插入三元选择的模板
                 DataTable ls_dt = GetPicDataTable_PicSYXT2T();
                 DataTable ls_dt3t = GetPicDataTable_PicSYXT3T();

+ 37 - 37
OTSIncAReportApp/1-UI/OTSTemplateDesigner/OTSReport_TemplateDesignerRM.Designer.cs

@@ -75,12 +75,12 @@
             this.label33 = new System.Windows.Forms.Label();
             this.label42 = new System.Windows.Forms.Label();
             this.groupBox8 = new System.Windows.Forms.GroupBox();
-            this.groupBox3 = new System.Windows.Forms.GroupBox();
+            this.groupBox_zt = new System.Windows.Forms.GroupBox();
             this.ParticleList_5 = new System.Windows.Forms.Label();
             this.cb_FrameChart_p2 = new System.Windows.Forms.ComboBox();
             this.ParticleList_4 = new System.Windows.Forms.Label();
             this.cb_FrameChart_p1 = new System.Windows.Forms.ComboBox();
-            this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.groupBox_px = new System.Windows.Forms.GroupBox();
             this.comboBox_p3 = new System.Windows.Forms.ComboBox();
             this.ParticleList_3 = new System.Windows.Forms.Label();
             this.comboBox_p2 = new System.Windows.Forms.ComboBox();
@@ -120,8 +120,8 @@
             this.groupBox6.SuspendLayout();
             this.groupBox7.SuspendLayout();
             this.groupBox8.SuspendLayout();
-            this.groupBox3.SuspendLayout();
-            this.groupBox2.SuspendLayout();
+            this.groupBox_zt.SuspendLayout();
+            this.groupBox_px.SuspendLayout();
             this.panel2.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox8)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).BeginInit();
@@ -624,8 +624,8 @@
             // 
             // groupBox8
             // 
-            this.groupBox8.Controls.Add(this.groupBox3);
-            this.groupBox8.Controls.Add(this.groupBox2);
+            this.groupBox8.Controls.Add(this.groupBox_zt);
+            this.groupBox8.Controls.Add(this.groupBox_px);
             this.groupBox8.Controls.Add(this.ck_kllb_npxx);
             this.groupBox8.Controls.Add(this.ck_kllb_fdtx);
             this.groupBox8.Controls.Add(this.ck_kllb_ystx);
@@ -643,18 +643,18 @@
             this.groupBox8.TabStop = false;
             this.groupBox8.Text = "颗粒列表";
             // 
-            // groupBox3
+            // groupBox_zt
             // 
-            this.groupBox3.Controls.Add(this.ParticleList_5);
-            this.groupBox3.Controls.Add(this.cb_FrameChart_p2);
-            this.groupBox3.Controls.Add(this.ParticleList_4);
-            this.groupBox3.Controls.Add(this.cb_FrameChart_p1);
-            this.groupBox3.Location = new System.Drawing.Point(9, 227);
-            this.groupBox3.Name = "groupBox3";
-            this.groupBox3.Size = new System.Drawing.Size(249, 125);
-            this.groupBox3.TabIndex = 55;
-            this.groupBox3.TabStop = false;
-            this.groupBox3.Text = "帧图表";
+            this.groupBox_zt.Controls.Add(this.ParticleList_5);
+            this.groupBox_zt.Controls.Add(this.cb_FrameChart_p2);
+            this.groupBox_zt.Controls.Add(this.ParticleList_4);
+            this.groupBox_zt.Controls.Add(this.cb_FrameChart_p1);
+            this.groupBox_zt.Location = new System.Drawing.Point(9, 227);
+            this.groupBox_zt.Name = "groupBox_zt";
+            this.groupBox_zt.Size = new System.Drawing.Size(249, 125);
+            this.groupBox_zt.TabIndex = 55;
+            this.groupBox_zt.TabStop = false;
+            this.groupBox_zt.Text = "帧图表";
             // 
             // ParticleList_5
             // 
@@ -696,20 +696,20 @@
             this.cb_FrameChart_p1.Size = new System.Drawing.Size(216, 20);
             this.cb_FrameChart_p1.TabIndex = 54;
             // 
-            // groupBox2
-            // 
-            this.groupBox2.Controls.Add(this.comboBox_p3);
-            this.groupBox2.Controls.Add(this.ParticleList_3);
-            this.groupBox2.Controls.Add(this.comboBox_p2);
-            this.groupBox2.Controls.Add(this.ParticleList_2);
-            this.groupBox2.Controls.Add(this.ParticleList_1);
-            this.groupBox2.Controls.Add(this.comboBox_p1);
-            this.groupBox2.Location = new System.Drawing.Point(9, 55);
-            this.groupBox2.Name = "groupBox2";
-            this.groupBox2.Size = new System.Drawing.Size(249, 166);
-            this.groupBox2.TabIndex = 54;
-            this.groupBox2.TabStop = false;
-            this.groupBox2.Text = "最大排序表";
+            // groupBox_px
+            // 
+            this.groupBox_px.Controls.Add(this.comboBox_p3);
+            this.groupBox_px.Controls.Add(this.ParticleList_3);
+            this.groupBox_px.Controls.Add(this.comboBox_p2);
+            this.groupBox_px.Controls.Add(this.ParticleList_2);
+            this.groupBox_px.Controls.Add(this.ParticleList_1);
+            this.groupBox_px.Controls.Add(this.comboBox_p1);
+            this.groupBox_px.Location = new System.Drawing.Point(9, 55);
+            this.groupBox_px.Name = "groupBox_px";
+            this.groupBox_px.Size = new System.Drawing.Size(249, 166);
+            this.groupBox_px.TabIndex = 54;
+            this.groupBox_px.TabStop = false;
+            this.groupBox_px.Text = "最大排序表";
             // 
             // comboBox_p3
             // 
@@ -1105,10 +1105,10 @@
             this.groupBox7.PerformLayout();
             this.groupBox8.ResumeLayout(false);
             this.groupBox8.PerformLayout();
-            this.groupBox3.ResumeLayout(false);
-            this.groupBox3.PerformLayout();
-            this.groupBox2.ResumeLayout(false);
-            this.groupBox2.PerformLayout();
+            this.groupBox_zt.ResumeLayout(false);
+            this.groupBox_zt.PerformLayout();
+            this.groupBox_px.ResumeLayout(false);
+            this.groupBox_px.PerformLayout();
             this.panel2.ResumeLayout(false);
             this.panel2.PerformLayout();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox8)).EndInit();
@@ -1204,8 +1204,8 @@
         private System.Windows.Forms.Button button3;
         private System.Windows.Forms.GroupBox groupBZ;
         private System.Windows.Forms.TextBox textBox_strBZ;
-        private System.Windows.Forms.GroupBox groupBox2;
-        private System.Windows.Forms.GroupBox groupBox3;
+        private System.Windows.Forms.GroupBox groupBox_px;
+        private System.Windows.Forms.GroupBox groupBox_zt;
         private System.Windows.Forms.Label ParticleList_5;
         private System.Windows.Forms.ComboBox cb_FrameChart_p2;
         private System.Windows.Forms.Label ParticleList_4;

+ 26 - 0
OTSIncAReportApp/OTSIncAReportApp.csproj

@@ -108,6 +108,32 @@
     <ErrorReport>prompt</ErrorReport>
     <Prefer32Bit>true</Prefer32Bit>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|AnyCPU'">
+    <OutputPath>bin\CleannessRelease\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|x86'">
+    <OutputPath>bin\x86\CleannessRelease\</OutputPath>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|x64'">
+    <OutputPath>bin\x64\CleannessRelease\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="CefSharp, Version=51.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=x86">
       <SpecificVersion>False</SpecificVersion>

+ 12 - 22
OTSIncAReportTemplate/OTSIncAReportTemplate.cs

@@ -207,8 +207,18 @@ namespace OTSIncAReportTemplate
                     if (m_mbszclass.M_SYXT.str_cb_syxt_mhxssl == "2")
                     {
                         DataTable ls_dt_picSYXT = list_dt.Where(aa => aa.TableName.Contains("PicSYXT2T")).ToList()[0];//一排两个三元相图
-                        rmReport1.FindObject("MasterData18").Prop["Visible"] = false;
-                        rmReport1.FindObject("MasterData10").Prop["Visible"] = true;
+                                                                                                                      //rmReport1.FindObject("MasterData18").Prop["Visible"] = false;
+                    List<byte[]> list_by = new List<byte[]>();
+                    for (int i = 0; i < ls_dt_picSYXT.Rows.Count;i++)
+                    {
+                        list_by.Add((byte[])ls_dt_picSYXT.Rows[i][0]);
+                    }
+
+                    if (list_by.GroupBy(i => i).Where(g => g.Count() > 1).Count() >= 1)
+                    {
+                        MessageBox.Show("图片重复");
+                    }
+                    rmReport1.FindObject("MasterData10").Prop["Visible"] = true;
                         rmReport1.AddDataSet(ls_dt_picSYXT, "PicSYXT");//三元相图
                         ls_dt_picSYXT.Dispose();
 
@@ -875,17 +885,6 @@ namespace OTSIncAReportTemplate
             ls_ResultGrid.TableName = "ResultGrid";
             list_dt.Add(ls_ResultGrid);
             
-
-            //string strmix = m_arg5.Substring(0, m_arg5.IndexOf("-"));
-            //MessageBox.Show(strmix);
-            //string strmax = m_arg5.Substring(m_arg5.IndexOf("-") + 1, m_arg5.Length - m_arg5.IndexOf("-") - 1);
-            //MessageBox.Show(strmax);
-
-            //DataTable ls_Largest_frame2 = sh.ExecuteQuery("select * from Largest_frame where cast(fieldid as int) > " + "1" + " and cast(fieldid as int) < " + "100" + " ");
-            //ls_Largest_frame2.TableName = "Largest_frame";
-            //list_dt.Add(ls_Largest_frame2);
-
-            //DataTable ls_FrameGraphSubTable = sh.ExecuteQuery("select * from FrameGraphSubTable where cast(fieldid as int) > " + strmix + " and cast(fieldid as int) < " + strmax + " ");
             DataTable ls_FrameGraphSubTable = sh.ExecuteQuery("select * from FrameGraphSubTable ");
             ls_FrameGraphSubTable.TableName = "FrameGraphSubTable";
             list_dt.Add(ls_FrameGraphSubTable);
@@ -899,12 +898,6 @@ namespace OTSIncAReportTemplate
             ls_AreaRatio.TableName = "AreaRatio";
             list_dt.Add(ls_AreaRatio);
 
-
-            //DataTable ls_Largest2new = sh.ExecuteQuery("select * from Largest2new");
-            //ls_Largest2new.TableName = "Largest2new";
-            //list_dt.Add(ls_Largest2new);
-
-            //DataTable ls_field_dt = sh.ExecuteQuery("select * from field_dt where cast(fieldid as int) > " + strmix + " and cast(fieldid as int) < " + strmax + " ");
             DataTable ls_field_dt = sh.ExecuteQuery("select * from field_dt ");
             ls_field_dt.TableName = "field_dt";
             list_dt.Add(ls_field_dt);
@@ -929,9 +922,6 @@ namespace OTSIncAReportTemplate
             ls_Particel_subdivision.TableName = "Particel_subdivision";
             list_dt.Add(ls_Particel_subdivision);
 
-            //DataTable ls_PicKL = sh.ExecuteQuery("select * from PicKL");
-            //ls_PicKL.TableName = "PicKL";
-            //list_dt.Add(ls_PicKL);
 
             DataTable ls_PicYS = sh.ExecuteQuery("select * from PicYS");
             ls_PicYS.TableName = "PicYS";

+ 26 - 0
OTSIncAReportTemplate/OTSIncAReportTemplate.csproj

@@ -82,6 +82,32 @@
     <OutputPath>..\Bin\x64\Release_oxford50\</OutputPath>
     <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|AnyCPU'">
+    <OutputPath>bin\CleannessRelease\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|x64'">
+    <OutputPath>bin\x64\CleannessRelease\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|x86'">
+    <OutputPath>bin\x86\CleannessRelease\</OutputPath>
+    <PlatformTarget>x86</PlatformTarget>
+    <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+    <LangVersion>7.3</LangVersion>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
       <HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>

+ 20 - 0
OTSPartA_STDEditor/OTSPartA_STDEditor.csproj

@@ -72,6 +72,26 @@
     <LangVersion>7.3</LangVersion>
     <ErrorReport>prompt</ErrorReport>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|AnyCPU'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\CleannessRelease\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x64\CleannessRelease\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="OTS.WinFormsUI.Docking, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>

+ 20 - 0
OTSRegister/OTSRegister.csproj

@@ -72,6 +72,26 @@
     <ErrorReport>prompt</ErrorReport>
     <Prefer32Bit>true</Prefer32Bit>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|AnyCPU'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\CleannessRelease\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x64\CleannessRelease\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />
     <Reference Include="System.Core" />

+ 17 - 0
OTSSysMgrApp/OTSSysMgrApp.csproj

@@ -98,6 +98,23 @@
   <PropertyGroup>
     <ApplicationIcon>Resources\OTSSysMgr.ico</ApplicationIcon>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|AnyCPU'">
+    <OutputPath>bin\CleannessRelease\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|x64'">
+    <OutputPath>bin\x64\CleannessRelease\</OutputPath>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>

+ 16 - 0
OTSSysMgrTools/OTSSysMgrTools.csproj

@@ -73,6 +73,22 @@
     <LangVersion>7.3</LangVersion>
     <ErrorReport>prompt</ErrorReport>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|AnyCPU'">
+    <OutputPath>bin\CleannessRelease\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|x64'">
+    <OutputPath>bin\x64\CleannessRelease\</OutputPath>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="OTSClrInterface, Version=0.0.0.0, Culture=neutral, processorArchitecture=x86">
       <SpecificVersion>False</SpecificVersion>

+ 20 - 0
RegistrationAuthorization/RegistrationAuthorization.csproj

@@ -72,6 +72,26 @@
     <ErrorReport>prompt</ErrorReport>
     <Prefer32Bit>true</Prefer32Bit>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|AnyCPU'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\CleannessRelease\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CleannessRelease|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x64\CleannessRelease\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <LangVersion>7.3</LangVersion>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />
     <Reference Include="System.Core" />