I'm tring to migrating old console extensions to the new style, but I'm not sure if I have packed the CAB file correctly.
Here is Manifest.xml and node.xml.
<CustomExtensionManifest ExtensionID="678ACD1E-5616-4656-91A3-90FFA20F17FA" Name="超聚变" Description="XFUSION" Version="1.3" Author="XFUSION">
<Deployments>
<NodeExtensionDeployment ParentNode="f10d0965-4b26-4e37-aab5-5400fbbc8eaa">
<FileList>
<File Name="xFusion_zh-cn.xml">
<Hash Algorithm="sha256">7df12842ef993102a1e71b16b424dbdaf2dee859c82e029588bb4c28fd0f946c</Hash>
</File>
</FileList>
</NodeExtensionDeployment>
<CabExtensionDeployment>
<FileList>
<File Name="Output.cab">
<Hash Algorithm="sha256">ee31537178b1245e5cf0cb02e57187df0ab64302c7e3f8a85000a3dba08b61a7</Hash>
</File>
</FileList>
</CabExtensionDeployment>
</Deployments>
</CustomExtensionManifest>
In addition, I put DLL files, JS files and other files in ouput.cab.
Here is my cab file structure.
When I import this cab file, Configuration Manager sometimes prompts that the operation times out, and sometimes reports an OutOfMemoryException.
Here is the SmsAdminUI.log.
[13, PID:9196][06/08/2022 19:28:54] :System.Net.WebException: 操作超时
[13, PID:9196][06/08/2022 19:28:54] :Failed to get a response for OData POST request: https://mem.plugin.xfusion.com/AdminService/v1.0/ConsoleExtensionMetadata/AdminService.UploadExtensionInChunks
[13, PID:9196][06/08/2022 19:28:54] :Microsoft.ConfigurationManagement.ManagementProvider.ODataConnectionException\r\nTimeout\r\n 在 Microsoft.ConfigurationManager.CloudBase.ODataServiceCaller.ODataServiceCaller.HandleException(Exception ex, Uri requestUri, String httpMethod)
在 Microsoft.ConfigurationManager.CloudBase.ODataServiceCaller.ODataServiceCaller.ExecutePost(String queryUrl, ICollection`1 extraHeaders, String postBody)
在 Microsoft.ConfigurationManagement.ManagementProvider.ODataQueryEngine.ODataConnectionManager.ExecuteMethod(String address, String body)
在 Microsoft.ConfigurationManagement.AdminConsole.UpdateInstallation.ChooseExtensionFileControl.PostApply(BackgroundWorker worker, DoWorkEventArgs e)\r\n操作超时
\r\nSystem.Net.WebException\r\n操作超时\r\n 在 System.Net.HttpWebRequest.GetResponse()
在 Microsoft.ConfigurationManager.CloudBase.ODataServiceCaller.HttpCallerWithCustomCertValidation.HttpPostRequest(Uri address, ICollection`1 extraHeaders, Byte[] body)
在 Microsoft.ConfigurationManager.CloudBase.ODataServiceCaller.ODataServiceCaller.ExecutePost(String queryUrl, ICollection`1 extraHeaders, String postBody)\r\n
----------
[10, PID:3928][06/09/2022 16:18:21] :System.OutOfMemoryException\r\n引发类型为“System.OutOfMemoryException”的异常。\r\n 在 Newtonsoft.Json.JsonTextReader.PrepareBufferForReadData(Boolean append, Int32 charsRequired)
在 Newtonsoft.Json.JsonTextReader.ReadData(Boolean append, Int32 charsRequired)
在 Newtonsoft.Json.JsonTextReader.ReadStringIntoBuffer(Char quote)
在 Newtonsoft.Json.JsonTextReader.ParseString(Char quote, ReadType readType)
在 Newtonsoft.Json.JsonTextReader.ParseValue()
在 Newtonsoft.Json.JsonTextReader.Read()
在 Newtonsoft.Json.JsonWriter.WriteToken(JsonReader reader, Boolean writeChildren, Boolean writeDateConstructorAsDate, Boolean writeComments)
在 Newtonsoft.Json.Linq.JTokenWriter.WriteToken(JsonReader reader, Boolean writeChildren, Boolean writeDateConstructorAsDate, Boolean writeComments)
在 Newtonsoft.Json.JsonWriter.WriteToken(JsonReader reader, Boolean writeChildren)
在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateJToken(JsonReader reader, JsonContract contract)
在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
在 Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
在 Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
在 Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
在 Microsoft.ConfigurationManager.CloudBase.ODataServiceCaller.ODataServiceCaller.GetJObjectFromHttpWebResponse(HttpWebResponse response)
在 Microsoft.ConfigurationManager.CloudBase.ODataServiceCaller.ODataServiceCaller.ExecutePost(String queryUrl, ICollection`1 extraHeaders, String postBody)
在 Microsoft.ConfigurationManagement.ManagementProvider.ODataQueryEngine.ODataConnectionManager.ExecuteMethod(String address, String body)
在 Microsoft.ConfigurationManagement.AdminConsole.UpdateInstallation.ChooseExtensionFileControl.PostApply(BackgroundWorker worker, DoWorkEventArgs e)\r\n
So, What's wrong with my extension?
Thanks.