Background
RegisterAssembly registers a managed assembly for COM interop, optionally producing a type library. It is currently AppDomainIsolatedTaskExtension, gated on NETFRAMEWORK && FEATURE_APPDOMAIN, so it only ever runs in the legacy single-threaded NET Framework host.
Migration scope
Known complexity factors
- AppDomain-isolated;
Execute runs in a separate AppDomain — TaskEnvironment must round-trip across the boundary
- COM
ITypeLibExporterNotifySink callbacks; native registry mutation
- NETFRAMEWORK-only; multithreaded mode is a .NET (Core) host concern, so practical migration value is low
- Mutates global system state (registry) — inherently not parallel-safe regardless of task plumbing
Exit criteria
References
Background
RegisterAssemblyregisters a managed assembly for COM interop, optionally producing a type library. It is currentlyAppDomainIsolatedTaskExtension, gated onNETFRAMEWORK && FEATURE_APPDOMAIN, so it only ever runs in the legacy single-threaded NET Framework host.Migration scope
[MSBuildMultiThreadableTask](defensive — task only runs on .NET Framework)IMultiThreadableTaskonly if any code path is reachable from a multithreaded hostTaskEnvironment.GetAbsolutePath()for: Assemblies items, TypeLibFiles items, AssemblyListFileTaskEnvironment.GetEnvironmentVariable()for: N/ATaskEnvironment.GetProcessStartInfo()for: N/A (uses in-proc registration, not a child process)Known complexity factors
Executeruns in a separate AppDomain —TaskEnvironmentmust round-trip across the boundaryITypeLibExporterNotifySinkcallbacks; native registry mutationExit criteria
References