OPC Core Components 3.00 (101.2) February 5, 2009 Overview Build 100.1 used the wrong key to sign the .NET Assemblies. This will prevent applications from using configuration files to redirect dependencies without recompiling. Applications that incorporate the Core Components Merge Module(s) into their installer will not be affected. This is a minor update to the x64 installers that should resolve a conflict between the 64-bit and 32-bit versions of OpcEnum (the x64 installers install but register OpcEnum as a Local EXE instead of a Service). Developers of 64-bits will need to verify that the 32-bit version of OpcEnum can see their servers (this will likely require that 64-bit servers manually create registry entries in the 32-bit registry - more information will be posted in the forum as it becomes available). This release of the Core Components adds support for x64 systems and includes binaries and merge modules with authenticode signatures. The file version attribute in the executables has been incremented to *.*.100.0 to ensure that all binaries released together have a common portion of the version number. This release of the core components is collectively called "Build 100". Any problems reports related to the binaries in this distribution should reference this build number. The product version field in the binaries has not been incremented since the APIs have not changed. The .NET COM interop assemblies are built against the 32-bit versions of the proxy/stubs. This means that any .NET application running on x64 systems must be compiled and run as a 32-bit application. Developers using the RCWs can ensure their applications run correctly if they set the platform target to x86 for any .NET executable that directly or indirectly uses the RCWs. The platform target setting can be found by opening 'Project Properties' and selecting the 'Build' tab. Note that installing both the x86 and the x64 versions of the proxy/stubs on the same system appears to cause problems for some OPC applications. Reinstalling the 32-bit version of the Core Components Redistributables appears to resolve this problem. The Core Components Redistributables installer will install everything that a developer needs (e.g. headers, assemblies outside of the GAC, etc) provided Visual Studio 2005 or later is installed on the machine. The Core Components SDK will install the same files but will not check for Visual Studio. Developers who wish to use the x64 cross compilers on x86 machines must install the SDK (the x64 headers are not installed by the x86 version of the Redistributable s installer). 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. 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. At this time the following modules are included in this distribution:
File | Description
OPC Common 1.10 | Proxy/Stub DLL; .NET Wrapper; IDL/Headers; Project Source Code
OPC Server Enumerator 1.10 | DCOM EXE Server; IDL/Headers; Project Source Code
OPC Data Access 2.05/3.00 | Proxy/Stub DLL; .NET Wrapper; IDL/Headers; Project Source Code
OPC Data eXchange 1.00 | Proxy/Stub DLL; .NET Wrapper; WSDL/IDL/Headers; Project Source Code
OPC Alarms & Events 1.10 | Proxy/Stub DLL; .NET Wrapper; IDL/Headers; Project Source Code
OPC Batch 2.00 | Proxy/Stub DLL; .NET Wrapper; IDL/Headers; Project Source Code
OPC Historical Data Access 1.10 | Proxy/Stub DLL; .NET Wrapper; IDL/Headers; Project Source Code
OPC Commands 1.00 | Proxy/Stub DLL; .NET Wrapper; IDL/Headers; Project Source Code
OPC Security | Proxy/Stub DLL; .NET Wrapper; IDL/Headers; Project Source Code
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.
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 1.1 and 2.0 RCWs for x86 platforms. Installs the COM IDLs and C/C++ header files in the $(CommonProgramFiles) directory (only if Visual Studio is installed).
OPC Core Components Redistributable (x64) | Installs the COM proxy/stubs and OpcEnum for x64 platforms. Installs the COM IDLs and C/C++ header files in the $(CommonProgramFiles) directory (only if Visual Studio is installed).
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 1.1 and 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 1.1 RCWs Merge Module (x86) | A merge module containing the .NET 1.1 RCWs for x86 platforms.
OPC .NET 2.0 RCWs Merge Module (x86) | A merge module containing the .NET 2.0 RCWs for x86 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; The installers have only been tested on Windows XP and Windows Vista at this time. The .NET RCWs require the .NET Framework version 1.1 or 2.0 and they are not installed unless one of these versions is present. If both versions are installed on a system then versions of the .NET RCWs are installed in the Global Assembly Cache. The .NET Frameworks can be downloaded from here. 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: $(ProgramFiles)\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.
.NET Wrapper | The .NET Runtime Callable Wrapper (RCW).
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