From a5f3a7813b8a638b7d87dabf3f7097ae45d59061 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6pke?= Date: Mon, 6 Apr 2020 14:01:48 +0200 Subject: [PATCH 1/6] Extended Documentation Added description on how to integrate new information model into OPC Server with DataTypes server as example --- .../Workshop/DataTypes/README.md | 7 ++ .../DataTypes/Server/DataTypes Server.csproj | 6 ++ .../_docs/IntegrateOwnInformationModel.md | 79 +++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 SampleApplications/Workshop/DataTypes/README.md create mode 100644 SampleApplications/Workshop/DataTypes/_docs/IntegrateOwnInformationModel.md diff --git a/SampleApplications/Workshop/DataTypes/README.md b/SampleApplications/Workshop/DataTypes/README.md new file mode 100644 index 0000000000..5c905f2474 --- /dev/null +++ b/SampleApplications/Workshop/DataTypes/README.md @@ -0,0 +1,7 @@ +## DataTypes Server + +This server is build using the UA-.NETStandard stack as example, how to use data types. + +Additional Resources: + +* [How to integrate new information model into OPC Server](./_docs/IntegrateOwnInformationModel.md) diff --git a/SampleApplications/Workshop/DataTypes/Server/DataTypes Server.csproj b/SampleApplications/Workshop/DataTypes/Server/DataTypes Server.csproj index 4542fffb94..c3d82507c2 100644 --- a/SampleApplications/Workshop/DataTypes/Server/DataTypes Server.csproj +++ b/SampleApplications/Workshop/DataTypes/Server/DataTypes Server.csproj @@ -117,6 +117,12 @@ + + README.md + + + _docs\IntegrateOwnInformationModel.md + SettingsSingleFileGenerator Settings.Designer.cs diff --git a/SampleApplications/Workshop/DataTypes/_docs/IntegrateOwnInformationModel.md b/SampleApplications/Workshop/DataTypes/_docs/IntegrateOwnInformationModel.md new file mode 100644 index 0000000000..ab4866a0fd --- /dev/null +++ b/SampleApplications/Workshop/DataTypes/_docs/IntegrateOwnInformationModel.md @@ -0,0 +1,79 @@ +# How to integrate new information model into OPC Server + +This documentation explains how to add a custom information model to OPC Server based on UA-.NETStandard stack. It will use the DataTypes server example as reference but the general steps are the same for every UA-.NETStandard stack based OPC Server. + +## Preparation + +1. Clone [Opc.Ua.ModelCompiler Repository](https://github.com/OPCFoundation/UA-ModelCompiler) +2. Build Opc.Ua.ModelCompiler solution +3. Copy the build result of Opc.Ua.ModelCompiler solution to [UA-.NETStandard/SampleApplications/bin](./../../bin) + +## Add own information model + +1. Create a Folder to to UA-.NETStandard/SampleApplications/Workshop/DataTypes/Common e.g. MyInformationModel + 1. Create a sub-folder named "Output" +2. Copy the model itself into this folder e.g. MyInformationModel.xml into UA-.NETStandard/SampleApplications/Workshop/DataTypes/Common/MyInformationModel +3. Modify [BuildDesign.bat](./Common/BuildDesign.bat) and add the following lines + +```cmd +echo Building MyInformationModel +Opc.Ua.ModelCompiler.exe -version v104 -d2 ".\MyInformationModel\MyInformationModel.xml" -cg ".\MyInformationModel\Output\MyInformationModel.csv" -o2 ".\MyInformationModel\Output" +echo Success! +``` + +4. Run [BuildDesign.bat](./Common/BuildDesign.bat) + +```cmd +.\Common\BuildDesign.bat +``` + +In case of an issue the Opc.Ua.ModelCompiler will show and error dialog, otherwise you will have different files in your output folder, that need to be added into the project. Either as source code or as embedded resource. + +## Use information model + +Extend the [DataTypesServer](./../Server/DataTypesServer.cs): + +```csharp +// in CreateMasterNodeManager method +server.Factory.AddEncodeableTypes(typeof(MyNamespace.Data.Types.MyDataType).Assembly); +``` + +Extend the [DataTypesNodeManager](./../Server/DataTypesNodeManager.cs): + +```csharp +// in constructor - add additional namespaces + +SetNamespaces( + Quickstarts.DataTypes.Namespaces.DataTypes, + Quickstarts.DataTypes.Types.Namespaces.DataTypes, + Quickstarts.DataTypes.Instances.Namespaces.DataTypeInstances, + MyNamespace.DataTypes.Namespaces.DataTypes, + MyNamespace.DataTypes.Types.Namespaces.DataTypes, + MyNamespace.DataTypes.Instances.Namespaces.DataTypeInstances); + +// CreateAddressSpace - load from XML and binary (when generated for specific model) + +BaseDataVariableState dictionary = (BaseDataVariableState)FindPredefinedNode( + ExpandedNodeId.ToNodeId(MyNamespace.DataTypes.Types.VariableIds.DataTypes_BinarySchema, Server.NamespaceUris), + typeof(BaseDataVariableState)); + +dictionary.Value = LoadSchemaFromResource("MyNamespace.DataTypes.Types.MyNamespace.DataTypes.Types.Types.bsd",typeof(MyNamespace.Data.Types.MyDataType).Assembly); + +dictionary = (BaseDataVariableState)FindPredefinedNode( + ExpandedNodeId.ToNodeId(MyNamespace.DataTypes.Types.VariableIds.DataTypes_XmlSchema, Server.NamespaceUris), + typeof(BaseDataVariableState)); + +dictionary.Value = LoadSchemaFromResource("MyNamespace.DataTypes.Types.MyNamespace.DataTypes.Types.Types.xsd", typeof(MyNamespace.Data.Types.MyDataType).Assembly); + +// in LoadPredefinedNodes +predefinedNodes.LoadFromBinaryResource(context, + "MyNamespace.DataTypes.Types.MyNamespace.DataTypes.Types.PredefinedNodes.uanodes", + typeof(MyNamespace.DataTypes.Types.MyDataType).Assembly, + true); +predefinedNodes.LoadFromBinaryResource(context, + "MyNamespace.DataTypes.Instances.MyNamespace.DataTypes.Instances.PredefinedNodes.uanodes", + typeof(MyNamespace.DataTypes.Types.MyDataType).GetTypeInfo().Assembly, + true); +``` + +Compile and run the DataTypes server, you should be able to connect with any OPC UA client (e.g. DataTypes Client) and to browse your own data types. From 5f1cfd7a8174ef44d6f02164ffe277bcc03601b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6pke?= Date: Wed, 8 Apr 2020 11:31:07 +0200 Subject: [PATCH 2/6] Updated texted based on Pull Request Comment --- SampleApplications/Workshop/DataTypes/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SampleApplications/Workshop/DataTypes/README.md b/SampleApplications/Workshop/DataTypes/README.md index 5c905f2474..c827f937d9 100644 --- a/SampleApplications/Workshop/DataTypes/README.md +++ b/SampleApplications/Workshop/DataTypes/README.md @@ -1,6 +1,6 @@ ## DataTypes Server -This server is build using the UA-.NETStandard stack as example, how to use data types. +This server is build using the UA-.NETStandard stack as example of how to define and use custom data types. Additional Resources: From b72605c941f14175ea722bbd4530f7cc49240fde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6pke?= Date: Wed, 8 Apr 2020 11:37:07 +0200 Subject: [PATCH 3/6] Implement Rull Request Review comment - add all text into README.md like for GDS --- .../Workshop/DataTypes/README.md | 82 ++++++++++++++++++- .../_docs/IntegrateOwnInformationModel.md | 79 ------------------ 2 files changed, 79 insertions(+), 82 deletions(-) delete mode 100644 SampleApplications/Workshop/DataTypes/_docs/IntegrateOwnInformationModel.md diff --git a/SampleApplications/Workshop/DataTypes/README.md b/SampleApplications/Workshop/DataTypes/README.md index c827f937d9..0037c5ed1d 100644 --- a/SampleApplications/Workshop/DataTypes/README.md +++ b/SampleApplications/Workshop/DataTypes/README.md @@ -1,7 +1,83 @@ -## DataTypes Server +# DataTypes Server This server is build using the UA-.NETStandard stack as example of how to define and use custom data types. -Additional Resources: +## How to integrate new information model into OPC Server -* [How to integrate new information model into OPC Server](./_docs/IntegrateOwnInformationModel.md) +This documentation explains how to add a custom information model to OPC Server based on UA-.NETStandard stack. It will use the DataTypes server example as reference but the general steps are the same for every UA-.NETStandard stack based OPC Server. + +### Preparation + +1. Clone [Opc.Ua.ModelCompiler Repository](https://github.com/OPCFoundation/UA-ModelCompiler) +2. Build Opc.Ua.ModelCompiler solution +3. Copy the build result of Opc.Ua.ModelCompiler solution to [UA-.NETStandard/SampleApplications/bin](./../../bin) + +### Add own information model + +1. Create a Folder to to UA-.NETStandard/SampleApplications/Workshop/DataTypes/Common e.g. MyInformationModel + 1. Create a sub-folder named "Output" +2. Copy the model itself into this folder e.g. MyInformationModel.xml into UA-.NETStandard/SampleApplications/Workshop/DataTypes/Common/MyInformationModel +3. Modify [BuildDesign.bat](./Common/BuildDesign.bat) and add the following lines + +```cmd +echo Building MyInformationModel +Opc.Ua.ModelCompiler.exe -version v104 -d2 ".\MyInformationModel\MyInformationModel.xml" -cg ".\MyInformationModel\Output\MyInformationModel.csv" -o2 ".\MyInformationModel\Output" +echo Success! +``` + +4. Run [BuildDesign.bat](./Common/BuildDesign.bat) + +```cmd +.\Common\BuildDesign.bat +``` + +In case of an issue the Opc.Ua.ModelCompiler will show and error dialog, otherwise you will have different files in your output folder, that need to be added into the project. Either as source code or as embedded resource. + +### Use information model + +Extend the [DataTypesServer](./../Server/DataTypesServer.cs): + +```csharp +// in CreateMasterNodeManager method +server.Factory.AddEncodeableTypes(typeof(MyNamespace.Data.Types.MyDataType).Assembly); +``` + +Extend the [DataTypesNodeManager](./../Server/DataTypesNodeManager.cs): + +```csharp +// in constructor - add additional namespaces + +SetNamespaces( + Quickstarts.DataTypes.Namespaces.DataTypes, + Quickstarts.DataTypes.Types.Namespaces.DataTypes, + Quickstarts.DataTypes.Instances.Namespaces.DataTypeInstances, + MyNamespace.DataTypes.Namespaces.DataTypes, + MyNamespace.DataTypes.Types.Namespaces.DataTypes, + MyNamespace.DataTypes.Instances.Namespaces.DataTypeInstances); + +// CreateAddressSpace - load from XML and binary (when generated for specific model) + +BaseDataVariableState dictionary = (BaseDataVariableState)FindPredefinedNode( + ExpandedNodeId.ToNodeId(MyNamespace.DataTypes.Types.VariableIds.DataTypes_BinarySchema, Server.NamespaceUris), + typeof(BaseDataVariableState)); + +dictionary.Value = LoadSchemaFromResource("MyNamespace.DataTypes.Types.MyNamespace.DataTypes.Types.Types.bsd",typeof(MyNamespace.Data.Types.MyDataType).Assembly); + +dictionary = (BaseDataVariableState)FindPredefinedNode( + ExpandedNodeId.ToNodeId(MyNamespace.DataTypes.Types.VariableIds.DataTypes_XmlSchema, Server.NamespaceUris), + typeof(BaseDataVariableState)); + +dictionary.Value = LoadSchemaFromResource("MyNamespace.DataTypes.Types.MyNamespace.DataTypes.Types.Types.xsd", typeof(MyNamespace.Data.Types.MyDataType).Assembly); + +// in LoadPredefinedNodes +predefinedNodes.LoadFromBinaryResource(context, + "MyNamespace.DataTypes.Types.MyNamespace.DataTypes.Types.PredefinedNodes.uanodes", + typeof(MyNamespace.DataTypes.Types.MyDataType).Assembly, + true); +predefinedNodes.LoadFromBinaryResource(context, + "MyNamespace.DataTypes.Instances.MyNamespace.DataTypes.Instances.PredefinedNodes.uanodes", + typeof(MyNamespace.DataTypes.Types.MyDataType).GetTypeInfo().Assembly, + true); +``` + +Compile and run the DataTypes server, you should be able to connect with any OPC UA client (e.g. DataTypes Client) and to browse your own data types. diff --git a/SampleApplications/Workshop/DataTypes/_docs/IntegrateOwnInformationModel.md b/SampleApplications/Workshop/DataTypes/_docs/IntegrateOwnInformationModel.md deleted file mode 100644 index ab4866a0fd..0000000000 --- a/SampleApplications/Workshop/DataTypes/_docs/IntegrateOwnInformationModel.md +++ /dev/null @@ -1,79 +0,0 @@ -# How to integrate new information model into OPC Server - -This documentation explains how to add a custom information model to OPC Server based on UA-.NETStandard stack. It will use the DataTypes server example as reference but the general steps are the same for every UA-.NETStandard stack based OPC Server. - -## Preparation - -1. Clone [Opc.Ua.ModelCompiler Repository](https://github.com/OPCFoundation/UA-ModelCompiler) -2. Build Opc.Ua.ModelCompiler solution -3. Copy the build result of Opc.Ua.ModelCompiler solution to [UA-.NETStandard/SampleApplications/bin](./../../bin) - -## Add own information model - -1. Create a Folder to to UA-.NETStandard/SampleApplications/Workshop/DataTypes/Common e.g. MyInformationModel - 1. Create a sub-folder named "Output" -2. Copy the model itself into this folder e.g. MyInformationModel.xml into UA-.NETStandard/SampleApplications/Workshop/DataTypes/Common/MyInformationModel -3. Modify [BuildDesign.bat](./Common/BuildDesign.bat) and add the following lines - -```cmd -echo Building MyInformationModel -Opc.Ua.ModelCompiler.exe -version v104 -d2 ".\MyInformationModel\MyInformationModel.xml" -cg ".\MyInformationModel\Output\MyInformationModel.csv" -o2 ".\MyInformationModel\Output" -echo Success! -``` - -4. Run [BuildDesign.bat](./Common/BuildDesign.bat) - -```cmd -.\Common\BuildDesign.bat -``` - -In case of an issue the Opc.Ua.ModelCompiler will show and error dialog, otherwise you will have different files in your output folder, that need to be added into the project. Either as source code or as embedded resource. - -## Use information model - -Extend the [DataTypesServer](./../Server/DataTypesServer.cs): - -```csharp -// in CreateMasterNodeManager method -server.Factory.AddEncodeableTypes(typeof(MyNamespace.Data.Types.MyDataType).Assembly); -``` - -Extend the [DataTypesNodeManager](./../Server/DataTypesNodeManager.cs): - -```csharp -// in constructor - add additional namespaces - -SetNamespaces( - Quickstarts.DataTypes.Namespaces.DataTypes, - Quickstarts.DataTypes.Types.Namespaces.DataTypes, - Quickstarts.DataTypes.Instances.Namespaces.DataTypeInstances, - MyNamespace.DataTypes.Namespaces.DataTypes, - MyNamespace.DataTypes.Types.Namespaces.DataTypes, - MyNamespace.DataTypes.Instances.Namespaces.DataTypeInstances); - -// CreateAddressSpace - load from XML and binary (when generated for specific model) - -BaseDataVariableState dictionary = (BaseDataVariableState)FindPredefinedNode( - ExpandedNodeId.ToNodeId(MyNamespace.DataTypes.Types.VariableIds.DataTypes_BinarySchema, Server.NamespaceUris), - typeof(BaseDataVariableState)); - -dictionary.Value = LoadSchemaFromResource("MyNamespace.DataTypes.Types.MyNamespace.DataTypes.Types.Types.bsd",typeof(MyNamespace.Data.Types.MyDataType).Assembly); - -dictionary = (BaseDataVariableState)FindPredefinedNode( - ExpandedNodeId.ToNodeId(MyNamespace.DataTypes.Types.VariableIds.DataTypes_XmlSchema, Server.NamespaceUris), - typeof(BaseDataVariableState)); - -dictionary.Value = LoadSchemaFromResource("MyNamespace.DataTypes.Types.MyNamespace.DataTypes.Types.Types.xsd", typeof(MyNamespace.Data.Types.MyDataType).Assembly); - -// in LoadPredefinedNodes -predefinedNodes.LoadFromBinaryResource(context, - "MyNamespace.DataTypes.Types.MyNamespace.DataTypes.Types.PredefinedNodes.uanodes", - typeof(MyNamespace.DataTypes.Types.MyDataType).Assembly, - true); -predefinedNodes.LoadFromBinaryResource(context, - "MyNamespace.DataTypes.Instances.MyNamespace.DataTypes.Instances.PredefinedNodes.uanodes", - typeof(MyNamespace.DataTypes.Types.MyDataType).GetTypeInfo().Assembly, - true); -``` - -Compile and run the DataTypes server, you should be able to connect with any OPC UA client (e.g. DataTypes Client) and to browse your own data types. From 75a841ed1aefa47f88ab9f4a31751455a084cdba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6pke?= Date: Wed, 8 Apr 2020 11:43:35 +0200 Subject: [PATCH 4/6] Implement Pull Request Comment - updated links, removed _docs folder from csproj --- SampleApplications/Workshop/DataTypes/README.md | 4 ++-- .../Workshop/DataTypes/Server/DataTypes Server.csproj | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/SampleApplications/Workshop/DataTypes/README.md b/SampleApplications/Workshop/DataTypes/README.md index 0037c5ed1d..d91f550b20 100644 --- a/SampleApplications/Workshop/DataTypes/README.md +++ b/SampleApplications/Workshop/DataTypes/README.md @@ -35,14 +35,14 @@ In case of an issue the Opc.Ua.ModelCompiler will show and error dialog, otherwi ### Use information model -Extend the [DataTypesServer](./../Server/DataTypesServer.cs): +Extend the [DataTypesServer](./Server/DataTypesServer.cs): ```csharp // in CreateMasterNodeManager method server.Factory.AddEncodeableTypes(typeof(MyNamespace.Data.Types.MyDataType).Assembly); ``` -Extend the [DataTypesNodeManager](./../Server/DataTypesNodeManager.cs): +Extend the [DataTypesNodeManager](./Server/DataTypesNodeManager.cs): ```csharp // in constructor - add additional namespaces diff --git a/SampleApplications/Workshop/DataTypes/Server/DataTypes Server.csproj b/SampleApplications/Workshop/DataTypes/Server/DataTypes Server.csproj index c3d82507c2..a326378251 100644 --- a/SampleApplications/Workshop/DataTypes/Server/DataTypes Server.csproj +++ b/SampleApplications/Workshop/DataTypes/Server/DataTypes Server.csproj @@ -120,9 +120,6 @@ README.md - - _docs\IntegrateOwnInformationModel.md - SettingsSingleFileGenerator Settings.Designer.cs From 75275f817d6793815864098ad88bedf529cc0386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6pke?= Date: Fri, 10 Apr 2020 14:43:15 +0200 Subject: [PATCH 5/6] When using uanodes file the schema information are already included, therefor it is not necessary to load the schema (*.xsd, *.bsd) separately. * Removed loading of schema from README * Removed unnecessary source code from DataTypesNodeManager --- SampleApplications/Workshop/DataTypes/README.md | 17 +++-------------- .../DataTypes/Server/DataTypesNodeManager.cs | 15 +-------------- 2 files changed, 4 insertions(+), 28 deletions(-) diff --git a/SampleApplications/Workshop/DataTypes/README.md b/SampleApplications/Workshop/DataTypes/README.md index d91f550b20..4430e1ea5b 100644 --- a/SampleApplications/Workshop/DataTypes/README.md +++ b/SampleApplications/Workshop/DataTypes/README.md @@ -55,21 +55,8 @@ SetNamespaces( MyNamespace.DataTypes.Types.Namespaces.DataTypes, MyNamespace.DataTypes.Instances.Namespaces.DataTypeInstances); -// CreateAddressSpace - load from XML and binary (when generated for specific model) - -BaseDataVariableState dictionary = (BaseDataVariableState)FindPredefinedNode( - ExpandedNodeId.ToNodeId(MyNamespace.DataTypes.Types.VariableIds.DataTypes_BinarySchema, Server.NamespaceUris), - typeof(BaseDataVariableState)); - -dictionary.Value = LoadSchemaFromResource("MyNamespace.DataTypes.Types.MyNamespace.DataTypes.Types.Types.bsd",typeof(MyNamespace.Data.Types.MyDataType).Assembly); - -dictionary = (BaseDataVariableState)FindPredefinedNode( - ExpandedNodeId.ToNodeId(MyNamespace.DataTypes.Types.VariableIds.DataTypes_XmlSchema, Server.NamespaceUris), - typeof(BaseDataVariableState)); - -dictionary.Value = LoadSchemaFromResource("MyNamespace.DataTypes.Types.MyNamespace.DataTypes.Types.Types.xsd", typeof(MyNamespace.Data.Types.MyDataType).Assembly); - // in LoadPredefinedNodes + predefinedNodes.LoadFromBinaryResource(context, "MyNamespace.DataTypes.Types.MyNamespace.DataTypes.Types.PredefinedNodes.uanodes", typeof(MyNamespace.DataTypes.Types.MyDataType).Assembly, @@ -81,3 +68,5 @@ predefinedNodes.LoadFromBinaryResource(context, ``` Compile and run the DataTypes server, you should be able to connect with any OPC UA client (e.g. DataTypes Client) and to browse your own data types. + +*Remark* you don't need to load schema files (*.xsd, *.bsd) because the *.uanodes files contains those information already. diff --git a/SampleApplications/Workshop/DataTypes/Server/DataTypesNodeManager.cs b/SampleApplications/Workshop/DataTypes/Server/DataTypesNodeManager.cs index 0a9666283c..89ec4cba43 100644 --- a/SampleApplications/Workshop/DataTypes/Server/DataTypesNodeManager.cs +++ b/SampleApplications/Workshop/DataTypes/Server/DataTypesNodeManager.cs @@ -57,7 +57,7 @@ public DataTypesNodeManager(IServerInternal server, ApplicationConfiguration con SetNamespaces( Quickstarts.DataTypes.Namespaces.DataTypes, - Quickstarts.DataTypes.Types.Namespaces.DataTypes, + Quickstarts.DataTypes.Types.Namespaces.DataTypes, Quickstarts.DataTypes.Instances.Namespaces.DataTypeInstances); // get the configuration for the node manager. @@ -116,19 +116,6 @@ public override void CreateAddressSpace(IDictionary> e lock (Lock) { base.CreateAddressSpace(externalReferences); - - BaseDataVariableState dictionary = (BaseDataVariableState)FindPredefinedNode( - ExpandedNodeId.ToNodeId(Quickstarts.DataTypes.Types.VariableIds.DataTypes_BinarySchema, Server.NamespaceUris), - typeof(BaseDataVariableState)); - - dictionary.Value = LoadSchemaFromResource("Quickstarts.DataTypes.Types.Quickstarts.DataTypes.Types.Types.bsd",typeof(Quickstarts.DataTypes.Types.VehicleType).Assembly); - - dictionary = (BaseDataVariableState)FindPredefinedNode( - ExpandedNodeId.ToNodeId(Quickstarts.DataTypes.Types.VariableIds.DataTypes_XmlSchema, Server.NamespaceUris), - typeof(BaseDataVariableState)); - - dictionary.Value = LoadSchemaFromResource("Quickstarts.DataTypes.Types.Quickstarts.DataTypes.Types.Types.xsd", typeof(Quickstarts.DataTypes.Types.VehicleType).Assembly); - } } From bfab35a649ba6ea2f1d5a86ba9164cada4feb1fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Oct 2021 19:02:30 +0000 Subject: [PATCH 6/6] Bump Portable.BouncyCastle from 1.8.6.7 to 1.9.0 Bumps [Portable.BouncyCastle](https://github.com/novotnyllc/bc-csharp) from 1.8.6.7 to 1.9.0. - [Release notes](https://github.com/novotnyllc/bc-csharp/releases) - [Commits](https://github.com/novotnyllc/bc-csharp/compare/pcl-v1.8.6.7...pcl-v1.9.0) --- updated-dependencies: - dependency-name: Portable.BouncyCastle dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Stack/Opc.Ua.Core/Opc.Ua.Core.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Stack/Opc.Ua.Core/Opc.Ua.Core.csproj b/Stack/Opc.Ua.Core/Opc.Ua.Core.csproj index 0090702fe4..aa8ec9d3b4 100644 --- a/Stack/Opc.Ua.Core/Opc.Ua.Core.csproj +++ b/Stack/Opc.Ua.Core/Opc.Ua.Core.csproj @@ -35,7 +35,7 @@ - +