Enlighten GenerateTrustInfo task for multithreaded mode
Parent: #11834
Context
GenerateTrustInfo has two implementations via conditional compilation:
- NETFRAMEWORK: reads
BaseManifest.ItemSpec and writes TrustInfoFile.ItemSpec — both file I/O with potentially relative paths
- .NET (non-Framework): inherits from
TaskRequiresFramework and just returns false with an error
The cwd-dependence is in the NETFRAMEWORK path: FileSystems.Default.FileExists(BaseManifest.ItemSpec), trustInfo.ReadManifest(BaseManifest.ItemSpec), and trustInfo.Write(TrustInfoFile.ItemSpec).
Approach
- Mark both
GenerateTrustInfo classes with [MSBuildMultiThreadableTask] (Inherited=false requires it on each concrete class)
- Implement
IMultiThreadableTask on the NETFRAMEWORK version with path absolutization for BaseManifest.ItemSpec and TrustInfoFile.ItemSpec
- The .NET version only needs the attribute (no file ops)
- Use
OriginalValue in error messages (Sin 2)
Acceptance criteria
References
Enlighten GenerateTrustInfo task for multithreaded mode
Parent: #11834
Context
GenerateTrustInfohas two implementations via conditional compilation:BaseManifest.ItemSpecand writesTrustInfoFile.ItemSpec— both file I/O with potentially relative pathsTaskRequiresFrameworkand just returns false with an errorThe cwd-dependence is in the NETFRAMEWORK path:
FileSystems.Default.FileExists(BaseManifest.ItemSpec),trustInfo.ReadManifest(BaseManifest.ItemSpec), andtrustInfo.Write(TrustInfoFile.ItemSpec).Approach
GenerateTrustInfoclasses with[MSBuildMultiThreadableTask](Inherited=falserequires it on each concrete class)IMultiThreadableTaskon the NETFRAMEWORK version with path absolutization forBaseManifest.ItemSpecandTrustInfoFile.ItemSpecOriginalValuein error messages (Sin 2)Acceptance criteria
GenerateTrustInfoclasses decorated[MSBuildMultiThreadableTask]IMultiThreadableTaskwith path absolutizationIMultiThreadableTaskneeded)References
.github/skills/multithreaded-task-migration/SKILL.md