OPC Core Components 3.00 (105.1) January 18, 2011 Overview The OPC Core Components consists of all shared OPC modules that need to be distributed by multiple vendors. These modules include DCOM proxy/stub libraries, the OPC Server Enumerator, .NET wrappers, etc. The OPC Core Components installer packages bundle modules from all released specifications for convenience. OPC Foundation Members, who have access to the source code version of the Core Components, may modify the installation projects to suit their own needs. The Core Components Redistributables installs the proxy/stubs and the .NET RCWs required to run applications that use the OPC COM based specifications. The Core Components SDK installs the headers and assemblies required to build applications that use the OPC COM based specifications. The latest version of this document always on the OPC foundation website. Any use of the OPC Core Components is subject to the terms the OPC Foundation License Agreement. Release Notes Build 105.1 This build addresses a number of significant issues including: Upgrades the projects to VS2008 Fixes the conflict between x64 and x86 versions of OpcEnum Adds a .NET RCW that supports the x64 and x86 platforms (MSIL compliant) All source code is installed in the $(LocalAppDataFolder) instead of $(ProgramFiles) On x64 systems the components install a new component called the Category Manager. This component makes x64 servers visible to x86 clients. The x64 version of the Core Components Redistributables installs the 32bit versions so it is the only package that needs to be installed on x64 systems. The OpcComRcw.dll replaces all of the OpcRcw.*.dlls. However, the old DLLs are still installed for backward compatibility. The Merge Modules install the development environment if the OPC_INSTALL_SDK property is set. The installers no longer try to detect the presence of Visual Studio. The SDK package always installs the development environment. All .NET assemblies are placed in GAC and $(ProgramFiles)\Reference Assemblies\OPC Foundation directory (the latter only for the development environment install). All C++ headers and typelibs are placed in $(CommonProgramFiles)\OPC Foundation\Include. The x64 versions are in the 'x64\Include' directory. The SDK package installs the Merge Modules in the $(CommonProgramFiles)\Merge Modules directory. Version History
Date | Version | Description
2003-01-31 | 1.00.0.07 | First release.
2003-02-06 | 1.01.0.00 | Incorporates currently released shared modules for all specifications.
2003-02-12 | 1.02.1.00 | Updated to reflect changes in the source code tree.
2003-02-19 | 1.10.1.00 | Incorporates a merge module for the SDK.
2003-02-27 | 1.10.1.02 | Removed dependency on .NET Framework from the Binaries installers; Added OPC DX components.
2003-03-02 | 1.10.1.03 | Fixes a bug during un-registration of OpcEnum; OpcEnum now registers itself as a service.
2003-03-03 | 1.10.1.04 | Added fields for natural byte alignment in DA and DX structures.
2003-03-04 | 1.10.1.05 | Fixed problem with DX .NET wrapper.
2003-03-05 | 1.10.1.06 | Fixed problem incorrect assembly version in Common .NET wrapper.
2003-06-04 | 1.12.1.01 | Incorporates interface changes into the DA and DX .NET wrappers. Removed dependency on .NET Framework from the SDK installers.
2003-06-30 | 2.00.1.00 | Updated to build with VS .NET 2003 and .NET Framework 1.1. Added project source code for HDA, Batch and Security proxy/stubs. Added .NET Wrappers for HDA and Security.
2003-08-12 | 2.00.1.02 | Minor update for administrative purposes.
2003-10-14 | 2.00.1.03 | Added constants used for Complex Data into the Data Access IDL and error header files. Added a registry key in the SDK merge module that makes the RCWs visible inside VS .NET.
2003-12-02 | 2.00.1.04 | Added .NET Wrappers for AE and Batch.
2004-02-04 | 2.00.1.06 | Minor updates to the HDA proxy/stub library.
2004-09-01 | 2.00.2.00 | Fixed name conflict for modules defined in the DA, AE, DX and Batch proxy/stub type libraries. Fixed array marshalling problem for IEnumXXX interfaces defined in the Comn, Da, Ae and Hda RCWs
2004-11-22 | 2.00.2.10 | Fixed namespace for AE, Batch and Security RCWs. Fixed bugs in the AE RCW. Changed byte packing for structs containing VARIANTs from 8 to 4.
2004-12-01 | 2.00.2.20 | Updated OpcEnum to use the DCOM configuration APIs from the Windows XP SP2 Platform SDK. No changes in behavior for OSes earlier than XP SP2 or W2003 SP1.
2005-11-25 | 2.00.2.30 | Added the PrimaryInteropAssembly attribute to all .NET RCWs.
2007-02-10 | 3.00.1.00 | Rebuilt all binaries with Visual Studio 2005 Linked .NET RCWs to .NET 2.0
2007-03-06 | 3.00.1.01 | Fixed bug in OpcEnum introduced by the port to VS2005.
2007-04-15 | 3.00.1.02 | Fixed problems with the installers and UAC on Vista. OpcEnum now registers itself as an NT service. Binaries did not change.
2008-05-10 | 3.00.100.0 | Added installer and merge module for the x64 versions of the proxy/stubs. Added Authenticode signature to all redistributable binaries.
2008-07-08 | 3.00.101.0 | Rebuilt assemblies using the correct strong name.
2009-02-05 | 3.00.101.2 | Fixed problem with installers and UAC on Vista.
2010-12-20 | 3.00.105.0 | Ported to VS2008, Fixed x64 compatibility issues.
2011-01-18 | 3.00.105.1 | Fixed problem with x64 version of OpcEnum.
Distribution The core components are distributed in several ways:
File | Description
OPC Core Components Redistributable (x86) | Installs the COM proxy/stubs, OpcEnum and the .NET 2.0 RCWs for x86 platforms.
OPC Core Components Redistributable (x64) | Installs the COM proxy/stubs, OpcEnum and the .NET 2.0 RCWs for x64 platforms (installs 32 bit and 64 bit versions).
OPC Core Components SDK | Installs the COM IDLs and C/C++ header files in the $(CommonProgramFiles) directory (always installs).
OPC Core Components Source Code | Installs the source code for the COM proxy/stubs, OpcEnum and the .NET 2.0 RCWs.
OPC COM ProxyStub Merge Module (x86) | A merge module containing the COM proxy/stubs and OpcEnum (no dependency on the .NET runtime) for x86 platforms.
OPC COM ProxyStub Merge Module (x64) | A merge module containing the COM proxy/stubs and OpcEnum (no dependency on the .NET runtime) for x64 platforms.
OPC .NET 2.0 RCWs Merge Module | A merge module containing the .NET 2.0 RCWs for all platforms.
System Requirements Requirements Operating Systems The Core Components binaries (excluding merge modules and installers) support the following operating systems: Windows 95 with DCOM95; Windows 98 with DCOM98; Windows ME; Windows NT; Windows 2000; Windows XP; Windows Server 2003; Windows Vista; Windows 7 The installers have only been tested on Windows XP and Windows 7 at this time. Installers The installers come with a setup.exe file. This is the file that must be used to install under Windows Vista. Double clicking on the MSI will cause an error. The installer packages are self-installing files; however, they require that Windows Installer 2.0 be present on the system (it is standard on Windows 2000 SP3 and Windows XP). The Windows Installer 2.0 support files for other operating systems can be downloaded from Microsoft's website at: Download Windows Installer 2.0 Redistributable for Windows NT 4.0 and 2000 Download Windows Installer 2.0 Redistributable for Windows 95, 98 and ME The installers automatically check if the .NET framework is installed on a particular system; if it is not found the .NET components are not installed. Source Code All source code projects require Visual Studio 2005 with Service Pack 1 installed. T he service pack can be downloaded here. Installation Redistributable All COM servers and proxy/stub libraries that have been previously released are installed in the system folder and reference counted in order to ensure compatibility with older install programs. New COM servers and proxy/stub libraries are installed in the common files folder under "OPC Foundation\Bin ". Shared .NET assemblies are signed with the OPC Foundation's master key-pair and installed in the Global Assembly Cache (GAC). The source code distribution includes a test key-pair that permits developers to experiment with the assemblies without affecting other vendor's applications. Vendors may install these assemblies in a vendor specific directory, but the vendor needs to recognize that .NET framework will look in the GAC for an assembly before probing the vendor specific directory. As a result, applications will use the assemblies in the GAC even if a vendor has installed copies in a vendor specific directory. Vendors who wish to always use their private versions must re-sign the assemblies with their own key pair and build their applications against these re-signed assemblies. This approach will not impact other applications that were built against the OPC Foundation signed and versioned assemblies. Source Code The Source Code installer places all files in the default directory: $(LocalAppDataFolder)\OPC Foundation\Core Components 3.00 The root of the source tree contains the following sub-directories:
Directory | Description
Bin | Executable and configuration files.
Keys | The key pairs used to sign .NET assemblies.
Merge Modules | Merge modules.
Source | Source code.

The 'Source' directory contains the following sub-directories:

Directory | Description
Bin | Exported COM servers and .NET assemblies.
Include | Exported C++ header files and type libraries.
Solutions | A directory containing the solutions used to build the components.
Alarms and Events | Source code related to the Alarms and Events specifications.
Batch | Source code related to the Batch specifications.
Common | Source code related to the Common specifications.
Commands | Source code related to the Common specifications.
Data Access | Source code related to the Data Access specifications.
Data eXchange | Source code related to the Data eXchange specification.
Historical Data Access | Source code related to the Historical Data Access specifications.
Security | Source code related to the Security specification.

The following projects directories exist in the specification specific sub-directories:

Directory | Description
Proxy Stub | The DCOM proxy/stub library.

Problem Reporting

As part of a broader initiative to increase adoption of OPC specifications and to improve service to members, the OPC Foundation intends to maintain binaries and sample code over time following a model similar to Open Source projects. Vendors are encouraged to report problems, bug fixes, enhancements and any other comments about the components supplied by the OPC Foundation. To support this effort, the OPC Foundation has technical staff prepared to review and incorporate feedback into the baseline and release new versions of the components and sample code in a timely manner for the benefit of all members.

Please note that this support is intended for OPC Foundation members who are incorporating OPC support into their products.

Problems related to a particular download should be posted to the appropriate group on the OPC Foundation Message Board.

Please send website comments or report any problems to: webmaster@opcfoundation.org