Versioning Because serviced components are written in managed code, they have the same system of versioning as other managed code. The runtime includes a notion of compatible and incompatible versions. The version field of an assembly is composed of the Major Version, Minor Version, Revision, and Build numbers. A client will automatically use the highest compatible version of a component corresponding to the version it was compiled with, unless the client specifically requests a different version to load. If there is a higher incompatible version installed on the system, the client will ignore it.
Dynamic registration is performed once for a particular version.
When a developer distributes a new assembly that contains classes decorated with different component services attributes, the Major or Minor version number of the assembly should be incremented to ensure that dynamic registration succeeds. Alternatively, the developer can use RegSvcs.exe to re-register an assembly. For instance, if a component is registered and does not have a Transaction attribute specified, the transaction setting in the catalog is set to TransactionOption. This setting allows a developer to remove an attribute from the code if the component no longer requires it, and then when manual or dynamic registration is executed again, the catalog is set to an expected value. Certain catalog entries may also be modified administratively after registration.