mengxiangge 4 年之前
父節點
當前提交
6aaae0c853
共有 28 個文件被更改,包括 12048 次插入134 次删除
  1. 3 1
      Config/test/Client.exe.config
  2. 1 1
      Config/test/MBIRevitBase.dll.config
  3. 112 17
      Dispatcher/Client/Client.csproj
  4. 4 4
      Dispatcher/Client/ClientApp.cs
  5. 6 2
      Dispatcher/Client/app.config
  6. 3 0
      Dispatcher/Client/packages.config
  7. 118 24
      Dispatcher/NettyClient/NettyClient.csproj
  8. 5 1
      Dispatcher/NettyClient/app.config
  9. 3 1
      Dispatcher/NettyClient/packages.config
  10. 二進制
      Dispatcher/TaskDatabase/FakesAssemblies/Remotion.Linq.Fakes.dll
  11. 二進制
      Dispatcher/TaskDatabase/FakesAssemblies/Remotion.Linq.Fakes.fakesconfig
  12. 258 0
      Dispatcher/TaskDatabase/FakesAssemblies/Remotion.Linq.Fakes.messages
  13. 11450 0
      Dispatcher/TaskDatabase/FakesAssemblies/Remotion.Linq.Fakes.xml
  14. 7 4
      Dispatcher/TaskDatabase/TaskDatabase.csproj
  15. 3 1
      Dispatcher/TaskDatabase/TaskService.cs
  16. 1 1
      Dispatcher/TaskDatabase/packages.config
  17. 1 0
      Executer/DataCheck/ServiceDataCheck.csproj
  18. 10 10
      Executer/DataCheck/app.config
  19. 1 0
      Executer/DataExport/JBIM/JBIM.csproj
  20. 26 34
      Executer/DataExport/JBIM/Properties/Resources.Designer.cs
  21. 13 17
      Executer/DataExport/JBIM/Properties/Settings.Designer.cs
  22. 3 3
      Executer/DataExport/RevitToJBim/MbiExport.cs
  23. 1 0
      Executer/DataExport/RevitToJBim/RevitToJBim.csproj
  24. 4 4
      Executer/DataExport/RevitToJBim/app.config
  25. 6 1
      Executer/MBIRevitBase/Tools/HttpUtils.cs
  26. 1 0
      Starter/StartVisionSelector/StartVisionSelector.csproj
  27. 4 4
      Starter/StartVisionSelector/app.config
  28. 4 4
      Starter/Starter/App.config

+ 3 - 1
Config/test/Client.exe.config

@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
   <appSettings>
-    <add key="IP" value="192.168.20.225"/>
+    <!--
+    <add key="IP" value="47.94.89.44"/>-->
+    <add key="IP" value="172.16.42.210"/>
     <add key="Port" value="6666"/>
     <add key="DownloadFileDir" value="E:\\"/>
     <add key="MaxTaskCount" value="3"/>

+ 1 - 1
Config/test/MBIRevitBase.dll.config

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <configuration>
   <appSettings>
-    <add key="IP" value="http://192.168.20.225"/>
+    <add key="IP" value="http://172.16.42.210"/>
     <add key="Port" value="8082"/>
     <add key="Path" value="/upload-json-zip/upload"/>
   </appSettings>

+ 112 - 17
Dispatcher/Client/Client.csproj

@@ -35,80 +35,175 @@
     <StartupObject />
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="BouncyCastle.Crypto, Version=1.8.3.0, Culture=neutral, PublicKeyToken=0e99375e54769942">
+      <HintPath>..\..\packages\BouncyCastle.1.8.3.1\lib\BouncyCastle.Crypto.dll</HintPath>
+    </Reference>
     <Reference Include="DotNetty.Buffers, Version=0.6.0.0, Culture=neutral, PublicKeyToken=bc13ca065fa06c29, processorArchitecture=MSIL">
-      <HintPath>..\packages\DotNetty.Buffers.0.6.0\lib\net45\DotNetty.Buffers.dll</HintPath>
+      <HintPath>..\..\packages\DotNetty.Buffers.0.6.0\lib\net45\DotNetty.Buffers.dll</HintPath>
     </Reference>
     <Reference Include="DotNetty.Common, Version=0.6.0.0, Culture=neutral, PublicKeyToken=bc13ca065fa06c29, processorArchitecture=MSIL">
-      <HintPath>..\packages\DotNetty.Common.0.6.0\lib\net45\DotNetty.Common.dll</HintPath>
+      <HintPath>..\..\packages\DotNetty.Common.0.6.0\lib\net45\DotNetty.Common.dll</HintPath>
     </Reference>
     <Reference Include="DotNetty.Transport, Version=0.6.0.0, Culture=neutral, PublicKeyToken=bc13ca065fa06c29, processorArchitecture=MSIL">
-      <HintPath>..\packages\DotNetty.Transport.0.6.0\lib\net45\DotNetty.Transport.dll</HintPath>
+      <HintPath>..\..\packages\DotNetty.Transport.0.6.0\lib\net45\DotNetty.Transport.dll</HintPath>
     </Reference>
     <Reference Include="Google.Protobuf, Version=3.8.0.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
       <HintPath>..\..\packages\Google.Protobuf.3.8.0\lib\net45\Google.Protobuf.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Configuration, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Configuration.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Configuration.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Configuration.Abstractions, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Configuration.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Configuration.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Configuration.Binder, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Configuration.Binder.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Configuration.Binder.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Logging, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Logging.1.1.1\lib\netstandard1.1\Microsoft.Extensions.Logging.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Logging.1.1.1\lib\netstandard1.1\Microsoft.Extensions.Logging.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
       <HintPath>..\..\packages\Microsoft.Extensions.Logging.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Options, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Options.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Options.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Primitives, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Primitives.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Primitives.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="MySql.Data, Version=8.0.18.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\MySql.Data.8.0.18\lib\net452\MySql.Data.dll</HintPath>
     </Reference>
     <Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <HintPath>..\..\packages\Newtonsoft.Json.11.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
     </Reference>
+    <Reference Include="Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
+    <Reference Include="System.AppContext, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="System.Buffers, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
+      <HintPath>..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
     </Reference>
+    <Reference Include="System.ComponentModel, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
     <Reference Include="System.ComponentModel.Annotations, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.ComponentModel.Annotations.4.5.0\lib\net461\System.ComponentModel.Annotations.dll</HintPath>
+      <HintPath>..\..\packages\System.ComponentModel.Annotations.4.5.0\lib\net461\System.ComponentModel.Annotations.dll</HintPath>
     </Reference>
     <Reference Include="System.ComponentModel.Composition" />
     <Reference Include="System.ComponentModel.DataAnnotations" />
     <Reference Include="System.Configuration" />
+    <Reference Include="System.Configuration.Install" />
+    <Reference Include="System.Console, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Console.4.3.0\lib\net46\System.Console.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="System.Core" />
     <Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
+      <HintPath>..\..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Drawing.Design" />
+    <Reference Include="System.Globalization.Calendars, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System.IO.Compression.FileSystem" />
+    <Reference Include="System.IO.Compression.ZipFile, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.IO.FileSystem, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.IO.FileSystem.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="System.Management" />
     <Reference Include="System.Memory, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Memory.4.5.1\lib\netstandard2.0\System.Memory.dll</HintPath>
+      <HintPath>..\..\packages\System.Memory.4.5.1\lib\netstandard2.0\System.Memory.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Net.Sockets, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System.Numerics" />
     <Reference Include="System.Numerics.Vectors, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
+      <HintPath>..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
     </Reference>
+    <Reference Include="System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
     <Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
+      <HintPath>..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
+      <HintPath>..\..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
     </Reference>
+    <Reference Include="System.Transactions" />
     <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
     <Reference Include="Microsoft.CSharp" />
     <Reference Include="System.Data" />
     <Reference Include="System.Xml" />
+    <Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
     <Compile Include="MainClass.cs" />

+ 4 - 4
Dispatcher/Client/ClientApp.cs

@@ -17,7 +17,7 @@ namespace Client
         TaskHandler taskHandler;                   // 处理服务端发送的任务(监视下载状况等待)
         int maxTaskCount;                          // 能处理的最大任务数量, 影响是否拒绝服务器分发的任务
         string defaultFileDir;                     // 默认文件目录
-        private Action<SimpleMessageHandler> heartbeat;
+        private Action<int> heartbeat;
         IRevitCommandExcutor revitCommandExcutor;
         private Action<int> reconnectAction;
         public ClientApp(string ip, int port, string dir, int maxTaskCount, IRevitCommandExcutor revitCommandExcutor, int maxDownTaskCount=5) {
@@ -49,7 +49,7 @@ namespace Client
 
             // 起动心跳线程
             heartbeat = SendHeartbeat;
-            heartbeat.BeginInvoke(simpleHandler, null, null);
+            heartbeat.BeginInvoke(0, null, null);
 
             client.RunClientAsync(simpleHandler).Wait();
 
@@ -70,7 +70,7 @@ namespace Client
             }
         }
 
-        void SendHeartbeat(SimpleMessageHandler simpleHandler)
+        void SendHeartbeat(int nouse)
         {
             while (true)
             {
@@ -83,7 +83,7 @@ namespace Client
                 catch (Exception e)
                 {
                     Console.WriteLine(e);
-                    throw;
+                    Thread.Sleep(300*1000);
                 }
             }
         }

+ 6 - 2
Dispatcher/Client/app.config

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
   <appSettings>
-    <!--add key="IP" value="192.168.20.225" /-->
-    <add key="IP" value="47.94.89.44" />
+    <add key="IP" value="172.16.43.94" />
+    <!--<add key="IP" value="47.94.89.44" />-->
     <add key="Port" value="6666" />
     <add key="DownloadFileDir" value="E:\\" />
     <add key="MaxTaskCount" value="3" />
@@ -74,6 +74,10 @@
         <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="11.0.0.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
   <startup>

+ 3 - 0
Dispatcher/Client/packages.config

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
+  <package id="BouncyCastle" version="1.8.3.1" targetFramework="net461" />
   <package id="DotNetty.Buffers" version="0.6.0" targetFramework="net461" />
   <package id="DotNetty.Common" version="0.6.0" targetFramework="net461" />
   <package id="DotNetty.Transport" version="0.6.0" targetFramework="net461" />
@@ -14,8 +15,10 @@
   <package id="Microsoft.Extensions.Primitives" version="2.2.0" targetFramework="net461" />
   <package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net461" />
   <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net461" />
+  <package id="MySql.Data" version="8.0.18" targetFramework="net461" />
   <package id="NETStandard.Library" version="1.6.1" targetFramework="net461" />
   <package id="Newtonsoft.Json" version="11.0.1" targetFramework="net461" />
+  <package id="SSH.NET" version="2016.1.0" targetFramework="net461" />
   <package id="System.AppContext" version="4.3.0" targetFramework="net461" />
   <package id="System.Buffers" version="4.4.0" targetFramework="net461" />
   <package id="System.Collections" version="4.3.0" targetFramework="net461" />

+ 118 - 24
Dispatcher/NettyClient/NettyClient.csproj

@@ -34,87 +34,181 @@
     <StartupObject />
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="BouncyCastle.Crypto, Version=1.8.3.0, Culture=neutral, PublicKeyToken=0e99375e54769942">
+      <HintPath>..\..\packages\BouncyCastle.1.8.3.1\lib\BouncyCastle.Crypto.dll</HintPath>
+    </Reference>
     <Reference Include="DotNetty.Buffers, Version=0.6.0.0, Culture=neutral, PublicKeyToken=bc13ca065fa06c29, processorArchitecture=MSIL">
-      <HintPath>..\packages\DotNetty.Buffers.0.6.0\lib\net45\DotNetty.Buffers.dll</HintPath>
+      <HintPath>..\..\packages\DotNetty.Buffers.0.6.0\lib\net45\DotNetty.Buffers.dll</HintPath>
     </Reference>
     <Reference Include="DotNetty.Codecs, Version=0.6.0.0, Culture=neutral, PublicKeyToken=bc13ca065fa06c29, processorArchitecture=MSIL">
-      <HintPath>..\packages\DotNetty.Codecs.0.6.0\lib\net45\DotNetty.Codecs.dll</HintPath>
+      <HintPath>..\..\packages\DotNetty.Codecs.0.6.0\lib\net45\DotNetty.Codecs.dll</HintPath>
     </Reference>
     <Reference Include="DotNetty.Codecs.Protobuf, Version=0.6.0.0, Culture=neutral, PublicKeyToken=bc13ca065fa06c29, processorArchitecture=MSIL">
-      <HintPath>..\packages\DotNetty.Codecs.Protobuf.0.6.0\lib\net45\DotNetty.Codecs.Protobuf.dll</HintPath>
+      <HintPath>..\..\packages\DotNetty.Codecs.Protobuf.0.6.0\lib\net45\DotNetty.Codecs.Protobuf.dll</HintPath>
     </Reference>
     <Reference Include="DotNetty.Common, Version=0.6.0.0, Culture=neutral, PublicKeyToken=bc13ca065fa06c29, processorArchitecture=MSIL">
-      <HintPath>..\packages\DotNetty.Common.0.6.0\lib\net45\DotNetty.Common.dll</HintPath>
+      <HintPath>..\..\packages\DotNetty.Common.0.6.0\lib\net45\DotNetty.Common.dll</HintPath>
     </Reference>
     <Reference Include="DotNetty.Transport, Version=0.6.0.0, Culture=neutral, PublicKeyToken=bc13ca065fa06c29, processorArchitecture=MSIL">
-      <HintPath>..\packages\DotNetty.Transport.0.6.0\lib\net45\DotNetty.Transport.dll</HintPath>
+      <HintPath>..\..\packages\DotNetty.Transport.0.6.0\lib\net45\DotNetty.Transport.dll</HintPath>
     </Reference>
-    <Reference Include="Google.Protobuf, Version=3.2.0.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
-      <HintPath>..\packages\Google.Protobuf.3.2.0\lib\net45\Google.Protobuf.dll</HintPath>
+    <Reference Include="Google.Protobuf">
+      <HintPath>..\..\packages\Google.Protobuf.3.6.1\lib\net45\Google.Protobuf.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Configuration, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Configuration.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Configuration.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Configuration.Abstractions, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Configuration.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Configuration.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Configuration.Binder, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Configuration.Binder.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Configuration.Binder.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Logging, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Logging.1.1.1\lib\netstandard1.1\Microsoft.Extensions.Logging.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Logging.1.1.1\lib\netstandard1.1\Microsoft.Extensions.Logging.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.1.1.1\lib\netstandard1.1\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Logging.Abstractions.1.1.1\lib\netstandard1.1\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Options, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Options.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Options.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Options.ConfigurationExtensions, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Options.ConfigurationExtensions.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Options.ConfigurationExtensions.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.Extensions.Primitives, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Primitives.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
+      <HintPath>..\..\packages\Microsoft.Extensions.Primitives.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll</HintPath>
     </Reference>
     <Reference Include="System" />
+    <Reference Include="System.AppContext, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="System.Buffers, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
+      <HintPath>..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
     </Reference>
     <Reference Include="System.Collections.Immutable, Version=1.2.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath>
+      <HintPath>..\..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath>
     </Reference>
+    <Reference Include="System.ComponentModel" />
     <Reference Include="System.ComponentModel.Annotations, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.ComponentModel.Annotations.4.5.0\lib\net461\System.ComponentModel.Annotations.dll</HintPath>
+      <HintPath>..\..\packages\System.ComponentModel.Annotations.4.5.0\lib\net461\System.ComponentModel.Annotations.dll</HintPath>
     </Reference>
     <Reference Include="System.ComponentModel.Composition" />
     <Reference Include="System.ComponentModel.DataAnnotations" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Configuration.Install" />
+    <Reference Include="System.Console, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Console.4.3.0\lib\net46\System.Console.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="System.Core" />
     <Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
+      <HintPath>..\..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Drawing.Design" />
+    <Reference Include="System.Globalization.Calendars, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System.IO.Compression.FileSystem" />
+    <Reference Include="System.IO.Compression.ZipFile, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.IO.FileSystem, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.IO.FileSystem.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Management" />
     <Reference Include="System.Memory, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Memory.4.5.1\lib\netstandard2.0\System.Memory.dll</HintPath>
+      <HintPath>..\..\packages\System.Memory.4.5.1\lib\netstandard2.0\System.Memory.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Net.Sockets, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System.Numerics" />
     <Reference Include="System.Numerics.Vectors, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
+      <HintPath>..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
     </Reference>
+    <Reference Include="System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
     <Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
+      <HintPath>..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
+      <HintPath>..\..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
     </Reference>
+    <Reference Include="System.Transactions" />
     <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
     <Reference Include="Microsoft.CSharp" />
     <Reference Include="System.Data" />
     <Reference Include="System.Xml" />
+    <Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
     <Compile Include="ClientWrapper.cs" />

+ 5 - 1
Dispatcher/NettyClient/app.config

@@ -20,7 +20,7 @@
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Google.Protobuf" publicKeyToken="a7d26565bac4d604" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-3.4.0.0" newVersion="3.4.0.0" />
+        <bindingRedirect oldVersion="0.0.0.0-3.6.1.0" newVersion="3.6.1.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
@@ -70,6 +70,10 @@
         <assemblyIdentity name="DotNetty.Transport" publicKeyToken="bc13ca065fa06c29" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-0.6.0.0" newVersion="0.6.0.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
 </configuration>

+ 3 - 1
Dispatcher/NettyClient/packages.config

@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
+  <package id="BouncyCastle" version="1.8.3.1" targetFramework="net461" />
   <package id="DotNetty.Buffers" version="0.6.0" targetFramework="net461" />
   <package id="DotNetty.Codecs" version="0.6.0" targetFramework="net461" />
   <package id="DotNetty.Codecs.Protobuf" version="0.6.0" targetFramework="net461" />
   <package id="DotNetty.Common" version="0.6.0" targetFramework="net461" />
   <package id="DotNetty.Transport" version="0.6.0" targetFramework="net461" />
-  <package id="Google.Protobuf" version="3.2.0" targetFramework="net461" />
+  <package id="Google.Protobuf" version="3.6.1" targetFramework="net461" />
   <package id="Microsoft.Extensions.Configuration" version="2.2.0" targetFramework="net461" />
   <package id="Microsoft.Extensions.Configuration.Abstractions" version="2.2.0" targetFramework="net461" />
   <package id="Microsoft.Extensions.Configuration.Binder" version="2.2.0" targetFramework="net461" />
@@ -18,6 +19,7 @@
   <package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net461" />
   <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net461" />
   <package id="NETStandard.Library" version="1.6.1" targetFramework="net461" />
+  <package id="SSH.NET" version="2016.1.0" targetFramework="net461" />
   <package id="System.AppContext" version="4.3.0" targetFramework="net461" />
   <package id="System.Buffers" version="4.4.0" targetFramework="net461" />
   <package id="System.Collections" version="4.3.0" targetFramework="net461" />

二進制
Dispatcher/TaskDatabase/FakesAssemblies/Remotion.Linq.Fakes.dll


二進制
Dispatcher/TaskDatabase/FakesAssemblies/Remotion.Linq.Fakes.fakesconfig


+ 258 - 0
Dispatcher/TaskDatabase/FakesAssemblies/Remotion.Linq.Fakes.messages

@@ -0,0 +1,258 @@
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.AssertionConditionAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.AssertionConditionType 生成存根: 类型是一个值类型。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.AssertionMethodAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.BaseTypeRequiredAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.CanBeNullAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.CannotApplyEqualityOperatorAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.ContractAnnotationAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.ImplicitUseKindFlags 生成存根: 类型是一个值类型。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.ImplicitUseTargetFlags 生成存根: 类型是一个值类型。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.InstantHandleAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.InvokerParameterNameAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.LinqTunnelAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.LocalizationRequiredAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.MeansImplicitUseAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.NoEnumerationAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.NotifyPropertyChangedInvocatorAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.NotNullAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.PathReferenceAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.PublicAPIAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.PureAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.StringFormatMethodAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.TerminatesProgramAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.UsedImplicitlyAttribute 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Utilities.ArgumentUtility 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Utilities.Assertion 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Utilities.NullableTypeUtility 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.FromClauseBase 生成存根: 类型没有系列可见的构造函数。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.AdditionalFromClause 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.CloneContext 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.Expressions.SubQueryExpression 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.Expressions.VBStringComparisonExpression 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ExpressionVisitors.AccessorFindingExpressionVisitor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ExpressionVisitors.CloningExpressionVisitor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ExpressionVisitors.ReferenceReplacingExpressionVisitor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ExpressionVisitors.ReverseResolvingExpressionVisitor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.GroupJoinClause 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.JoinClause 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.MainFromClause 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.OrderByClause 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.Ordering 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.OrderingDirection 生成存根: 类型是一个值类型。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.QuerySourceMapping 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.AllResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.AnyResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.AsQueryableResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.AverageResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.CastResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.ConcatResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.CountResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.DefaultIfEmptyResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.DistinctResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.ExceptResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.FirstResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.GroupResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.IntersectResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.LastResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.LongCountResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.MaxResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.MinResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.OfTypeResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.ReverseResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.SingleResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.SkipResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.SumResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.TakeResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.UnionResultOperator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.SelectClause 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.StreamedData.StreamedValueInfo 生成存根: 类型没有系列可见的构造函数。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.StreamedData.StreamedScalarValueInfo 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.StreamedData.StreamedSequence 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.StreamedData.StreamedSingleValueInfo 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.StreamedData.StreamedValue 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.WhereClause 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Collections.ChangeResistantObservableCollectionEnumerator`1 生成存根: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Collections.IndexValuePair`1 生成存根: 类型是一个值类型。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Collections.MultiDictionaryExtensions 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Collections.ObservableCollectionExtensions 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.QueryProviderBase 生成存根: 类型包含会导致编译错误的过时成员。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.DefaultQueryProvider 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.MultiReplacingExpressionVisitor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.PartialEvaluatingExpressionVisitor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.ReplacingExpressionVisitor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.SubQueryFindingExpressionVisitor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.TransformingExpressionVisitor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.TransparentIdentifierRemovingExpressionVisitor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.EvaluatableTreeFindingExpressionVisitor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.NullEvaluatableExpressionFilter 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ParserException 生成存根: 类型没有系列可见的构造函数。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.ExpressionTreeParser 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.CompoundExpressionTreeProcessor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.NullExpressionTreeProcessor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.PartialEvaluatingExpressionTreeProcessor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.TransformingExpressionTreeProcessor 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.AggregateExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.AggregateFromSeedExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.AllExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.AnyExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.AsQueryableExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.AverageExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.CastExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext 生成存根: 类型是一个值类型。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ConcatExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ContainsExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.CountExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.DefaultIfEmptyExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.DistinctExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ExceptExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ExpressionNodeInstantiationException 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ExpressionResolver 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.FirstExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.GroupByExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.GroupByWithResultSelectorExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.GroupJoinExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.IntersectExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.JoinExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.LastExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.LongCountExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.MainSourceExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.MaxExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeFactory 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo 生成存根: 类型是一个值类型。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.MinExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.OfTypeExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.OrderByDescendingExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.OrderByExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.QuerySourceExpressionNodeUtility 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ResolvedExpressionCache`1 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ReverseExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.SelectManyExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.SingleExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.SkipExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.SumExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.SupportedMethodSpecifications 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.TakeExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ThenByDescendingExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ThenByExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.UnionExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.WhereExpressionNode 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.MethodCallExpressionParser 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodNameBasedNodeTypeRegistry 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.NodeTypeProviders.NameBasedRegistrationInfo 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.QueryParser 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.TupleExpressionBuilder 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.QueryModel 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.QueryModelBuilder 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.UniqueIdentifierGenerator 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Utilities.ExpressionExtensions 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Utilities.ItemTypeReflectionUtility 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 System.Reflection.ReflectionExtensions 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Utilities.ReflectionUtility 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Utilities.StringUtility 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 <>f__AnonymousType0`2 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 <>f__AnonymousType1`3 生成存根: 类型已密封。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.AssertionConditionAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.AssertionConditionType 生成填充码: 类型是一个枚举。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.AssertionMethodAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.BaseTypeRequiredAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.CanBeNullAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.CannotApplyEqualityOperatorAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.ContractAnnotationAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.ImplicitUseKindFlags 生成填充码: 类型是一个枚举。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.ImplicitUseTargetFlags 生成填充码: 类型是一个枚举。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.InstantHandleAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.InvokerParameterNameAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.LinqTunnelAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.LocalizationRequiredAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.MeansImplicitUseAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.NoEnumerationAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.NotifyPropertyChangedInvocatorAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.NotNullAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.PathReferenceAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.PublicAPIAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.PureAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.StringFormatMethodAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.TerminatesProgramAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 JetBrains.Annotations.UsedImplicitlyAttribute 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Utilities.ArgumentUtility 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Utilities.Assertion 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Utilities.NullableTypeUtility 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.IClause 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.IQuerySource 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.IFromClause 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.IBodyClause 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.Expressions.IPartialEvaluationExceptionExpressionVisitor 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.Expressions.IVBSpecificExpressionVisitor 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.RelinqExpressionVisitor+<AdjustArgumentsForNewExpression>d__0 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.OrderingDirection 生成填充码: 类型是一个枚举。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.ResultOperators.AsQueryableResultOperator+ISupportedByIQueryModelVistor 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.StreamedData.IStreamedData 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Collections.ChangeResistantObservableCollectionEnumerator`1 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Collections.IndexValuePair`1 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Collections.MultiDictionaryExtensions 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Collections.ObservableCollectionExtensions 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.IQueryExecutor 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.IQueryModelVisitor 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation 生成填充码: 类型是一个委托。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry+<>c__DisplayClass1`1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.AttributeEvaluatingExpressionTransformer+IMethodCallExpressionTransformerAttribute 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.TupleNewExpressionTransformer+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.TransparentIdentifierRemovingExpressionVisitor+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.TransparentIdentifierRemovingExpressionVisitor+<GetMemberBindingsForNewExpression>d__7 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.NullEvaluatableExpressionFilter 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.ParserException 生成填充码: 类型已过时。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.INodeTypeProvider 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.AggregateExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.AggregateFromSeedExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.AllExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ContainsExpressionNode+<GetSupportedMethodNames>d__2 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.CountExpressionNode+<GetSupportedMethods>d__0 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.GroupByExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.GroupByExpressionNode+<>c__DisplayClass4 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.GroupJoinExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.JoinExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.JoinExpressionNode+<>c__DisplayClass4 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.JoinExpressionNode+<>c__DisplayClass7 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.LongCountExpressionNode+<GetSupportedMethods>d__0 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.OrderByDescendingExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.OrderByExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.SelectManyExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.SelectManyExpressionNode+<>c__DisplayClass4 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.SupportedMethodSpecifications 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ThenByDescendingExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.ThenByExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IntermediateModel.WhereExpressionNode+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.IQueryParser 生成填充码: 类型是一个接口。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider+<>c__DisplayClass1 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider+<>c__DisplayClass6 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry+<>c__DisplayClass10 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry+<>c__DisplayClass16 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry+<>c__DisplayClass3 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodNameBasedNodeTypeRegistry+<>c__DisplayClass3 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Parsing.TupleExpressionBuilder+<GetExpressionsFromTuple>d__2 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.QueryModel+CloningExpressionVisitor 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Transformations.SubQueryFromClauseFlattener+<>c__DisplayClass2 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Utilities.ExpressionExtensions 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 System.Reflection.ReflectionExtensions 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Utilities.ReflectionUtility 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 Remotion.Linq.Utilities.StringUtility 生成填充码: 类型对 exported or assembly(Remotion.Linq.Fakes) 不可见。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 <>f__AnonymousType0`2 生成填充码: 类型不受支持,因为存在内部限制。
+D:\Saga\ServiceRevit\Dispatcher\TaskDatabase\Fakes\Remotion.Linq.fakes : warning : 无法为 <>f__AnonymousType1`3 生成填充码: 类型不受支持,因为存在内部限制。

文件差異過大導致無法顯示
+ 11450 - 0
Dispatcher/TaskDatabase/FakesAssemblies/Remotion.Linq.Fakes.xml


+ 7 - 4
Dispatcher/TaskDatabase/TaskDatabase.csproj

@@ -32,19 +32,22 @@
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f, processorArchitecture=MSIL">
-      <HintPath>..\packages\Antlr3.Runtime.3.5.1\lib\net40-client\Antlr3.Runtime.dll</HintPath>
+      <HintPath>..\..\packages\Antlr3.Runtime.3.5.1\lib\net40-client\Antlr3.Runtime.dll</HintPath>
     </Reference>
     <Reference Include="Iesi.Collections, Version=4.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
-      <HintPath>..\packages\Iesi.Collections.4.0.4\lib\net461\Iesi.Collections.dll</HintPath>
+      <HintPath>..\..\packages\Iesi.Collections.4.0.4\lib\net461\Iesi.Collections.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.QualityTools.Testing.Fakes, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
     </Reference>
     <Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <HintPath>..\..\packages\Newtonsoft.Json.11.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
     </Reference>
     <Reference Include="NHibernate, Version=5.2.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
-      <HintPath>..\packages\NHibernate.5.2.0\lib\net461\NHibernate.dll</HintPath>
+      <HintPath>..\..\packages\NHibernate.5.2.7\lib\net461\NHibernate.dll</HintPath>
     </Reference>
     <Reference Include="Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b, processorArchitecture=MSIL">
-      <HintPath>..\packages\Remotion.Linq.2.2.0\lib\net45\Remotion.Linq.dll</HintPath>
+      <HintPath>..\..\packages\Remotion.Linq.2.2.0\lib\net45\Remotion.Linq.dll</HintPath>
     </Reference>
     <Reference Include="Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b, processorArchitecture=MSIL">
       <HintPath>..\packages\Remotion.Linq.EagerFetching.2.2.0\lib\net45\Remotion.Linq.EagerFetching.dll</HintPath>

+ 3 - 1
Dispatcher/TaskDatabase/TaskService.cs

@@ -34,11 +34,13 @@ namespace TaskDatabase
                             }
                             transaction.Commit();
                         }
-                        catch {
+                        catch (Exception ex){
                             if (transaction != null && transaction.IsActive)
                             {
                                 transaction.Rollback();
                             }
+                            Console.WriteLine(ex.Message);
+                            return false;
                         }
                     }
                 }

+ 1 - 1
Dispatcher/TaskDatabase/packages.config

@@ -3,7 +3,7 @@
   <package id="Antlr3.Runtime" version="3.5.1" targetFramework="net461" />
   <package id="Iesi.Collections" version="4.0.4" targetFramework="net461" />
   <package id="Newtonsoft.Json" version="11.0.1" targetFramework="net461" />
-  <package id="NHibernate" version="5.2.0" targetFramework="net461" />
+  <package id="NHibernate" version="5.2.7" targetFramework="net461" />
   <package id="Remotion.Linq" version="2.2.0" targetFramework="net461" />
   <package id="Remotion.Linq.EagerFetching" version="2.2.0" targetFramework="net461" />
 </packages>

+ 1 - 0
Executer/DataCheck/ServiceDataCheck.csproj

@@ -11,6 +11,7 @@
     <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <PlatformTarget>AnyCPU</PlatformTarget>

+ 10 - 10
Executer/DataCheck/app.config

@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
   <runtime>
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
-        <assemblyIdentity name="NPOI" publicKeyToken="0df73ec7942b34e1" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.3.0.0" newVersion="2.3.0.0" />
+        <assemblyIdentity name="NPOI" publicKeyToken="0df73ec7942b34e1" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-2.3.0.0" newVersion="2.3.0.0"/>
       </dependentAssembly>
       <dependentAssembly>
-        <assemblyIdentity name="NPOI.OOXML" publicKeyToken="0df73ec7942b34e1" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.3.0.0" newVersion="2.3.0.0" />
+        <assemblyIdentity name="NPOI.OOXML" publicKeyToken="0df73ec7942b34e1" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-2.3.0.0" newVersion="2.3.0.0"/>
       </dependentAssembly>
       <dependentAssembly>
-        <assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.0.0.999" newVersion="1.0.0.999" />
+        <assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-1.0.0.999" newVersion="1.0.0.999"/>
       </dependentAssembly>
       <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0"/>
       </dependentAssembly>
     </assemblyBinding>
   </runtime>
-</configuration>
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/></startup></configuration>

+ 1 - 0
Executer/DataExport/JBIM/JBIM.csproj

@@ -14,6 +14,7 @@
     <WarningLevel>4</WarningLevel>
     <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
     <Deterministic>true</Deterministic>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <PlatformTarget>AnyCPU</PlatformTarget>

+ 26 - 34
Executer/DataExport/JBIM/Properties/Resources.Designer.cs

@@ -1,69 +1,61 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     此代码由工具生成。
-//     运行时版本: 4.0.30319.42000
+//     运行时版本:4.0.30319.42000
 //
-//     对此文件的更改可能导致不正确的行为,如果
-//     重新生成代码,则所做更改将丢失。
+//     对此文件的更改可能导致不正确的行为,并且如果
+//     重新生成代码,这些更改将会丢失。
 // </auto-generated>
 //------------------------------------------------------------------------------
 
-namespace JBIM.Properties
-{
-
-
+namespace JBIM.Properties {
+    using System;
+    
+    
     /// <summary>
-    ///   强类型资源类,用于查找本地化字符串等。
+    ///   一个强类型资源类,用于查找本地化字符串等。
     /// </summary>
     // 此类是由 StronglyTypedResourceBuilder
     // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
-    // 若要添加或除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+    // 若要添加或除成员,请编辑 .ResX 文件,然后重新运行 ResGen
     // (以 /str 作为命令选项),或重新生成 VS 项目。
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Resources
-    {
-
+    internal class Resources {
+        
         private static global::System.Resources.ResourceManager resourceMan;
-
+        
         private static global::System.Globalization.CultureInfo resourceCulture;
-
+        
         [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Resources()
-        {
+        internal Resources() {
         }
-
+        
         /// <summary>
-        ///   返回此类使用的缓存 ResourceManager 实例。
+        ///   返回此类使用的缓存 ResourceManager 实例。
         /// </summary>
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager
-        {
-            get
-            {
-                if ((resourceMan == null))
-                {
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
                     global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("JBIM.Properties.Resources", typeof(Resources).Assembly);
                     resourceMan = temp;
                 }
                 return resourceMan;
             }
         }
-
+        
         /// <summary>
-        ///   覆盖当前线程的 CurrentUICulture 属性
-        ///   使用此强类型的资源类的资源查找
+        ///   重写当前线程的 CurrentUICulture 属性
+        ///   重写当前线程的 CurrentUICulture 属性
         /// </summary>
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture
-        {
-            get
-            {
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
                 return resourceCulture;
             }
-            set
-            {
+            set {
                 resourceCulture = value;
             }
         }

+ 13 - 17
Executer/DataExport/JBIM/Properties/Settings.Designer.cs

@@ -1,28 +1,24 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
+//     此代码由工具生成。
+//     运行时版本:4.0.30319.42000
 //
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
+//     对此文件的更改可能会导致不正确的行为,并且如果
+//     重新生成代码,这些更改将会丢失。
 // </auto-generated>
 //------------------------------------------------------------------------------
 
-namespace JBIM.Properties
-{
-
-
+namespace JBIM.Properties {
+    
+    
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
-    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
-    {
-
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
         private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
-        public static Settings Default
-        {
-            get
-            {
+        
+        public static Settings Default {
+            get {
                 return defaultInstance;
             }
         }

+ 3 - 3
Executer/DataExport/RevitToJBim/MbiExport.cs

@@ -43,17 +43,17 @@ namespace RevitToJBim
                  * 增加一些和JBIM无关,又和当前业务逻辑相关的属性
                  */
                 var json = BimJsonUtil.Serializer(mbiDocument);
-                //var json = File.ReadAllText(@"C:\Users\SAGACLOUD\Desktop\新建文件夹\88.rvt_20191220105510.json");
+                //var json = File.ReadAllText(@"E:\88.rvt_20191219141937.json");
 #if DEBUG
                 //保存到本地
                 string fileName = DateTime.Now.ToString("yyyyMMddHHmmss");
                 string path = Path.Combine($"{document.PathName}_{fileName}.json");
                 File.WriteAllText(path, json.ToString());
 #endif
-                Log4Net.Info("Begin UploadExportFile");
+                Log4Net.Debug("Begin UploadExportFile");
                 var resultResponse = UploadService.UploadExportFile(json);
                 result = BimJsonUtil.Serializer((ResultBase)resultResponse);
-                Log4Net.Info("End UploadExportFile");
+                Log4Net.Debug("End UploadExportFile");
 
             }
             catch (Exception ex)

+ 1 - 0
Executer/DataExport/RevitToJBim/RevitToJBim.csproj

@@ -12,6 +12,7 @@
     <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <Deterministic>true</Deterministic>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>

+ 4 - 4
Executer/DataExport/RevitToJBim/app.config

@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
   <runtime>
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0"/>
       </dependentAssembly>
     </assemblyBinding>
   </runtime>
-</configuration>
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/></startup></configuration>

+ 6 - 1
Executer/MBIRevitBase/Tools/HttpUtils.cs

@@ -10,6 +10,7 @@ using System.Diagnostics;
 using System.IO;
 using System.Net.Http;
 using MBIRevitBase.Result;
+using SAGA.DotNetUtils.Logger;
 
 namespace MBIRevitBase.Tools
 {
@@ -89,10 +90,12 @@ namespace MBIRevitBase.Tools
                     content.Add(streamContent, "file", "file.zip");
 
                     #endregion
-
+                    Log4Net.Debug("UploadStart");
                     var tt = client.PostAsync(url, content);
+                    Log4Net.Debug("UploadEnd ");
                     var result = tt.Result;
 
+                    Log4Net.Debug("UploadEnd "+ result.IsSuccessStatusCode);
                     if (result.IsSuccessStatusCode)
                     {
                         rslt = (HttpResult) result.Content.ReadAsStringAsync().Result;
@@ -104,10 +107,12 @@ namespace MBIRevitBase.Tools
                 }
                 catch (Exception e)
                 {
+                    Log4Net.Debug("Upload Exception ");
                     throw new Exception(e.ToString());
                 }
                 finally
                 {
+                    Log4Net.Debug("Upload finally ");
                     client.Dispose();
                 }
             }

+ 1 - 0
Starter/StartVisionSelector/StartVisionSelector.csproj

@@ -11,6 +11,7 @@
     <AssemblyName>StartVisionSelector</AssemblyName>
     <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>

+ 4 - 4
Starter/StartVisionSelector/app.config

@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
   <runtime>
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0"/>
       </dependentAssembly>
     </assemblyBinding>
   </runtime>
-</configuration>
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/></startup></configuration>

+ 4 - 4
Starter/Starter/App.config

@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
     <startup> 
-        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
     </startup>
   <runtime>
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0"/>
       </dependentAssembly>
     </assemblyBinding>
   </runtime>