분리후 첫 Crawling 성공 모델

This commit is contained in:
2026-02-22 22:59:21 +09:00
parent 171aaf6115
commit 4e006a5a5f
208 changed files with 613035 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
namespace OpcPks.Core;
public class Class1
{
}

View File

@@ -0,0 +1,71 @@
using System;
using System.IO;
using System.Collections.Generic;
using System.Threading.Tasks;
using Npgsql;
using OpcPks.Core.Data;
namespace OpcPks.Core.Data
{
public class AssetLoader
{
public async Task ImportFullMapAsync(string csvPath)
{
Console.WriteLine($"🚀 CSV 데이터 로드 시작: {csvPath}");
if (!File.Exists(csvPath))
{
Console.WriteLine("❌ 파일을 찾을 수 없습니다.");
return;
}
// CSV 파일 읽기 (첫 줄 헤더 제외)
var lines = await File.ReadAllLinesAsync(csvPath);
Console.WriteLine($"📊 총 {lines.Length - 1}개의 라인을 처리합니다...");
using var conn = new NpgsqlConnection(DbConfig.ConnectionString);
await conn.OpenAsync();
// PostgreSQL Binary Copy 시작
// level, class, name, node_id, data_type 총 5개 필드
using (var writer = conn.BeginBinaryImport("COPY raw_node_map (level, class, name, node_id, data_type) FROM STDIN (FORMAT BINARY)"))
{
int count = 0;
for (int i = 1; i < lines.Length; i++) // i=1 부터 시작하여 헤더 스킵
{
var line = lines[i];
if (string.IsNullOrWhiteSpace(line)) continue;
var cols = line.Split(',');
if (cols.Length < 4) continue; // 최소 4개 필드(NodeId까지)는 있어야 함
try
{
writer.StartRow();
// 1. Level (int)
writer.Write(int.Parse(cols[0]), NpgsqlTypes.NpgsqlDbType.Integer);
// 2. Class (string)
writer.Write(cols[1], NpgsqlTypes.NpgsqlDbType.Text);
// 3. Name (string)
writer.Write(cols[2], NpgsqlTypes.NpgsqlDbType.Text);
// 4. NodeId (string)
writer.Write(cols[3], NpgsqlTypes.NpgsqlDbType.Text);
// 5. DataType (데이터가 없으면 "Unknown" 처리)
string dataType = cols.Length > 4 ? cols[4].Trim() : "Unknown";
writer.Write(dataType, NpgsqlTypes.NpgsqlDbType.Text);
count++;
if (count % 50000 == 0) Console.WriteLine($"... {count}개 처리 중");
}
catch (Exception ex)
{
Console.WriteLine($"⚠️ 에러 발생 (라인 {i+1}): {ex.Message}");
}
}
await writer.CompleteAsync();
Console.WriteLine($"✅ 총 {count}개 노드 로드 완료!");
}
}
}
}

View File

@@ -0,0 +1,8 @@
namespace OpcPks.Core.Data
{
public static class DbConfig
{
// PostgreSQL 접속 정보로 수정하세요.
public static string ConnectionString = "Host=localhost;Username=pacer;Password=pacer;Database=opcdb";
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,24 @@
-----BEGIN CERTIFICATE-----
MIIEAzCCAuugAwIBAgIUdxkuyO0kUlLnKYoSV4bt7FJZ7+4wDQYJKoZIhvcNAQEL
BQAwgZAxCzAJBgNVBAYTAktPMQ4wDAYDVQQIDAVTZW91bDEOMAwGA1UEBwwFU2Vv
dWwxFjAUBgNVBAoMDWhhbm1vIGNvbnRyb2wxEDAOBgNVBAsMB2NvbnRyb2wxEDAO
BgNVBAMMB25ldHdvcmsxJTAjBgkqhkiG9w0BCQEWFmNvbnRhY3RAaGFubW9jbm4u
Y28ua3IwHhcNMjYwMjIyMDUzNDExWhcNMzYwMjIwMDUzNDExWjCBkDELMAkGA1UE
BhMCS08xDjAMBgNVBAgMBVNlb3VsMQ4wDAYDVQQHDAVTZW91bDEWMBQGA1UECgwN
aGFubW8gY29udHJvbDEQMA4GA1UECwwHY29udHJvbDEQMA4GA1UEAwwHbmV0d29y
azElMCMGCSqGSIb3DQEJARYWY29udGFjdEBoYW5tb2Nubi5jby5rcjCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBANV459zeHqHfvkfVfPeXu3lUOQfHvX9T
ca2roF8G1e3NKUQJeuCPCCwK1AM+++lyw70iGmIoULkSwMtIlAloKtyrf5FG/LWB
bUdjirF157CrkpITXmNuDDxTbVn6YXLZHC5R+OhZXH32iUj1aTq3tx37lOmTh3R/
IZOGxsLkCGDni0GirE54Z0ufdl6CFr8FfcakVO+9Y6SEUEsZp4uybrA5LfprZlj/
2uXu9svMoePTOb8D7MMg6WfZrsOb4hMg483P9t1rHqMg2AESbOT4N9H3HFDDrA5l
w7KozmIwCeskYeLQPGX/DQ+GxYGoezfsWSM1fXKM/0XNskXqZGmi59UCAwEAAaNT
MFEwHQYDVR0OBBYEFI3WwCA/ZNQgUkTaZtQttffbcnpeMB8GA1UdIwQYMBaAFI3W
wCA/ZNQgUkTaZtQttffbcnpeMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
BQADggEBAEHVsKOCTJSY7Hk0rLXb5yU7qbiS3uHq8elm+2JGaodJZ7TPnWuyqkEF
9/7713Y7MAXHcv2qEYeIE+qS4ZrlT9Xz+xf452zd+xRpUq6j4PBlKwEM77uXHnNl
yO0g1GgIdBRz5F61ESWfvwfR1GJ2Q3j0ry5qZPlVD1KjJyGYL8DJdVBsg/yJ62+M
xYFSk2JrRxU/JiV/Dq7Mxy3hvGupVGjdcQdnW/1xZK+xmWDG5ky+u/3qcH9nNlce
UiblRoYjlrdHnrVi3VAJFaquJZNwDr/Ar+LSxDHjEzDtpby9Q6VbtDnA77GcG7vn
TsBE6iGyly9WG9Q0dgNKEw59ciRGi6M=
-----END CERTIFICATE-----

View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDVeOfc3h6h375H
1Xz3l7t5VDkHx71/U3Gtq6BfBtXtzSlECXrgjwgsCtQDPvvpcsO9IhpiKFC5EsDL
SJQJaCrcq3+RRvy1gW1HY4qxdeewq5KSE15jbgw8U21Z+mFy2RwuUfjoWVx99olI
9Wk6t7cd+5Tpk4d0fyGThsbC5Ahg54tBoqxOeGdLn3Zegha/BX3GpFTvvWOkhFBL
GaeLsm6wOS36a2ZY/9rl7vbLzKHj0zm/A+zDIOln2a7Dm+ITIOPNz/bdax6jINgB
Emzk+DfR9xxQw6wOZcOyqM5iMAnrJGHi0Dxl/w0PhsWBqHs37FkjNX1yjP9FzbJF
6mRpoufVAgMBAAECggEABhcvglk3WttP31Z40iBFoeC5ydOJ6rk+QTwS1MiUpPbE
Cnlnb0MVcsWSUU9kOj+4fvZwoJlRiEjqhZeaBaoFAwvE6tJcK8TivHUww/8UWlw4
JSvL9x6bgcMdl8IcMqh9dILejP6JCYerA2ZhF2LzegsEr3oH6ivQZkL4+8mBcFui
1w2vuIMGlJbFbBjiWWvuWe04dRtKQ172PcH1980IGjT3zjwBzn3nbR69LBC+5tDj
ORPs/uORUb9SKAtrxlhggRQIehBuTqbmgAiEwEZXH0OaNLUZzUM6b8XfrCLYXEM9
Cexh5apqpTR0jDV7WVrCTOSvQ6VcfO5+ibs4DkeqUQKBgQDtDuH347CXDaaWuQqK
yOAugpWohFM0LArZySV6FXjX/fqOfpWwGRY6SAftF+GmR6MiPphjuI4yW9DsZG1h
8FWLwZrwkazVbk2cHwU4CZhoQVuNHhLYhF3G2QcyNqlL8uHb49z4iyvTYr3XFMgn
p7qULd0BFfzb04butWylgVy5GQKBgQDmh5Cz7wCeZBOR1KjAJqo8O2BhHp6j2GsA
5OmaxZw++O0uqh0JZnJpjXkyEpR7kUOM8+3uvuAti68kQis3chFNlITzNNLLZaDO
oy8qwPvPzTSbUVzDD2acfNrM7oHnsJ6IHmHMnzQGLg9zjGJt31wNtJyfdOp7Kn33
Q06QRD9wHQKBgQClj65b3YZ4iM0fGQ72zMJdWVBCiGA/4L6XSfdFo3dpinUSTfAn
M+4lOCdo/DPZWNDjWso9YyjUnPF2F9GZBCwK1mVqvKLz0PydG8EeWP07WuIg1a8d
zpxcAzkWZbypUXFSjHrIjxJFqQGjFF2R7H/Pe5SNbJjTwpDLaKP/lzB2CQKBgDe8
TQMD5O1mmsimVspmTsBTRsEUaxyIBY7oyYYPAvDCtG2U2YJdT4ovlz7A+T9K5r8c
dslDQuYgII8upE46eO592wsGGXTttExhbdTzZa5fGbn3mOrcPV3WXfwwKh4/OIUG
e3TChQx9dGTmayHPX+08XqW62bo/kscGcec1aPUNAoGAUq++tYrNfzWvu8GXTpTI
KWhHxRNd3zOOjdG62ss/dFCuZ+hr1gEKZxsHgvEO56wbzNTPsZdY+oq6p/hrOS7P
IsNvSmZO0QJeOxnU/NZ1Hyd7sHCYp7guyJOhhPAuFMa7w/8yrYzBVe3PwTp/cnEk
lx20RyQMp2eQSQF0gs6hr1U=
-----END PRIVATE KEY-----

Binary file not shown.

View File

@@ -0,0 +1,11 @@
namespace OpcPks.Core.Models;
public class TagMaster
{
public string TagName { get; set; } = string.Empty;
public string FullNodeId { get; set; } = string.Empty; // NodeId 대신 크롤러가 찾는 이름
public string Description { get; set; } = string.Empty;
public string DataType { get; set; } = string.Empty;
public string NodeClass { get; set; } = string.Empty; // 추가
public int Level { get; set; } // string에서 int로 변경 (크롤러 연산용)
}

View File

@@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Npgsql" Version="8.0.4" />
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Client" Version="1.5.374.78" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,145 @@
using Opc.Ua;
using Opc.Ua.Client;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using OpcPks.Core.Models;
namespace OpcPks.Core.Services
{
public class HoneywellCrawler
{
// ✅ Session 대신 ISession 인터페이스를 사용하여 호환성 확보
private readonly ISession _session;
private readonly List<TagMaster> _discoveredTags = new();
public HoneywellCrawler(ISession session)
{
_session = session ?? throw new ArgumentNullException(nameof(session));
}
/// <summary>
/// 탐사 시작점
/// </summary>
public async Task RunAsync(string startNodeId, string csvPath)
{
Console.WriteLine($"\n🚀 하니웰 자산모델 탐사 시작: {startNodeId}");
try
{
_discoveredTags.Clear();
NodeId rootNode = NodeId.Parse(startNodeId);
await BrowseRecursiveAsync(rootNode, 0);
Console.WriteLine("\n===============================================");
Console.WriteLine($"✅ 탐사 완료! 총 {_discoveredTags.Count}개의 항목 발견.");
Console.WriteLine("===============================================");
SaveToCsv(csvPath);
}
catch (Exception ex)
{
Console.WriteLine($"❌ 탐사 중 오류: {ex.Message}");
}
}
private async Task BrowseRecursiveAsync(NodeId nodeId, int level)
{
try
{
BrowseDescription description = new() {
NodeId = nodeId,
BrowseDirection = BrowseDirection.Forward,
ReferenceTypeId = ReferenceTypeIds.HierarchicalReferences,
IncludeSubtypes = true,
NodeClassMask = (uint)(NodeClass.Variable | NodeClass.Object),
ResultMask = (uint)BrowseResultMask.All
};
// BrowseAsync 호출
BrowseResponse response = await _session.BrowseAsync(null, null, 0, new BrowseDescriptionCollection { description }, default);
if (response?.Results == null || response.Results.Count == 0) return;
foreach (var result in response.Results)
{
await ProcessReferencesAsync(result.References, level);
byte[] cp = result.ContinuationPoint;
while (cp != null && cp.Length > 0)
{
// ✅ ByteStringCollection을 사용하여 라이브러리 표준 인자 타입 일치화
var cpCollection = new ByteStringCollection { cp };
BrowseNextResponse nextResponse = await _session.BrowseNextAsync(null, false, cpCollection, default);
if (nextResponse?.Results != null && nextResponse.Results.Count > 0)
{
await ProcessReferencesAsync(nextResponse.Results[0].References, level);
cp = nextResponse.Results[0].ContinuationPoint;
}
else
{
cp = null;
}
}
}
}
catch (Exception) { /* 접근 권한 없는 노드는 무시 */ }
}
private async Task ProcessReferencesAsync(ReferenceDescriptionCollection references, int level)
{
if (references == null || references.Count == 0) return;
foreach (var rd in references)
{
// ExpandedNodeId -> NodeId 변환
NodeId childId = ExpandedNodeId.ToNodeId(rd.NodeId, _session.NamespaceUris);
// TagMaster 모델 규격에 맞춰 데이터 추가
_discoveredTags.Add(new TagMaster
{
TagName = rd.BrowseName.Name ?? "Unknown",
FullNodeId = childId.ToString(),
NodeClass = rd.NodeClass.ToString(),
Level = level
});
string indent = new string(' ', level * 2);
Console.WriteLine($"{indent} [{rd.NodeClass}] {rd.BrowseName.Name} (ID: {childId})");
// 하위 폴더(Object)가 있고 탐사 깊이가 5단계 미만이면 재귀 탐색
if (rd.NodeClass == NodeClass.Object && level < 5)
{
await BrowseRecursiveAsync(childId, level + 1);
}
}
}
private void SaveToCsv(string filePath)
{
try
{
// 디렉토리가 없으면 생성
string dir = Path.GetDirectoryName(filePath);
if (!string.IsNullOrEmpty(dir) && !Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
using StreamWriter sw = new(filePath);
sw.WriteLine("Level,Class,Name,NodeId");
foreach (var tag in _discoveredTags)
{
sw.WriteLine($"{tag.Level},{tag.NodeClass},{tag.TagName},{tag.FullNodeId}");
}
Console.WriteLine($"💾 CSV 저장 완료: {filePath}");
}
catch (Exception ex)
{
Console.WriteLine($"❌ CSV 저장 실패: {ex.Message}");
}
}
}
}

View File

@@ -0,0 +1,108 @@
using Opc.Ua;
using Opc.Ua.Client;
using System.Security.Cryptography.X509Certificates;
using System.Net;
namespace OpcPks.Core.Services
{
public class OpcSessionManager
{
private ISession? _session;
public ISession? Session => _session;
public async Task<ISession> GetSessionAsync()
{
if (_session != null && _session.Connected) return _session;
string serverHostName = "192.168.0.20";
string endpointUrl = $"opc.tcp://{serverHostName}:4840";
string applicationUri = "urn:dbsvr:OpcTestClient";
string userName = "mngr";
string password = "mngr";
string pfxPassword = ""; // openssl에서 확인한 비밀번호가 있다면 입력
string baseDataPath = "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/Data/pki";
string pfxFilePath = Path.Combine(baseDataPath, "own/private/OpcTestClient.pfx");
var config = new ApplicationConfiguration {
ApplicationName = "OpcTestClient",
ApplicationType = ApplicationType.Client,
ApplicationUri = applicationUri,
SecurityConfiguration = new SecurityConfiguration {
ApplicationCertificate = new CertificateIdentifier {
StoreType = "Directory",
StorePath = Path.Combine(baseDataPath, "own"),
SubjectName = "OpcTestClient"
},
TrustedPeerCertificates = new CertificateTrustList {
StoreType = "Directory",
StorePath = Path.Combine(baseDataPath, "trusted")
},
AutoAcceptUntrustedCertificates = true,
AddAppCertToTrustedStore = true
},
TransportQuotas = new TransportQuotas { OperationTimeout = 60000 },
ClientConfiguration = new ClientConfiguration { DefaultSessionTimeout = 60000 }
};
// 1. [인증서 강제 로드] Validate 호출 전에 인증서를 명시적으로 로드합니다.
if (!File.Exists(pfxFilePath)) {
throw new Exception($"❌ PFX 파일을 찾을 수 없습니다: {pfxFilePath}");
}
try {
// 리눅스 .NET 호환용 플래그
var cert = new X509Certificate2(
pfxFilePath,
pfxPassword,
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet
);
// config에 인증서 직접 주입
config.SecurityConfiguration.ApplicationCertificate.Certificate = cert;
Console.WriteLine($"✅ [인증서 로드] {cert.Subject}");
} catch (Exception ex) {
Console.WriteLine($"❌ [인증서 에러] PFX 로드 실패: {ex.Message}");
throw;
}
// 2. 설정 검증 (인증서 주입 후 실행)
await config.Validate(ApplicationType.Client);
// Validate 이후 인증서가 풀렸을 경우를 대비해 다시 확인
if (config.SecurityConfiguration.ApplicationCertificate.Certificate == null) {
Console.WriteLine("⚠️ [경고] Validate 과정에서 인증서 설정이 유실되어 재할당합니다.");
config.SecurityConfiguration.ApplicationCertificate.Certificate = new X509Certificate2(pfxFilePath, pfxPassword, X509KeyStorageFlags.MachineKeySet);
}
config.CertificateValidator.CertificateValidation += (s, e) => { e.Accept = true; };
// 3. 엔드포인트 선택 및 보안 정책 로그
var endpointDescription = CoreClientUtils.SelectEndpoint(endpointUrl, true);
var endpointConfiguration = EndpointConfiguration.Create(config);
var configuredEndpoint = new ConfiguredEndpoint(null, endpointDescription, endpointConfiguration);
Console.WriteLine($"📡 [세션] 연결 시도: {endpointUrl}");
Console.WriteLine($"🔐 [보안] {endpointDescription.SecurityPolicyUri} ({endpointDescription.SecurityMode})");
// 4. 세션 생성 시도
try {
_session = await Opc.Ua.Client.Session.Create(
config,
configuredEndpoint,
true,
"OpcPksSession",
60000,
new UserIdentity(userName, password),
null
);
Console.WriteLine("🚀 [성공] 하니웰 서버와 연결되었습니다!");
} catch (ServiceResultException srex) {
Console.WriteLine($"❌ [OPC 에러] {srex.StatusCode}: {srex.Message}");
throw;
}
return _session;
}
}
}

View File

@@ -0,0 +1,189 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"OpcPks.Core/1.0.0": {
"dependencies": {
"Npgsql": "8.0.4",
"OPCFoundation.NetStandard.Opc.Ua.Client": "1.5.374.78"
},
"runtime": {
"OpcPks.Core.dll": {}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
"runtime": {
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.324.11423"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/8.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.324.11423"
}
}
},
"Newtonsoft.Json/13.0.3": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.3.27908"
}
}
},
"Npgsql/8.0.4": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "8.0.1"
},
"runtime": {
"lib/net8.0/Npgsql.dll": {
"assemblyVersion": "8.0.4.0",
"fileVersion": "8.0.4.0"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.374.78": {
"dependencies": {
"OPCFoundation.NetStandard.Opc.Ua.Configuration": "1.5.374.78",
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.374.78"
},
"runtime": {
"lib/net8.0/Opc.Ua.Client.dll": {
"assemblyVersion": "1.5.374.0",
"fileVersion": "1.5.374.78"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.374.78": {
"dependencies": {
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.374.78"
},
"runtime": {
"lib/net8.0/Opc.Ua.Configuration.dll": {
"assemblyVersion": "1.5.374.0",
"fileVersion": "1.5.374.78"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.374.78": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "8.0.1",
"Newtonsoft.Json": "13.0.3",
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates": "1.5.374.78"
},
"runtime": {
"lib/net8.0/Opc.Ua.Core.dll": {
"assemblyVersion": "1.5.374.0",
"fileVersion": "1.5.374.78"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.374.78": {
"dependencies": {
"System.Formats.Asn1": "8.0.1",
"System.Security.Cryptography.Cng": "5.0.0"
},
"runtime": {
"lib/net8.0/Opc.Ua.Security.Certificates.dll": {
"assemblyVersion": "1.5.374.0",
"fileVersion": "1.5.374.78"
}
}
},
"System.Formats.Asn1/8.0.1": {},
"System.Security.Cryptography.Cng/5.0.0": {
"dependencies": {
"System.Formats.Asn1": "8.0.1"
}
}
}
},
"libraries": {
"OpcPks.Core/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA==",
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.1",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-RIFgaqoaINxkM2KTOw72dmilDmTrYA0ns2KW4lDz4gZ2+o6IQ894CzmdL3StM2oh7QQq44nCWiqKqc4qUI9Jmg==",
"path": "microsoft.extensions.logging.abstractions/8.0.1",
"hashPath": "microsoft.extensions.logging.abstractions.8.0.1.nupkg.sha512"
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"path": "newtonsoft.json/13.0.3",
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
},
"Npgsql/8.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vaYEUlF/pB9m8bs21wQv3Da0kMHT4A9USe47VfY/L2BO97xz5KfIxhEu22QS9d68ZrLxvtL3wQDfDLPr2OjbjA==",
"path": "npgsql/8.0.4",
"hashPath": "npgsql.8.0.4.nupkg.sha512"
},
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.374.78": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MXd8GIxpZ2u4Tbb78wyQzqeyhSgyedZtegHYz7pOM0AmSiMwg/Eghx3xqO/owqo1dsyW20zf0mZflUcNX8rIOQ==",
"path": "opcfoundation.netstandard.opc.ua.client/1.5.374.78",
"hashPath": "opcfoundation.netstandard.opc.ua.client.1.5.374.78.nupkg.sha512"
},
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.374.78": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bkOZFH+hQsBlZhsci+SaZWrT4yJRnWwmcJLl8BJecWCtW2u6QoC5U1muYHPMN/23ltu8xoy4CPIJMzPR6PNmRw==",
"path": "opcfoundation.netstandard.opc.ua.configuration/1.5.374.78",
"hashPath": "opcfoundation.netstandard.opc.ua.configuration.1.5.374.78.nupkg.sha512"
},
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.374.78": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iyuo99u7QKv7ZWKGAUxCnGPCzJSThlzn93ce1EDGAH6AnPJHiWtFDQ1n4TlE03kGHA69yO5qlVPLdw+Z/RdYDw==",
"path": "opcfoundation.netstandard.opc.ua.core/1.5.374.78",
"hashPath": "opcfoundation.netstandard.opc.ua.core.1.5.374.78.nupkg.sha512"
},
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.374.78": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iT++cPyzSnFAGJo9D0NPtHM+byBvIGeGGi535vGla2CTNAWvU1i7MH2T1PGqoYxiEY7dpKlqBlTtg3MQ3eXBrA==",
"path": "opcfoundation.netstandard.opc.ua.security.certificates/1.5.374.78",
"hashPath": "opcfoundation.netstandard.opc.ua.security.certificates.1.5.374.78.nupkg.sha512"
},
"System.Formats.Asn1/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-XqKba7Mm/koKSjKMfW82olQdmfbI5yqeoLV/tidRp7fbh5rmHAQ5raDI/7SU0swTzv+jgqtUGkzmFxuUg0it1A==",
"path": "system.formats.asn1/8.0.1",
"hashPath": "system.formats.asn1.8.0.1.nupkg.sha512"
},
"System.Security.Cryptography.Cng/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==",
"path": "system.security.cryptography.cng/5.0.0",
"hashPath": "system.security.cryptography.cng.5.0.0.nupkg.sha512"
}
}
}

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("OpcPks.Core")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+171aaf6115cde8e9e930d14886fafa5fe4c1e4c0")]
[assembly: System.Reflection.AssemblyProductAttribute("OpcPks.Core")]
[assembly: System.Reflection.AssemblyTitleAttribute("OpcPks.Core")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@@ -0,0 +1 @@
fb717191c02dff3f083190ed14d847598609d6461f7931778b4e474636da4508

View File

@@ -0,0 +1,13 @@
is_global = true
build_property.TargetFramework = net8.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = OpcPks.Core
build_property.ProjectDir = /home/pacer/projects/OpcPksPlatform/OpcPks.Core/
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
2304a9d0dd6384b5068ce141d8c63b025727e909890abc7b08e5f2fff4bf5261

View File

@@ -0,0 +1,12 @@
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/bin/Debug/net8.0/OpcPks.Core.deps.json
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/bin/Debug/net8.0/OpcPks.Core.dll
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/bin/Debug/net8.0/OpcPks.Core.pdb
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.csproj.AssemblyReference.cache
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.GeneratedMSBuildEditorConfig.editorconfig
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.AssemblyInfoInputs.cache
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.AssemblyInfo.cs
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.csproj.CoreCompileInputs.cache
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.dll
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/refint/OpcPks.Core.dll
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.pdb
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/ref/OpcPks.Core.dll

View File

@@ -0,0 +1,71 @@
{
"format": 1,
"restore": {
"/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj": {}
},
"projects": {
"/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj",
"projectName": "OpcPks.Core",
"projectPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj",
"packagesPath": "/home/pacer/.nuget/packages/",
"outputPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/",
"projectStyle": "PackageReference",
"configFilePaths": [
"/home/pacer/.nuget/NuGet/NuGet.Config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"Npgsql": {
"target": "Package",
"version": "[8.0.4, )"
},
"OPCFoundation.NetStandard.Opc.Ua.Client": {
"target": "Package",
"version": "[1.5.374.78, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/8.0.124/PortableRuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/pacer/.nuget/packages/</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/pacer/.nuget/packages/</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.8.1</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="/home/pacer/.nuget/packages/" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/8.0.1/buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/8.0.1/buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets')" />
</ImportGroup>
</Project>

View File

@@ -0,0 +1,623 @@
{
"version": 3,
"targets": {
"net8.0": {
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
"type": "package",
"compile": {
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net6.0/_._": {}
}
},
"Microsoft.Extensions.Logging.Abstractions/8.0.1": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1"
},
"compile": {
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {}
}
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"compile": {
"lib/net6.0/Newtonsoft.Json.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"related": ".xml"
}
}
},
"Npgsql/8.0.4": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "8.0.0"
},
"compile": {
"lib/net8.0/Npgsql.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/Npgsql.dll": {
"related": ".xml"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.374.78": {
"type": "package",
"dependencies": {
"OPCFoundation.NetStandard.Opc.Ua.Configuration": "1.5.374.78",
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.374.78"
},
"compile": {
"lib/net8.0/Opc.Ua.Client.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/Opc.Ua.Client.dll": {
"related": ".xml"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.374.78": {
"type": "package",
"dependencies": {
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.374.78"
},
"compile": {
"lib/net8.0/Opc.Ua.Configuration.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/Opc.Ua.Configuration.dll": {
"related": ".xml"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.374.78": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "8.0.1",
"Newtonsoft.Json": "13.0.3",
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates": "1.5.374.78"
},
"compile": {
"lib/net8.0/Opc.Ua.Core.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/Opc.Ua.Core.dll": {
"related": ".xml"
}
}
},
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.374.78": {
"type": "package",
"dependencies": {
"System.Formats.Asn1": "8.0.1",
"System.Security.Cryptography.Cng": "5.0.0"
},
"compile": {
"lib/net8.0/Opc.Ua.Security.Certificates.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/Opc.Ua.Security.Certificates.dll": {
"related": ".xml"
}
}
},
"System.Formats.Asn1/8.0.1": {
"type": "package",
"compile": {
"lib/net8.0/System.Formats.Asn1.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/System.Formats.Asn1.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net6.0/_._": {}
}
},
"System.Security.Cryptography.Cng/5.0.0": {
"type": "package",
"dependencies": {
"System.Formats.Asn1": "5.0.0"
},
"compile": {
"ref/netcoreapp3.0/System.Security.Cryptography.Cng.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll": {
"related": ".xml"
}
},
"runtimeTargets": {
"runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll": {
"assetType": "runtime",
"rid": "win"
}
}
}
}
},
"libraries": {
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
"sha512": "fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA==",
"type": "package",
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"PACKAGE.md",
"THIRD-PARTY-NOTICES.TXT",
"buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets",
"buildTransitive/net462/_._",
"buildTransitive/net6.0/_._",
"buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets",
"lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
"lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
"lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
"lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
"lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
"lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
"lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
"lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
"microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512",
"microsoft.extensions.dependencyinjection.abstractions.nuspec",
"useSharedDesignerContext.txt"
]
},
"Microsoft.Extensions.Logging.Abstractions/8.0.1": {
"sha512": "RIFgaqoaINxkM2KTOw72dmilDmTrYA0ns2KW4lDz4gZ2+o6IQ894CzmdL3StM2oh7QQq44nCWiqKqc4qUI9Jmg==",
"type": "package",
"path": "microsoft.extensions.logging.abstractions/8.0.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"PACKAGE.md",
"THIRD-PARTY-NOTICES.TXT",
"analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll",
"analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll",
"analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll",
"analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
"analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
"buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets",
"buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets",
"buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets",
"buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets",
"buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets",
"lib/net462/Microsoft.Extensions.Logging.Abstractions.dll",
"lib/net462/Microsoft.Extensions.Logging.Abstractions.xml",
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll",
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml",
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll",
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml",
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll",
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml",
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll",
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml",
"microsoft.extensions.logging.abstractions.8.0.1.nupkg.sha512",
"microsoft.extensions.logging.abstractions.nuspec",
"useSharedDesignerContext.txt"
]
},
"Newtonsoft.Json/13.0.3": {
"sha512": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"type": "package",
"path": "newtonsoft.json/13.0.3",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.md",
"README.md",
"lib/net20/Newtonsoft.Json.dll",
"lib/net20/Newtonsoft.Json.xml",
"lib/net35/Newtonsoft.Json.dll",
"lib/net35/Newtonsoft.Json.xml",
"lib/net40/Newtonsoft.Json.dll",
"lib/net40/Newtonsoft.Json.xml",
"lib/net45/Newtonsoft.Json.dll",
"lib/net45/Newtonsoft.Json.xml",
"lib/net6.0/Newtonsoft.Json.dll",
"lib/net6.0/Newtonsoft.Json.xml",
"lib/netstandard1.0/Newtonsoft.Json.dll",
"lib/netstandard1.0/Newtonsoft.Json.xml",
"lib/netstandard1.3/Newtonsoft.Json.dll",
"lib/netstandard1.3/Newtonsoft.Json.xml",
"lib/netstandard2.0/Newtonsoft.Json.dll",
"lib/netstandard2.0/Newtonsoft.Json.xml",
"newtonsoft.json.13.0.3.nupkg.sha512",
"newtonsoft.json.nuspec",
"packageIcon.png"
]
},
"Npgsql/8.0.4": {
"sha512": "vaYEUlF/pB9m8bs21wQv3Da0kMHT4A9USe47VfY/L2BO97xz5KfIxhEu22QS9d68ZrLxvtL3wQDfDLPr2OjbjA==",
"type": "package",
"path": "npgsql/8.0.4",
"files": [
".nupkg.metadata",
".signature.p7s",
"README.md",
"lib/net6.0/Npgsql.dll",
"lib/net6.0/Npgsql.xml",
"lib/net7.0/Npgsql.dll",
"lib/net7.0/Npgsql.xml",
"lib/net8.0/Npgsql.dll",
"lib/net8.0/Npgsql.xml",
"lib/netstandard2.0/Npgsql.dll",
"lib/netstandard2.0/Npgsql.xml",
"lib/netstandard2.1/Npgsql.dll",
"lib/netstandard2.1/Npgsql.xml",
"npgsql.8.0.4.nupkg.sha512",
"npgsql.nuspec",
"postgresql.png"
]
},
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.374.78": {
"sha512": "MXd8GIxpZ2u4Tbb78wyQzqeyhSgyedZtegHYz7pOM0AmSiMwg/Eghx3xqO/owqo1dsyW20zf0mZflUcNX8rIOQ==",
"type": "package",
"path": "opcfoundation.netstandard.opc.ua.client/1.5.374.78",
"files": [
".nupkg.metadata",
".signature.p7s",
"NugetREADME.md",
"OPC Foundation MIT license.txt",
"images/logo.jpg",
"lib/net472/Opc.Ua.Client.dll",
"lib/net472/Opc.Ua.Client.xml",
"lib/net48/Opc.Ua.Client.dll",
"lib/net48/Opc.Ua.Client.xml",
"lib/net6.0/Opc.Ua.Client.dll",
"lib/net6.0/Opc.Ua.Client.xml",
"lib/net8.0/Opc.Ua.Client.dll",
"lib/net8.0/Opc.Ua.Client.xml",
"lib/netstandard2.0/Opc.Ua.Client.dll",
"lib/netstandard2.0/Opc.Ua.Client.xml",
"lib/netstandard2.1/Opc.Ua.Client.dll",
"lib/netstandard2.1/Opc.Ua.Client.xml",
"opcfoundation.netstandard.opc.ua.client.1.5.374.78.nupkg.sha512",
"opcfoundation.netstandard.opc.ua.client.nuspec"
]
},
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.374.78": {
"sha512": "bkOZFH+hQsBlZhsci+SaZWrT4yJRnWwmcJLl8BJecWCtW2u6QoC5U1muYHPMN/23ltu8xoy4CPIJMzPR6PNmRw==",
"type": "package",
"path": "opcfoundation.netstandard.opc.ua.configuration/1.5.374.78",
"files": [
".nupkg.metadata",
".signature.p7s",
"NugetREADME.md",
"OPC Foundation MIT license.txt",
"images/logo.jpg",
"lib/net472/Opc.Ua.Configuration.dll",
"lib/net472/Opc.Ua.Configuration.xml",
"lib/net48/Opc.Ua.Configuration.dll",
"lib/net48/Opc.Ua.Configuration.xml",
"lib/net6.0/Opc.Ua.Configuration.dll",
"lib/net6.0/Opc.Ua.Configuration.xml",
"lib/net8.0/Opc.Ua.Configuration.dll",
"lib/net8.0/Opc.Ua.Configuration.xml",
"lib/netstandard2.0/Opc.Ua.Configuration.dll",
"lib/netstandard2.0/Opc.Ua.Configuration.xml",
"lib/netstandard2.1/Opc.Ua.Configuration.dll",
"lib/netstandard2.1/Opc.Ua.Configuration.xml",
"opcfoundation.netstandard.opc.ua.configuration.1.5.374.78.nupkg.sha512",
"opcfoundation.netstandard.opc.ua.configuration.nuspec"
]
},
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.374.78": {
"sha512": "iyuo99u7QKv7ZWKGAUxCnGPCzJSThlzn93ce1EDGAH6AnPJHiWtFDQ1n4TlE03kGHA69yO5qlVPLdw+Z/RdYDw==",
"type": "package",
"path": "opcfoundation.netstandard.opc.ua.core/1.5.374.78",
"files": [
".nupkg.metadata",
".signature.p7s",
"NugetREADME.md",
"images/logo.jpg",
"lib/net472/Opc.Ua.Core.dll",
"lib/net472/Opc.Ua.Core.xml",
"lib/net48/Opc.Ua.Core.dll",
"lib/net48/Opc.Ua.Core.xml",
"lib/net6.0/Opc.Ua.Core.dll",
"lib/net6.0/Opc.Ua.Core.xml",
"lib/net8.0/Opc.Ua.Core.dll",
"lib/net8.0/Opc.Ua.Core.xml",
"lib/netstandard2.0/Opc.Ua.Core.dll",
"lib/netstandard2.0/Opc.Ua.Core.xml",
"lib/netstandard2.1/Opc.Ua.Core.dll",
"lib/netstandard2.1/Opc.Ua.Core.xml",
"licenses/LICENSE.txt",
"opcfoundation.netstandard.opc.ua.core.1.5.374.78.nupkg.sha512",
"opcfoundation.netstandard.opc.ua.core.nuspec"
]
},
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.374.78": {
"sha512": "iT++cPyzSnFAGJo9D0NPtHM+byBvIGeGGi535vGla2CTNAWvU1i7MH2T1PGqoYxiEY7dpKlqBlTtg3MQ3eXBrA==",
"type": "package",
"path": "opcfoundation.netstandard.opc.ua.security.certificates/1.5.374.78",
"files": [
".nupkg.metadata",
".signature.p7s",
"NugetREADME.md",
"OPC Foundation MIT license.txt",
"images/logo.jpg",
"lib/net472/Opc.Ua.Security.Certificates.dll",
"lib/net472/Opc.Ua.Security.Certificates.xml",
"lib/net48/Opc.Ua.Security.Certificates.dll",
"lib/net48/Opc.Ua.Security.Certificates.xml",
"lib/net6.0/Opc.Ua.Security.Certificates.dll",
"lib/net6.0/Opc.Ua.Security.Certificates.xml",
"lib/net8.0/Opc.Ua.Security.Certificates.dll",
"lib/net8.0/Opc.Ua.Security.Certificates.xml",
"lib/netstandard2.0/Opc.Ua.Security.Certificates.dll",
"lib/netstandard2.0/Opc.Ua.Security.Certificates.xml",
"lib/netstandard2.1/Opc.Ua.Security.Certificates.dll",
"lib/netstandard2.1/Opc.Ua.Security.Certificates.xml",
"opcfoundation.netstandard.opc.ua.security.certificates.1.5.374.78.nupkg.sha512",
"opcfoundation.netstandard.opc.ua.security.certificates.nuspec"
]
},
"System.Formats.Asn1/8.0.1": {
"sha512": "XqKba7Mm/koKSjKMfW82olQdmfbI5yqeoLV/tidRp7fbh5rmHAQ5raDI/7SU0swTzv+jgqtUGkzmFxuUg0it1A==",
"type": "package",
"path": "system.formats.asn1/8.0.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"buildTransitive/net461/System.Formats.Asn1.targets",
"buildTransitive/net462/_._",
"buildTransitive/net6.0/_._",
"buildTransitive/netcoreapp2.0/System.Formats.Asn1.targets",
"lib/net462/System.Formats.Asn1.dll",
"lib/net462/System.Formats.Asn1.xml",
"lib/net6.0/System.Formats.Asn1.dll",
"lib/net6.0/System.Formats.Asn1.xml",
"lib/net7.0/System.Formats.Asn1.dll",
"lib/net7.0/System.Formats.Asn1.xml",
"lib/net8.0/System.Formats.Asn1.dll",
"lib/net8.0/System.Formats.Asn1.xml",
"lib/netstandard2.0/System.Formats.Asn1.dll",
"lib/netstandard2.0/System.Formats.Asn1.xml",
"system.formats.asn1.8.0.1.nupkg.sha512",
"system.formats.asn1.nuspec",
"useSharedDesignerContext.txt"
]
},
"System.Security.Cryptography.Cng/5.0.0": {
"sha512": "jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==",
"type": "package",
"path": "system.security.cryptography.cng/5.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net46/System.Security.Cryptography.Cng.dll",
"lib/net461/System.Security.Cryptography.Cng.dll",
"lib/net461/System.Security.Cryptography.Cng.xml",
"lib/net462/System.Security.Cryptography.Cng.dll",
"lib/net462/System.Security.Cryptography.Cng.xml",
"lib/net47/System.Security.Cryptography.Cng.dll",
"lib/net47/System.Security.Cryptography.Cng.xml",
"lib/netcoreapp2.1/System.Security.Cryptography.Cng.dll",
"lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll",
"lib/netcoreapp3.0/System.Security.Cryptography.Cng.xml",
"lib/netstandard1.3/System.Security.Cryptography.Cng.dll",
"lib/netstandard1.4/System.Security.Cryptography.Cng.dll",
"lib/netstandard1.6/System.Security.Cryptography.Cng.dll",
"lib/netstandard2.0/System.Security.Cryptography.Cng.dll",
"lib/netstandard2.0/System.Security.Cryptography.Cng.xml",
"lib/netstandard2.1/System.Security.Cryptography.Cng.dll",
"lib/netstandard2.1/System.Security.Cryptography.Cng.xml",
"lib/uap10.0.16299/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net46/System.Security.Cryptography.Cng.dll",
"ref/net461/System.Security.Cryptography.Cng.dll",
"ref/net461/System.Security.Cryptography.Cng.xml",
"ref/net462/System.Security.Cryptography.Cng.dll",
"ref/net462/System.Security.Cryptography.Cng.xml",
"ref/net47/System.Security.Cryptography.Cng.dll",
"ref/net47/System.Security.Cryptography.Cng.xml",
"ref/netcoreapp2.0/System.Security.Cryptography.Cng.dll",
"ref/netcoreapp2.0/System.Security.Cryptography.Cng.xml",
"ref/netcoreapp2.1/System.Security.Cryptography.Cng.dll",
"ref/netcoreapp2.1/System.Security.Cryptography.Cng.xml",
"ref/netcoreapp3.0/System.Security.Cryptography.Cng.dll",
"ref/netcoreapp3.0/System.Security.Cryptography.Cng.xml",
"ref/netstandard1.3/System.Security.Cryptography.Cng.dll",
"ref/netstandard1.4/System.Security.Cryptography.Cng.dll",
"ref/netstandard1.6/System.Security.Cryptography.Cng.dll",
"ref/netstandard2.0/System.Security.Cryptography.Cng.dll",
"ref/netstandard2.0/System.Security.Cryptography.Cng.xml",
"ref/netstandard2.1/System.Security.Cryptography.Cng.dll",
"ref/netstandard2.1/System.Security.Cryptography.Cng.xml",
"ref/uap10.0.16299/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"runtimes/win/lib/net46/System.Security.Cryptography.Cng.dll",
"runtimes/win/lib/net461/System.Security.Cryptography.Cng.dll",
"runtimes/win/lib/net461/System.Security.Cryptography.Cng.xml",
"runtimes/win/lib/net462/System.Security.Cryptography.Cng.dll",
"runtimes/win/lib/net462/System.Security.Cryptography.Cng.xml",
"runtimes/win/lib/net47/System.Security.Cryptography.Cng.dll",
"runtimes/win/lib/net47/System.Security.Cryptography.Cng.xml",
"runtimes/win/lib/netcoreapp2.0/System.Security.Cryptography.Cng.dll",
"runtimes/win/lib/netcoreapp2.1/System.Security.Cryptography.Cng.dll",
"runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll",
"runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.xml",
"runtimes/win/lib/netstandard1.4/System.Security.Cryptography.Cng.dll",
"runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Cng.dll",
"runtimes/win/lib/uap10.0.16299/_._",
"system.security.cryptography.cng.5.0.0.nupkg.sha512",
"system.security.cryptography.cng.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
}
},
"projectFileDependencyGroups": {
"net8.0": [
"Npgsql >= 8.0.4",
"OPCFoundation.NetStandard.Opc.Ua.Client >= 1.5.374.78"
]
},
"packageFolders": {
"/home/pacer/.nuget/packages/": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj",
"projectName": "OpcPks.Core",
"projectPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj",
"packagesPath": "/home/pacer/.nuget/packages/",
"outputPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/",
"projectStyle": "PackageReference",
"configFilePaths": [
"/home/pacer/.nuget/NuGet/NuGet.Config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"Npgsql": {
"target": "Package",
"version": "[8.0.4, )"
},
"OPCFoundation.NetStandard.Opc.Ua.Client": {
"target": "Package",
"version": "[1.5.374.78, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/8.0.124/PortableRuntimeIdentifierGraph.json"
}
}
}
}

View File

@@ -0,0 +1,19 @@
{
"version": 2,
"dgSpecHash": "4hhhTNv5rdj9W8LEgtqRzvNnobbH+nWA4apshlgfd3j4OdsEpRlMXC2Q3X2ScEegniOPFgZFJJ9l+i9qtr7LrA==",
"success": true,
"projectFilePath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj",
"expectedPackageFiles": [
"/home/pacer/.nuget/packages/microsoft.extensions.dependencyinjection.abstractions/8.0.1/microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512",
"/home/pacer/.nuget/packages/microsoft.extensions.logging.abstractions/8.0.1/microsoft.extensions.logging.abstractions.8.0.1.nupkg.sha512",
"/home/pacer/.nuget/packages/newtonsoft.json/13.0.3/newtonsoft.json.13.0.3.nupkg.sha512",
"/home/pacer/.nuget/packages/npgsql/8.0.4/npgsql.8.0.4.nupkg.sha512",
"/home/pacer/.nuget/packages/opcfoundation.netstandard.opc.ua.client/1.5.374.78/opcfoundation.netstandard.opc.ua.client.1.5.374.78.nupkg.sha512",
"/home/pacer/.nuget/packages/opcfoundation.netstandard.opc.ua.configuration/1.5.374.78/opcfoundation.netstandard.opc.ua.configuration.1.5.374.78.nupkg.sha512",
"/home/pacer/.nuget/packages/opcfoundation.netstandard.opc.ua.core/1.5.374.78/opcfoundation.netstandard.opc.ua.core.1.5.374.78.nupkg.sha512",
"/home/pacer/.nuget/packages/opcfoundation.netstandard.opc.ua.security.certificates/1.5.374.78/opcfoundation.netstandard.opc.ua.security.certificates.1.5.374.78.nupkg.sha512",
"/home/pacer/.nuget/packages/system.formats.asn1/8.0.1/system.formats.asn1.8.0.1.nupkg.sha512",
"/home/pacer/.nuget/packages/system.security.cryptography.cng/5.0.0/system.security.cryptography.cng.5.0.0.nupkg.sha512"
],
"logs": []
}