Professional OPC
Development Tools

logos

Build errors in Visual Studio 2017 Setup & Deployment

More
06 Nov 2018 09:08 #6830 by support
Hello,
there are basically two issues here:

1. "Unable to find dependency" warnings. They are benign and you can ignore them. The "missing" assemblies are embedded inside the QuickOPC assemblies, so they do not need to be present. If you really wanted, you could obtain these assemblies by performing a custom install of QuickOPC and select "Embedded assemblies" in Installation Components, but it is not necessary.

2. Errors - File '...' targeting '...' is not compatible with the project's target platform 'x86'.

QuickOPC Classic is internally implemented in managed C++ which can only generate mixed-mode assemblies, i.e. assemblies combining MSIL code and native code. These assemblies are therefore always either 32-bit or 64-bit, there are no "neutral", MSIL-only assemblies possible. QuickOPC comes with both 32-bit and 64-bit builds of these, and loads the right one dynamically, based on whether the application runs in 32-bit or 64-bit process.

If your installer tool does not like it, you need to find a way inside the installer to make it work. Too much intelligence on the part of the installer tool here. All that's needed is to place these two App_Web_* assemblies alongside the other assemblies. I do not know the specifics of VS Setup&Deployment projects to be able to tell you how to do it, sorry.

a) This way (deploying both the App_Web_*), the application will be able to run in either 32- or 64-bit process.

b) Alternatively, if you know your app will always run on a 64-bit machine, you should be able to switch the installer project to 64-bit, and remove the App_Web_OpcLabs.EasyOpcClassicRaw.x86.dll file from the installation

c) Alternatively, you can make your app to always run in 32-bit process (on 32-bit machines and on 64-bit machines). You can then remove the App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll file from the installation, AND (to prevent the app from running in 64-bit process), change the main project's "platform target" (in Project Properties in VS) from "Any CPU" to "x86", or use the CORFLAGS utility ( docs.microsoft.com/en-us/dotnet/framework/tools/corflags-exe-corflags-conversion-tool ) with /32BITREQ+ on the executable.

Best regards

Please Log in or Create an account to join the conversation.

More
05 Nov 2018 20:24 #6829 by jgreg311
I've just started to get build errors when building my Setup & Deployment project in Visual Studio 2017. It used to build just fine. I've upgraded to 5.53 (QuickOPC 2018.2), and I'm guessing something went wrong in doing so.
In my project, I'm referencing OpcLabs.BaseLib and OpcLabs.EasyOpcClassic (from the 2018.2\Aseemblies\net452 folder).
The class library project builds just fine, no errors at all. The issue comes when building my Setup & Deployment project. The deployment project has the Project Output included for the class library referencing EasyOpc. All projects target .net 4.52 and the x86 platform.

There are confusing dependency errors, and I have no idea why it's trying to use an "App_Web_Opc" dll, especially for amd64 (this solution consists of class libraries, a Windows service project, and a WinForms application - nothing web related).

Any help would be GREATLY appreciated!

Here is the output when building the Setup and Deployment project:

Starting pre-build validation for project 'Setup'
WARNING: Unable to find dependency 'BOXEDAPPSDK.MANAGED' (Signature='84FE779840C3B626' Version='3.3.14.0') of assembly 'OpcLabs.BaseLib.dll'
WARNING: Unable to find dependency 'BOXEDAPPSDK.MANAGED' (Signature='84FE779840C3B626' Version='3.3.14.0') of assembly 'OpcLabs.BaseLib.dll'
WARNING: Unable to find dependency 'OPCNETAPI' (Signature='6FADDCA41DACB409' Version='5.53.315.1') of assembly 'OpcLabs.EasyOpcClassic.dll'
WARNING: Unable to find dependency 'OPCNETAPI' (Signature='6FADDCA41DACB409' Version='5.53.315.1') of assembly 'OpcLabs.EasyOpcClassic.dll'
WARNING: Unable to find dependency 'OPCNETAPI.XML' (Signature='6FADDCA41DACB409' Version='5.53.315.1') of assembly 'OpcLabs.EasyOpcClassic.dll'
WARNING: Unable to find dependency 'OPCNETAPI.XML' (Signature='6FADDCA41DACB409' Version='5.53.315.1') of assembly 'OpcLabs.EasyOpcClassic.dll'
WARNING: Unable to find dependency 'OPCNETAPI.COM' (Signature='6FADDCA41DACB409' Version='5.53.315.1') of assembly 'OpcLabs.EasyOpcClassic.dll'
WARNING: Unable to find dependency 'OPCNETAPI.COM' (Signature='6FADDCA41DACB409' Version='5.53.315.1') of assembly 'OpcLabs.EasyOpcClassic.dll'
WARNING: Unable to find dependency 'OPC.UA.CLIENT' (Signature='6FADDCA41DACB409' Version='1.2.336.0') of assembly 'OpcLabs.EasyOpcUA.dll'
WARNING: Unable to find dependency 'OPC.UA.CLIENT' (Signature='6FADDCA41DACB409' Version='1.2.336.0') of assembly 'OpcLabs.EasyOpcUA.dll'
WARNING: Unable to find dependency 'OPC.UA.CONFIGURATION' (Signature='6FADDCA41DACB409' Version='1.3.340.0') of assembly 'OpcLabs.EasyOpcUA.dll'
WARNING: Unable to find dependency 'OPC.UA.CONFIGURATION' (Signature='6FADDCA41DACB409' Version='1.3.340.0') of assembly 'OpcLabs.EasyOpcUA.dll'
WARNING: Unable to find dependency 'OPC.UA.CORE' (Signature='6FADDCA41DACB409' Version='1.3.340.0') of assembly 'OpcLabs.EasyOpcUA.dll'
WARNING: Unable to find dependency 'OPC.UA.CORE' (Signature='6FADDCA41DACB409' Version='1.3.340.0') of assembly 'OpcLabs.EasyOpcUA.dll'
WARNING: Unable to find dependency 'BOXEDAPPSDK.MANAGED' (Signature='84FE779840C3B626' Version='2018.2.0.0') of assembly 'OpcLabs.BaseLib.dll'
WARNING: Unable to find dependency 'BOXEDAPPSDK.MANAGED' (Signature='84FE779840C3B626' Version='2018.2.0.0') of assembly 'OpcLabs.BaseLib.dll'
WARNING: Unable to find dependency 'OPCNETAPI' (Signature='6FADDCA41DACB409' Version='2.1.105.1') of assembly 'OpcLabs.EasyOpcClassic.dll'
WARNING: Unable to find dependency 'OPCNETAPI' (Signature='6FADDCA41DACB409' Version='2.1.105.1') of assembly 'OpcLabs.EasyOpcClassic.dll'
WARNING: Unable to find dependency 'OPCNETAPI.XML' (Signature='6FADDCA41DACB409' Version='2.1.105.1') of assembly 'OpcLabs.EasyOpcClassic.dll'
WARNING: Unable to find dependency 'OPCNETAPI.XML' (Signature='6FADDCA41DACB409' Version='2.1.105.1') of assembly 'OpcLabs.EasyOpcClassic.dll'
WARNING: Unable to find dependency 'OPCNETAPI.COM' (Signature='6FADDCA41DACB409' Version='2.1.105.1') of assembly 'OpcLabs.EasyOpcClassic.dll'
WARNING: Unable to find dependency 'OPCNETAPI.COM' (Signature='6FADDCA41DACB409' Version='2.1.105.1') of assembly 'OpcLabs.EasyOpcClassic.dll'
Pre-build validation for project 'Setup' completed

Pre-build validation for project 'Setup' completed
12>
Build started: Project: Setup, Configuration: Release
12>
Build started: Project: Setup, Configuration: Release
Building file 'C:\....msi'... <name excluded for privacy>
Building file 'C:\....msi'... <name excluded for privacy>
ERROR: File 'App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
ERROR: File 'App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
WARNING: File 'App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
ERROR: File 'App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
ERROR: File 'App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'
WARNING: File 'App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
WARNING: File 'App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll' targeting 'x64' is not compatible with the project's target platform 'x86'
Build process cancelled

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.177 seconds

      

 Recommend this on Google