Forum Replies Created
-
AuthorPosts
-
kumajaya
ParticipantMonoDevelop create a bit more simple changes with a same packages.config contents:
@@ -53,6 +53,9 @@ <Name>ScadaCommon</Name> </ProjectReference> </ItemGroup> + <ItemGroup> + <None Include="packages.config" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. @@ -61,4 +64,5 @@ <Target Name="AfterBuild"> </Target> --> + <Import Project="..\packages\Microsoft.NETFramework.ReferenceAssemblies.net48.1.0.3\build\Microsoft.NETFramework.ReferenceAssemblies.net48.targets" Condition="Exists('..\packages \Microsoft.NETFramework.ReferenceAssemblies.net48.1.0.3\build\Microsoft.NETFramework.ReferenceAssemblies.net48.targets')" /> </Project> \ No newline at end of fileBoth need a manual nuget CLI command to restore package:
mono /usr/local/bin/nuget.exe restore ScadaCommon.Svc/ScadaCommon.Svc.csproj -PackagesDirectory packages-
This reply was modified 3 years, 9 months ago by
kumajaya.
kumajaya
ParticipantYes, we can use VS 2022 to add nuget package Microsoft.NETFramework.ReferenceAssemblies.net48 with a complex change to ScadaCommon.Svc.csproj and packages.config added with content:
<?xml version="1.0" encoding="utf-8"?> <packages> <package id="Microsoft.NETFramework.ReferenceAssemblies.net48" version="1.0.3" targetFramework="net48" developmentDependency="true" /> </packages>As a patch to ScadaCommon.Svc.csproj:
@@ -12,6 +12,8 @@ <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <TargetFrameworkProfile /> + <NuGetPackageImportStamp> + </NuGetPackageImportStamp> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> @@ -53,7 +55,17 @@ <Name>ScadaCommon</Name> </ProjectReference> </ItemGroup> + <ItemGroup> + <None Include="packages.config" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <Import Project="..\packages\Microsoft.NETFramework.ReferenceAssemblies.net48.1.0.3\build\Microsoft.NETFramework.ReferenceAssemblies.net48.targets" Condition="Exists('..\packages\Microsoft.NETFramework.ReferenceAssemblies.net48.1.0.3\build\Microsoft.NETFramework.ReferenceAssemblies.net48.targets')" /> + <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> + <PropertyGroup> + <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> + </PropertyGroup> + <Error Condition="!Exists('..\packages\Microsoft.NETFramework.ReferenceAssemblies.net48.1.0.3\build\Microsoft.NETFramework.ReferenceAssemblies.net48.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.NETFramework.ReferenceAssemblies.net48.1.0.3\build\Microsoft.NETFramework.ReferenceAssemblies.net48.targets'))" /> + </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. <Target Name="BeforeBuild">-
This reply was modified 3 years, 9 months ago by
kumajaya.
kumajaya
ParticipantI’m not familiar with VS. The compiler try to find .NetFramework v4.8:
error MSB3644: The reference assemblies for .NETFramework,Version=v4.8 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacksand add per https://github.com/Microsoft/dotnet/tree/main/releases/reference-assemblies instructions:
<ItemGroup> <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" PrivateAssets="All" /> </ItemGroup>fix it.
kumajaya
ParticipantIt’s normal because no object reference anywhere yet. In VS Code terminal type:
dotnet build ScadaCommon.sln -c ReleaseYou will got your first error because of cross compiling Windows app on Linux, modify ScadaCommon.Forms.csproj like:
<Copyright>Copyright © 2022</Copyright> <EnableWindowsTargeting>true</EnableWindowsTargeting>Run again dotnet build, you will got your second error. Edit ScadaCommon.Svc.csproj like:
</Target> --> <ItemGroup> <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference> </ItemGroup> </Project>Run dotnet build again, profit!
kumajaya
ParticipantYes, I confirm without https endpoints, UAExpert not list https access anymore but Opc.Ua.Bindings.Https.dll still requested.
To confirm communicator exception, you can watch ScadaComm.log while restart Scada server.
kumajaya
ParticipantCan’t create historical data and event reports because PlgMain.Report.dll not included in ScadaWeb.
System.IO.FileNotFoundException: Could not load file or assembly 'PlgMain.Report, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.-
This reply was modified 3 years, 9 months ago by
kumajaya.
kumajaya
ParticipantStill working as OPC UA client and server but in log:
Resolver could not find assembly 'Opc.Ua.Bindings.Https, Version=1.4.370.0, Culture=neutral, PublicKeyToken=bfa7a73c5cf4b6e8' requested by 'Opc.Ua.Core, Version=1.4.370.0, Culture=neutral, PublicKeyToken=bfa7a73c5cf4b6e8'Communicator seems like not handle server restart nicely:
Data source ScadaServer: Error receiving telecontrol commands: Scada.ScadaException: Incorrect format of data received from the server: unable to read data packet header at Scada.Client.ClientBase.ReceiveResponse(DataPacket request) at Scada.Client.ScadaClient.GetCommand() at Scada.Comm.Drivers.DrvDsScadaServer.Logic.ScadaServerDSL.ReceiveCommands() Data source ScadaServer: Error receiving telecontrol commands: System.IO.IOException: Unable to write data to the transport connection: Broken pipe. ---> System.Net.Sockets.SocketException (32): Broken pipe at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 count) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 count) at Scada.Client.ClientBase.SendRequest(DataPacket request) at Scada.Client.ScadaClient.GetCommand() at Scada.Comm.Drivers.DrvDsScadaServer.Logic.ScadaServerDSL.ReceiveCommands()kumajaya
ParticipantMy previous build still left some native library in place. For a big clean Administrator distribution:
cd ScadaAdmin/ScadaAdmin dotnet publish ScadaAdmin.sln -c Release -r win-x64 --self-contained true -p:PublishReadyToRun=true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=truekumajaya
ParticipantXct will remove no existence key, add a new key with a pink background cell (a mark for empty translation), but can’t detect content changes.
kumajaya
ParticipantMy modified Xml Content Translator always sync to github for base language 😀 A complete SCADA 6 xml language raw url included. Yes, I’ll make a pull request for Indonesian language support.
kumajaya
ParticipantDon’t worry, Administrator run so smooth on Wine.
kumajaya
ParticipantScheme editor a bit problematic, the best solution for now run it using mono:
mono ScadaSchemeEditor.exekumajaya
ParticipantAdministrator run smoothly on Ubuntu Linux, feel like a native app. With all my patch to github, my publish command to make a single-file executable with dotnet runtime included:
From scada-v6 source root:
cd ScadaAdmin/ScadaAdmin dotnet publish ScadaAdmin.sln -c Release -r win-x64 --self-contained true -p:PublishReadyToRun=true -p:PublishSingleFile=trueand Administrator ready for us in:
ScadaAdmin/ScadaAdmin/ScadaAdmin/bin/Release/net6.0-windows/win-x64/publishI believe a fix for crypto problem to make OPC UA client works will come from Wine soon or later.
-
This reply was modified 3 years, 9 months ago by
kumajaya.
kumajaya
ParticipantSorry, the correct one:
<?xml version=”1.0″ encoding=”utf-8″ ?>
<ScadaDictionaries name=”English”>
<General>
<CultureName>en-GB</CultureName>
</General>
<!– ScadaCommon.dll –>
<Dictionary key=”Scada.Application”>
<Phrase key=”ProductName”>Rapid SCADA</Phrase>
<Phrase key=”ServerAppName”>Server</Phrase>
<Phrase key=”CommAppName”>Communicator</Phrase>
.
.
</ScadaDictionaries>kumajaya
ParticipantUnmodified vs modified Xml Content Translator:
https://drive.google.com/file/d/11wvlILgn69QzILmo7sKf57SBgPt7KHc9/preview
-
This reply was modified 3 years, 9 months ago by
-
AuthorPosts