Commit bc4e2a9c 刘韬

修正 字符串切割去掉空的错误

1 个父辈 1df51b97
...@@ -43,15 +43,21 @@ ...@@ -43,15 +43,21 @@
<Reference Include="Asa.Face.Control"> <Reference Include="Asa.Face.Control">
<HintPath>..\SharedDll\Asa.Face.Control.dll</HintPath> <HintPath>..\SharedDll\Asa.Face.Control.dll</HintPath>
</Reference> </Reference>
<Reference Include="ClosedXML, Version=0.96.0.0, Culture=neutral, PublicKeyToken=fd1eb21b62ae805b, processorArchitecture=MSIL"> <Reference Include="ClosedXML, Version=0.105.0.0, Culture=neutral, PublicKeyToken=fd1eb21b62ae805b, processorArchitecture=MSIL">
<HintPath>..\packages\ClosedXML.0.96.0\lib\net46\ClosedXML.dll</HintPath> <HintPath>..\packages\ClosedXML.0.105.0\lib\netstandard2.0\ClosedXML.dll</HintPath>
</Reference>
<Reference Include="ClosedXML.Parser, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1d5f7376574c51ec, processorArchitecture=MSIL">
<HintPath>..\packages\ClosedXML.Parser.2.0.0\lib\netstandard2.0\ClosedXML.Parser.dll</HintPath>
</Reference> </Reference>
<Reference Include="ConfigHelper, Version=1.0.0.2, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="ConfigHelper, Version=1.0.0.2, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\SharedDll\ConfigHelper.dll</HintPath> <HintPath>..\SharedDll\ConfigHelper.dll</HintPath>
</Reference> </Reference>
<Reference Include="DocumentFormat.OpenXml, Version=2.16.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL"> <Reference Include="DocumentFormat.OpenXml, Version=3.1.1.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
<HintPath>..\packages\DocumentFormat.OpenXml.2.16.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath> <HintPath>..\packages\DocumentFormat.OpenXml.3.1.1\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
</Reference>
<Reference Include="DocumentFormat.OpenXml.Framework, Version=3.1.1.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
<HintPath>..\packages\DocumentFormat.OpenXml.Framework.3.1.1\lib\net46\DocumentFormat.OpenXml.Framework.dll</HintPath>
</Reference> </Reference>
<Reference Include="ExcelNumberFormat, Version=1.1.0.0, Culture=neutral, PublicKeyToken=23c6f5d73be07eca, processorArchitecture=MSIL"> <Reference Include="ExcelNumberFormat, Version=1.1.0.0, Culture=neutral, PublicKeyToken=23c6f5d73be07eca, processorArchitecture=MSIL">
<HintPath>..\packages\ExcelNumberFormat.1.1.0\lib\net20\ExcelNumberFormat.dll</HintPath> <HintPath>..\packages\ExcelNumberFormat.1.1.0\lib\net20\ExcelNumberFormat.dll</HintPath>
...@@ -59,6 +65,9 @@ ...@@ -59,6 +65,9 @@
<Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL"> <Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.12\lib\net45\log4net.dll</HintPath> <HintPath>..\packages\log4net.2.0.12\lib\net45\log4net.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Bcl.HashCode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll</HintPath>
</Reference>
<Reference Include="MvCameraControl.Net, Version=3.2.0.2, Culture=neutral, PublicKeyToken=52fddfb3f94be800, processorArchitecture=AMD64"> <Reference Include="MvCameraControl.Net, Version=3.2.0.2, Culture=neutral, PublicKeyToken=52fddfb3f94be800, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\IDHIKCamera\bin\Debug\MvCameraControl.Net.dll</HintPath> <HintPath>..\..\..\..\IDHIKCamera\bin\Debug\MvCameraControl.Net.dll</HintPath>
...@@ -70,13 +79,32 @@ ...@@ -70,13 +79,32 @@
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="PresentationFramework" /> <Reference Include="PresentationFramework" />
<Reference Include="RBush, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c77e27b81f4d0187, processorArchitecture=MSIL">
<HintPath>..\packages\RBush.Signed.4.0.0\lib\net47\RBush.dll</HintPath>
</Reference>
<Reference Include="RestSharp, Version=106.11.7.0, Culture=neutral, PublicKeyToken=598062e77f915f75, processorArchitecture=MSIL"> <Reference Include="RestSharp, Version=106.11.7.0, Culture=neutral, PublicKeyToken=598062e77f915f75, processorArchitecture=MSIL">
<HintPath>..\packages\RestSharp.106.11.7\lib\net452\RestSharp.dll</HintPath> <HintPath>..\packages\RestSharp.106.11.7\lib\net452\RestSharp.dll</HintPath>
</Reference> </Reference>
<Reference Include="SixLabors.Fonts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d998eea7b14cab13, processorArchitecture=MSIL">
<HintPath>..\packages\SixLabors.Fonts.1.0.0\lib\netstandard2.0\SixLabors.Fonts.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Web" /> <Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" /> <Reference Include="System.Web.Extensions" />
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
...@@ -141,6 +169,7 @@ ...@@ -141,6 +169,7 @@
<Compile Include="UsersLogin.cs" /> <Compile Include="UsersLogin.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="app.config" />
<None Include="packages.config" /> <None Include="packages.config" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
......
...@@ -251,11 +251,11 @@ namespace BLL ...@@ -251,11 +251,11 @@ namespace BLL
{ {
if (key.ContainsKey("DataTime")) if (key.ContainsKey("DataTime"))
{ {
key["DataTime"] = DateTime.Now.ToString("yyyy.MM.dd"); key["DataTime"] = DateTime.Now.ToString("dd-MM-yyyy");
} }
else else
{ {
key.Add("DataTime", DateTime.Now.ToString("yyyy.MM.dd")); key.Add("DataTime", DateTime.Now.ToString("dd-MM-yyyy"));
} }
} }
if (extensions != null && !extensions[0].Control.InvokeRequired) if (extensions != null && !extensions[0].Control.InvokeRequired)
......
...@@ -36,6 +36,7 @@ namespace BLL ...@@ -36,6 +36,7 @@ namespace BLL
} }
public static void AddMatch(string matchKey, bool isMatch, int codeID, string colName,string matchDesc) { public static void AddMatch(string matchKey, bool isMatch, int codeID, string colName,string matchDesc) {
LogNet.log.Info($"Match {matchKey},isMatch:{isMatch},{colName},matchDesc:{matchDesc}");
Match match = new Match(matchKey, isMatch, codeID, colName,matchDesc); Match match = new Match(matchKey, isMatch, codeID, colName,matchDesc);
var ms = MatchTemplateList[CurrnetTemplateName].BarcodeMatchs[CurrnetBarcode.Text].MatchCollections; var ms = MatchTemplateList[CurrnetTemplateName].BarcodeMatchs[CurrnetBarcode.Text].MatchCollections;
......
...@@ -6,6 +6,7 @@ using System.Collections.Generic; ...@@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text.RegularExpressions;
using System.Xml; using System.Xml;
namespace BLL namespace BLL
...@@ -37,7 +38,7 @@ namespace BLL ...@@ -37,7 +38,7 @@ namespace BLL
MaterialTemplate temp = LoadFile(xmlFile[i], jpgFile[i]); MaterialTemplate temp = LoadFile(xmlFile[i], jpgFile[i]);
mateTemp.Add(temp); mateTemp.Add(temp);
} }
mateTemp = mateTemp.OrderBy(x=>x.Name).ToList(); mateTemp = mateTemp.OrderBy(x => x.Name).ToList();
} }
public string[] Name public string[] Name
...@@ -136,9 +137,9 @@ namespace BLL ...@@ -136,9 +137,9 @@ namespace BLL
/// <param name="keyword">关键字和对应的内容</param> /// <param name="keyword">关键字和对应的内容</param>
/// <param name="isCodeUsed"></param> /// <param name="isCodeUsed"></param>
/// <returns></returns> /// <returns></returns>
public bool MatchingTemplate(List<BarcodeInfo> code, string firstMaterial, bool analyisMode, out string mateName, out Dictionary<string, string> keyword,out AMatch aMatch) public bool MatchingTemplate(List<BarcodeInfo> code, string firstMaterial, bool analyisMode, out string mateName, out Dictionary<string, string> keyword, out AMatch aMatch)
{ {
aMatch = new AMatch(); aMatch = new AMatch();
if (Directory.Exists("ocr")) if (Directory.Exists("ocr"))
Directory.Delete("ocr", true); Directory.Delete("ocr", true);
...@@ -161,7 +162,7 @@ namespace BLL ...@@ -161,7 +162,7 @@ namespace BLL
//CurrntBitmap?.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg); //CurrntBitmap?.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);
LogNet.log.Info($"开始保存图片:{filePath}"); LogNet.log.Info($"开始保存图片:{filePath}");
CurrntBitmap?.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg); CurrntBitmap?.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);
LogNet.log.Info($"保存图片"); LogNet.log.Info($"保存图片");
regOcrCodes = OcrRecognize($"{currentDirectory}\\ocr.jpg"); regOcrCodes = OcrRecognize($"{currentDirectory}\\ocr.jpg");
LogNet.log.Info($"保存地址:{filePath};获取地址:{currentDirectory}\\ocr.jpg"); LogNet.log.Info($"保存地址:{filePath};获取地址:{currentDirectory}\\ocr.jpg");
...@@ -172,7 +173,7 @@ namespace BLL ...@@ -172,7 +173,7 @@ namespace BLL
int firstIndex = mateTemp.FindIndex(math => math.Name == firstMaterial); int firstIndex = mateTemp.FindIndex(math => math.Name == firstMaterial);
if (firstIndex > -1) if (firstIndex > -1)
{ {
if (TemplateExtract(firstIndex, code, out keyword,out aMatch)) if (TemplateExtract(firstIndex, code, out keyword, out aMatch))
{ {
//if (string.IsNullOrEmpty(mateName)) //if (string.IsNullOrEmpty(mateName))
mateName = mateTemp[firstIndex].Name; mateName = mateTemp[firstIndex].Name;
...@@ -395,13 +396,13 @@ namespace BLL ...@@ -395,13 +396,13 @@ namespace BLL
xmlDoc.Save(temp.FilePath); xmlDoc.Save(temp.FilePath);
temp.State = TemplateState.Saved; temp.State = TemplateState.Saved;
} }
private bool TemplateExtract(int index, List<BarcodeInfo> code, out Dictionary<string, string> keyword, out AMatch aMatch) private bool TemplateExtract(int index, List<BarcodeInfo> code, out Dictionary<string, string> keyword, out AMatch aMatch)
{ {
aMatch = new AMatch(); aMatch = new AMatch();
bool Islable= true; bool Islable = true;
keyword = new(StringComparer.OrdinalIgnoreCase); keyword = new(StringComparer.OrdinalIgnoreCase);
aMatch.IsCodeUsed = new bool[code.Count]; aMatch.IsCodeUsed = new bool[code.Count];
int matchCount = 0; int matchCount = 0;
...@@ -421,18 +422,18 @@ namespace BLL ...@@ -421,18 +422,18 @@ namespace BLL
for (int j = 0; j < code.Count; j++) for (int j = 0; j < code.Count; j++)
{ {
Dictionary<string, string> matchKey = CodeMatch(code[j], codeMatch,out bool isIdentification); Dictionary<string, string> matchKey = CodeMatch(code[j], codeMatch, out bool isIdentification);
if (matchKey != null && matchKey.Count > 0) if (matchKey != null && matchKey.Count > 0)
{ {
foreach (string key in matchKey.Keys) foreach (string key in matchKey.Keys)
{ {
if (!keyword.ContainsKey(key)) if (!keyword.ContainsKey(key))
{ {
if (isIdentification&& Islable) if (isIdentification && Islable)
{ {
Islable = false; Islable = false;
aMatch.IsCodeUsed[j] = true; aMatch.IsCodeUsed[j] = true;
aMatch.Points= new Point((int)code[j].Center.X, (int)code[j].Center.Y); aMatch.Points = new Point((int)code[j].Center.X, (int)code[j].Center.Y);
aMatch.Angle = (int)code[j].Angle; aMatch.Angle = (int)code[j].Angle;
aMatch.CodeType = code[j].CodeType; aMatch.CodeType = code[j].CodeType;
} }
...@@ -445,6 +446,7 @@ namespace BLL ...@@ -445,6 +446,7 @@ namespace BLL
} }
} }
LogNet.log.Info($"{mateTemp[index].Name} 匹配数量 [关键字数量:{keyword.Count} = 匹配数量:{matchCount}]");
if (matchCount != 0 && keyword.Count == matchCount) if (matchCount != 0 && keyword.Count == matchCount)
{ {
isMatch = true; isMatch = true;
...@@ -457,13 +459,13 @@ namespace BLL ...@@ -457,13 +459,13 @@ namespace BLL
if (ocrCount > 0) if (ocrCount > 0)
{ {
LogNet.log.Info($"{mateTemp[index].Name} 开始OCR匹配 [{ocrCount}]"); LogNet.log.Info($"{mateTemp[index].Name} 开始OCR匹配 [{ocrCount}]");
// for (int i = 0; i < ocrlist.Count; i++) // for (int i = 0; i < ocrlist.Count; i++)
{ {
foreach (string regCode in regOcrCodes.Split(';')) foreach (string regCode in regOcrCodes.Split(';'))
{ {
if (string.IsNullOrEmpty(regCode)) continue; if (string.IsNullOrEmpty(regCode)) continue;
var x = new BarcodeInfo() { Text = regCode, CodeType = Setting_Str.OCR }; var x = new BarcodeInfo() { Text = regCode, CodeType = Setting_Str.OCR };
Dictionary<string, string> matchKey = CodeMatch(x, codeMatch, out bool isIdentification ); Dictionary<string, string> matchKey = CodeMatch(x, codeMatch, out bool isIdentification);
if (matchKey != null) if (matchKey != null)
{ {
foreach (string key in matchKey.Keys) foreach (string key in matchKey.Keys)
...@@ -513,7 +515,7 @@ namespace BLL ...@@ -513,7 +515,7 @@ namespace BLL
code = code2.ToList(); code = code2.ToList();
#endregion #endregion
if ((aMatch.Points.X==-1||aMatch.Points.Y==-1)&& code?.Count!=0) if ((aMatch.Points.X == -1 || aMatch.Points.Y == -1) && code?.Count != 0)
{ {
//aMatch.IsCodeUsed[0] = true; //aMatch.IsCodeUsed[0] = true;
aMatch.Points = new Point((int)code[0].Center.X, (int)code[0].Center.Y); aMatch.Points = new Point((int)code[0].Center.X, (int)code[0].Center.Y);
...@@ -608,7 +610,7 @@ namespace BLL ...@@ -608,7 +610,7 @@ namespace BLL
ocrRotate.Save($"ocr\\{ocrname}.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); ocrRotate.Save($"ocr\\{ocrname}.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
return ocrRotate; return ocrRotate;
} }
private Dictionary<string, string> CodeMatch(BarcodeInfo codeinfo, List<MaterialCodeMatch> codeMatch,out bool Identification) private Dictionary<string, string> CodeMatch(BarcodeInfo codeinfo, List<MaterialCodeMatch> codeMatch, out bool Identification)
{ {
Dictionary<string, string> key = new(); Dictionary<string, string> key = new();
string code, text; string code, text;
...@@ -619,8 +621,11 @@ namespace BLL ...@@ -619,8 +621,11 @@ namespace BLL
{ {
int matchCount = 0; int matchCount = 0;
var codeText = codeinfo.Text; var codeText = codeinfo.Text;
codeText = codeText.Replace("\r", ""); if (codeinfo.CodeType == "OCR")
codeText = codeText.Replace("\n", ""); {
codeText = codeText.Replace("\r", "");
codeText = codeText.Replace("\n", "");
}
MatchAnalysis.SetBarcode(codeinfo); MatchAnalysis.SetBarcode(codeinfo);
code = codeMatch[i].CaseSensitive ? codeText : codeText.ToUpper(); code = codeMatch[i].CaseSensitive ? codeText : codeText.ToUpper();
bool ismatch = true; bool ismatch = true;
...@@ -633,11 +638,11 @@ namespace BLL ...@@ -633,11 +638,11 @@ namespace BLL
if (codeinfo.CodeType != codeMatch[i].CodeType) if (codeinfo.CodeType != codeMatch[i].CodeType)
{ {
if (!IsCodeEqual(codeinfo.CodeType, codeMatch[i].CodeType)) if (!IsCodeEqual(codeinfo.CodeType, codeMatch[i].CodeType))
{ {
ismatch = false; ismatch = false;
} }
} }
MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"条码类型:{codeMatch[i].CodeType}", $"{codeinfo.CodeType}"); MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"条码类型:{codeMatch[i].CodeType}", $"{codeinfo.CodeType}");
//if (!ismatch) return null; //if (!ismatch) return null;
} }
...@@ -649,7 +654,7 @@ namespace BLL ...@@ -649,7 +654,7 @@ namespace BLL
if (!code.StartsWith(text)) if (!code.StartsWith(text))
ismatch = false; ismatch = false;
MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"开头字符:\"{text}\"", $"NG"); MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"开头字符:\"{text}\"", ismatch ? "OK" : "NG");
//if (!ismatch) return null; //if (!ismatch) return null;
} }
...@@ -662,7 +667,7 @@ namespace BLL ...@@ -662,7 +667,7 @@ namespace BLL
if (!code.EndsWith(text)) if (!code.EndsWith(text))
ismatch = false; ismatch = false;
MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"结尾字符:\"{text}\"", $"NG"); MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"结尾字符:\"{text}\"", ismatch ? "OK" : "NG");
//if (!ismatch) return null; //if (!ismatch) return null;
} }
...@@ -674,6 +679,7 @@ namespace BLL ...@@ -674,6 +679,7 @@ namespace BLL
text = codeMatch[i].CaseSensitive ? codeMatch[i].MiddleText : codeMatch[i].MiddleText.ToUpper(); text = codeMatch[i].CaseSensitive ? codeMatch[i].MiddleText : codeMatch[i].MiddleText.ToUpper();
if (text == "") return null; if (text == "") return null;
index = count = 0; index = count = 0;
while ((index = code.IndexOf(text, index)) != -1) while ((index = code.IndexOf(text, index)) != -1)
{ {
count++; count++;
...@@ -689,7 +695,7 @@ namespace BLL ...@@ -689,7 +695,7 @@ namespace BLL
ismatch = false; ismatch = false;
var mode = codeMatch[i].MatchMiddleType == 0 ? "相等" : codeMatch[i].MatchMiddleType == 1 ? "至多" : "至少"; var mode = codeMatch[i].MatchMiddleType == 0 ? "相等" : codeMatch[i].MatchMiddleType == 1 ? "至多" : "至少";
MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"中间字符:\"{text}\",{mode}匹配:{codeMatch[i].MiddleTextCount}次", $"NG"); MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"中间字符:\"{text}\",{mode}匹配:{codeMatch[i].MiddleTextCount}次,实际:{count}", ismatch ? "OK" : "NG");
//if (!ismatch) return null; //if (!ismatch) return null;
} }
...@@ -700,26 +706,31 @@ namespace BLL ...@@ -700,26 +706,31 @@ namespace BLL
matchCount++; matchCount++;
//bool ismatch = true; //bool ismatch = true;
string str = MaterialAsciiCode.GetAsciiCode(codeMatch[i].SplitText); string str = MaterialAsciiCode.GetAsciiCode(codeMatch[i].SplitText);
if(codeText.Contains(str)) if (codeText.Contains(str))
{ {
string[] arr = codeText.Split(new string[] { str }, StringSplitOptions.RemoveEmptyEntries); string[] arr = codeText.Split(str.ToCharArray());
index = codeMatch[i].SplitPart - 1; index = codeMatch[i].SplitPart - 1;
if (index >= arr.Length) if (index >= arr.Length)
ismatch = false; ismatch = false;
else else
{
code = arr[index]; code = arr[index];
if (string.IsNullOrEmpty(code))
code = " ";
}
} }
else else
{ {
ismatch = false; ismatch = false;
} }
MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"分割符:{codeMatch[i].SplitText},第:{codeMatch[i].SplitPart}位", $"NG"); MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"分割符:{codeMatch[i].SplitText},第:{codeMatch[i].SplitPart}位,内容:{code}", ismatch ? "OK" : "NG");
//if (!ismatch) return null; //if (!ismatch) return null;
} }
//截取 //截取
if (!ismatch) continue; if (!ismatch)
continue;
int startIndex = codeMatch[i].SubstringStart; int startIndex = codeMatch[i].SubstringStart;
int length = codeMatch[i].SubstringLength; int length = codeMatch[i].SubstringLength;
if (startIndex >= code.Length) if (startIndex >= code.Length)
...@@ -740,20 +751,20 @@ namespace BLL ...@@ -740,20 +751,20 @@ namespace BLL
if (codeMatch[i].MatchISNumber) if (codeMatch[i].MatchISNumber)
{ {
LogNet.log.Info($"开始匹配数字 [{filtercode}]"); LogNet.log.Info($"开始匹配数字 [{filtercode}]");
string analysisReason = $"\"{filtercode}\""; string analysisReason = filtercode.Trim();
analysisReason = filtercode.Replace(",", "");
if (!int.TryParse(filtercode, out int res)) var m = Regex.Match(analysisReason, @"^(\d+)\w{0,3}$");
if (!m.Success)
{ {
ismatch = false; ismatch = false;
analysisReason += $" NG"; analysisReason += $" NG";
} }
else else
{ {
filtercode = res.ToString(); filtercode = m.Groups[1].Value;
analysisReason += $" OK"; analysisReason += $" OK";
} }
MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"是否为数字", analysisReason); MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"是否为数字,转换后:{filtercode}", analysisReason);
} }
...@@ -765,7 +776,7 @@ namespace BLL ...@@ -765,7 +776,7 @@ namespace BLL
//bool ismatch = true; //bool ismatch = true;
if (code.Length < codeMatch[i].MinLength) if (code.Length < codeMatch[i].MinLength)
ismatch = false; ismatch = false;
MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"长度小于:{codeMatch[i].MatchMinLength}", $"NG"); MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"长度最小:{codeMatch[i].MinLength}", ismatch ? "OK" : "NG");
//if (!ismatch) return null; //if (!ismatch) return null;
} }
...@@ -776,7 +787,7 @@ namespace BLL ...@@ -776,7 +787,7 @@ namespace BLL
//bool ismatch = true; //bool ismatch = true;
if (code.Length > codeMatch[i].MaxLength) if (code.Length > codeMatch[i].MaxLength)
ismatch = false; ismatch = false;
MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"长度最大:{codeMatch[i].MatchMaxLength}", $"NG"); MatchAnalysis.AddMatch(codeMatch[i].Keyword, ismatch, codeMatch[i].CodeID, $"长度最大:{codeMatch[i].MaxLength}", ismatch ? "OK" : "NG");
} }
if (!ismatch) if (!ismatch)
...@@ -789,7 +800,7 @@ namespace BLL ...@@ -789,7 +800,7 @@ namespace BLL
if (codeMatch[i].Characteristic) if (codeMatch[i].Characteristic)
{ {
Identification = true; Identification = true;
} }
} }
return key; return key;
} }
...@@ -1181,9 +1192,9 @@ namespace BLL ...@@ -1181,9 +1192,9 @@ namespace BLL
/// <param name="type"></param> /// <param name="type"></param>
/// <param name="codetype"></param> /// <param name="codetype"></param>
/// <returns></returns> /// <returns></returns>
public bool IsCodeEqual(string type,string codetype) public bool IsCodeEqual(string type, string codetype)
{ {
type = type.Replace(" ",""); type = type.Replace(" ", "");
codetype = codetype.Replace(" ", ""); codetype = codetype.Replace(" ", "");
//LogNet.log.Info($"type={type},codetype={codetype}"); //LogNet.log.Info($"type={type},codetype={codetype}");
try try
...@@ -1222,7 +1233,7 @@ namespace BLL ...@@ -1222,7 +1233,7 @@ namespace BLL
{ {
LogNet.log.Info($"条形码对应失败:{type}:{codetype};{ex.Message}"); LogNet.log.Info($"条形码对应失败:{type}:{codetype};{ex.Message}");
return false; return false;
} }
} }
} }
} }
\ No newline at end of file \ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
\ No newline at end of file \ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="ClosedXML" version="0.96.0" targetFramework="net472" /> <package id="ClosedXML" version="0.105.0" targetFramework="net472" />
<package id="DocumentFormat.OpenXml" version="2.16.0" targetFramework="net472" /> <package id="ClosedXML.Parser" version="2.0.0" targetFramework="net472" />
<package id="DocumentFormat.OpenXml" version="3.1.1" targetFramework="net472" />
<package id="DocumentFormat.OpenXml.Framework" version="3.1.1" targetFramework="net472" />
<package id="ExcelNumberFormat" version="1.1.0" targetFramework="net472" /> <package id="ExcelNumberFormat" version="1.1.0" targetFramework="net472" />
<package id="log4net" version="2.0.12" targetFramework="net461" /> <package id="log4net" version="2.0.12" targetFramework="net461" />
<package id="Microsoft.Bcl.HashCode" version="1.1.1" targetFramework="net472" />
<package id="Microsoft.CSharp" version="4.7.0" targetFramework="net472" /> <package id="Microsoft.CSharp" version="4.7.0" targetFramework="net472" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="13.0.1" targetFramework="net461" />
<package id="RBush.Signed" version="4.0.0" targetFramework="net472" />
<package id="RestSharp" version="106.11.7" targetFramework="net472" /> <package id="RestSharp" version="106.11.7" targetFramework="net472" />
<package id="SixLabors.Fonts" version="1.0.0" targetFramework="net472" />
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
<package id="System.Memory" version="4.5.5" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.7.0" targetFramework="net472" />
<package id="ZXing.Net" version="0.16.6" targetFramework="net461" requireReinstallation="true" /> <package id="ZXing.Net" version="0.16.6" targetFramework="net461" requireReinstallation="true" />
</packages> </packages>
\ No newline at end of file \ No newline at end of file
...@@ -20,7 +20,27 @@ ...@@ -20,7 +20,27 @@
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="DocumentFormat.OpenXml" publicKeyToken="8fb06cb64d019a17" culture="neutral" /> <assemblyIdentity name="DocumentFormat.OpenXml" publicKeyToken="8fb06cb64d019a17" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.2.0" newVersion="3.0.2.0" /> <bindingRedirect oldVersion="0.0.0.0-3.1.1.0" newVersion="3.1.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DocumentFormat.OpenXml.Framework" publicKeyToken="8fb06cb64d019a17" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.1.0" newVersion="3.1.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly> </dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
......
...@@ -130,7 +130,7 @@ namespace SmartScan ...@@ -130,7 +130,7 @@ namespace SmartScan
//string outup = codeText; //string outup = codeText;
//AsciiToCharReplacer asciiToChar = new AsciiToCharReplacer(); //AsciiToCharReplacer asciiToChar = new AsciiToCharReplacer();
//outup= asciiToChar.AsciiToString(outup); //outup= asciiToChar.AsciiToString(outup);
string[] arr = text.Split(new string[] { str }, StringSplitOptions.RemoveEmptyEntries); string[] arr = text.Split(str.ToCharArray());
//string[] arr = codeText.Split(new string[] { str }, StringSplitOptions.RemoveEmptyEntries); //string[] arr = codeText.Split(new string[] { str }, StringSplitOptions.RemoveEmptyEntries);
int index = Convert.ToInt32(NudSplitPart.Value) - 1; int index = Convert.ToInt32(NudSplitPart.Value) - 1;
......
...@@ -831,7 +831,7 @@ namespace SmartScan ...@@ -831,7 +831,7 @@ namespace SmartScan
string str = MaterialAsciiCode.GetAsciiCode(codeMatch[i].SplitText); string str = MaterialAsciiCode.GetAsciiCode(codeMatch[i].SplitText);
if (codeText.Contains(str)) if (codeText.Contains(str))
{ {
string[] arr = codeText.Split(new string[] { str }, StringSplitOptions.RemoveEmptyEntries); string[] arr = codeText.Split(str.ToCharArray());
index = codeMatch[i].SplitPart - 1; index = codeMatch[i].SplitPart - 1;
if (index >= arr.Length) if (index >= arr.Length)
ismatch = false; ismatch = false;
......
using BLL; using BLL;
using DocumentFormat.OpenXml.ExtendedProperties;
using Model; using Model;
using SmartScan.PlusSettingFrm; using SmartScan.PlusSettingFrm;
using SmartScan.SetControl.WPF.Model; using SmartScan.SetControl.WPF.Model;
...@@ -96,7 +97,12 @@ namespace SmartScan.SetControl.WPF ...@@ -96,7 +97,12 @@ namespace SmartScan.SetControl.WPF
} }
else else
{ {
LogNet.log.Debug("关键字文件路径不存在"); if (BLLCommon.macroKey.Count > 0)
{
BLLCommon.macroKeyValue.AddRange(BLLCommon.macroKey.Select(s=>s+"//false"));
}
else
LogNet.log.Debug("关键字文件路径不存在");
} }
keyCopy = new(BLLCommon.macroKey); keyCopy = new(BLLCommon.macroKey);
keyCopyValue = new(BLLCommon.macroKeyValue); keyCopyValue = new(BLLCommon.macroKeyValue);
...@@ -725,7 +731,8 @@ namespace SmartScan.SetControl.WPF ...@@ -725,7 +731,8 @@ namespace SmartScan.SetControl.WPF
// 获取第一个字段 // 获取第一个字段
string firstField = keyCopy[0]; string firstField = keyCopy[0];
int firstFieldIndex = 0; int firstFieldIndex = 0;
if (keyCopyValue.Count == 0)
return;
// 检查对应的值中是否启用 // 检查对应的值中是否启用
string fieldValue = keyCopyValue[firstFieldIndex]; string fieldValue = keyCopyValue[firstFieldIndex];
string[] parts = fieldValue.Split('/'); string[] parts = fieldValue.Split('/');
......
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="AccImageBox"> <Reference Include="AccImageBox">
<HintPath>C:\Users\HY\Desktop\AccImageBox.dll</HintPath> <HintPath>..\SharedDll\AccImageBox.dll</HintPath>
</Reference> </Reference>
<Reference Include="Asa.Camera.VisionLib"> <Reference Include="Asa.Camera.VisionLib">
<HintPath>..\SharedDll\Asa.Camera.VisionLib.dll</HintPath> <HintPath>..\SharedDll\Asa.Camera.VisionLib.dll</HintPath>
...@@ -73,18 +73,21 @@ ...@@ -73,18 +73,21 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\SharedDll\Asa.Face.Control.dll</HintPath> <HintPath>..\SharedDll\Asa.Face.Control.dll</HintPath>
</Reference> </Reference>
<Reference Include="ClosedXML, Version=0.96.0.0, Culture=neutral, PublicKeyToken=fd1eb21b62ae805b, processorArchitecture=MSIL"> <Reference Include="ClosedXML, Version=0.105.0.0, Culture=neutral, PublicKeyToken=fd1eb21b62ae805b, processorArchitecture=MSIL">
<HintPath>..\packages\ClosedXML.0.96.0\lib\net46\ClosedXML.dll</HintPath> <HintPath>..\packages\ClosedXML.0.105.0\lib\netstandard2.0\ClosedXML.dll</HintPath>
</Reference>
<Reference Include="ClosedXML.Parser, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1d5f7376574c51ec, processorArchitecture=MSIL">
<HintPath>..\packages\ClosedXML.Parser.2.0.0\lib\netstandard2.0\ClosedXML.Parser.dll</HintPath>
</Reference> </Reference>
<Reference Include="ConfigHelper, Version=1.0.0.2, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="ConfigHelper, Version=1.0.0.2, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\SharedDll\ConfigHelper.dll</HintPath> <HintPath>..\SharedDll\ConfigHelper.dll</HintPath>
</Reference> </Reference>
<Reference Include="DocumentFormat.OpenXml, Version=3.0.2.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL"> <Reference Include="DocumentFormat.OpenXml, Version=3.1.1.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
<HintPath>..\packages\DocumentFormat.OpenXml.3.0.2\lib\net46\DocumentFormat.OpenXml.dll</HintPath> <HintPath>..\packages\DocumentFormat.OpenXml.3.1.1\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
</Reference> </Reference>
<Reference Include="DocumentFormat.OpenXml.Framework, Version=3.0.2.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL"> <Reference Include="DocumentFormat.OpenXml.Framework, Version=3.1.1.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
<HintPath>..\packages\DocumentFormat.OpenXml.Framework.3.0.2\lib\net46\DocumentFormat.OpenXml.Framework.dll</HintPath> <HintPath>..\packages\DocumentFormat.OpenXml.Framework.3.1.1\lib\net46\DocumentFormat.OpenXml.Framework.dll</HintPath>
</Reference> </Reference>
<Reference Include="ExcelNumberFormat, Version=1.1.0.0, Culture=neutral, PublicKeyToken=23c6f5d73be07eca, processorArchitecture=MSIL"> <Reference Include="ExcelNumberFormat, Version=1.1.0.0, Culture=neutral, PublicKeyToken=23c6f5d73be07eca, processorArchitecture=MSIL">
<HintPath>..\packages\ExcelNumberFormat.1.1.0\lib\net20\ExcelNumberFormat.dll</HintPath> <HintPath>..\packages\ExcelNumberFormat.1.1.0\lib\net20\ExcelNumberFormat.dll</HintPath>
...@@ -95,21 +98,43 @@ ...@@ -95,21 +98,43 @@
<Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL"> <Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.12\lib\net45\log4net.dll</HintPath> <HintPath>..\packages\log4net.2.0.12\lib\net45\log4net.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Bcl.HashCode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="PresentationCore" /> <Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" /> <Reference Include="PresentationFramework" />
<Reference Include="RBush, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c77e27b81f4d0187, processorArchitecture=MSIL">
<HintPath>..\packages\RBush.Signed.4.0.0\lib\net47\RBush.dll</HintPath>
</Reference>
<Reference Include="SharpDocx, Version=2.5.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="SharpDocx, Version=2.5.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SharpDocx.2.5.0\lib\net45\SharpDocx.dll</HintPath> <HintPath>..\packages\SharpDocx.2.5.0\lib\net45\SharpDocx.dll</HintPath>
</Reference> </Reference>
<Reference Include="SharpImage, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="SharpImage, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SharpDocx.2.5.0\lib\net45\SharpImage.dll</HintPath> <HintPath>..\packages\SharpDocx.2.5.0\lib\net45\SharpImage.dll</HintPath>
</Reference> </Reference>
<Reference Include="SixLabors.Fonts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d998eea7b14cab13, processorArchitecture=MSIL">
<HintPath>..\packages\SixLabors.Fonts.1.0.0\lib\netstandard2.0\SixLabors.Fonts.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Design" /> <Reference Include="System.Design" />
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel" /> <Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceModel.Activation" /> <Reference Include="System.ServiceModel.Activation" />
<Reference Include="System.ServiceModel.Web" /> <Reference Include="System.ServiceModel.Web" />
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="ClosedXML" version="0.96.0" targetFramework="net472" /> <package id="ClosedXML" version="0.105.0" targetFramework="net472" />
<package id="DocumentFormat.OpenXml" version="3.0.2" targetFramework="net472" /> <package id="ClosedXML.Parser" version="2.0.0" targetFramework="net472" />
<package id="DocumentFormat.OpenXml.Framework" version="3.0.2" targetFramework="net472" /> <package id="DocumentFormat.OpenXml" version="3.1.1" targetFramework="net472" />
<package id="DocumentFormat.OpenXml.Framework" version="3.1.1" targetFramework="net472" />
<package id="ExcelNumberFormat" version="1.1.0" targetFramework="net472" /> <package id="ExcelNumberFormat" version="1.1.0" targetFramework="net472" />
<package id="Extended.Wpf.Toolkit" version="4.7.25104.5739" targetFramework="net472" /> <package id="Extended.Wpf.Toolkit" version="4.7.25104.5739" targetFramework="net472" />
<package id="HandyControl" version="3.5.1" targetFramework="net472" /> <package id="HandyControl" version="3.5.1" targetFramework="net472" />
<package id="log4net" version="2.0.12" targetFramework="net461" /> <package id="log4net" version="2.0.12" targetFramework="net461" />
<package id="Microsoft.Bcl.HashCode" version="1.1.1" targetFramework="net472" />
<package id="Microsoft.CSharp" version="4.7.0" targetFramework="net472" /> <package id="Microsoft.CSharp" version="4.7.0" targetFramework="net472" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="13.0.1" targetFramework="net461" />
<package id="RBush.Signed" version="4.0.0" targetFramework="net472" />
<package id="SharpDocx" version="2.5.0" targetFramework="net472" /> <package id="SharpDocx" version="2.5.0" targetFramework="net472" />
<package id="SixLabors.Fonts" version="1.0.0" targetFramework="net472" />
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
<package id="System.Memory" version="4.5.5" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.7.0" targetFramework="net472" />
</packages> </packages>
\ No newline at end of file \ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!