I have a custom MsBuild task that sends an email (does some special stuff while sending the email -like formatting content).
Background:
Using TFS 2008
Build server is a separate machine using TeamBuild 2008.
This custom task used to work fine until I installed .Net 4.0 on the build machine and setup the build service to use the new version of MSBuild (Configured Team Build 2008 to use MSBuild 4.0 instead of MSBuild 3.5 by setting the MSBuildPath property to c:\Windows\Microsoft.NET\Framework\v4.0.21006)
The error that I get is:
"...\TFSBuild.proj" (EndToEndIteration target) (1) -> (EmailResults target) -> ...\BuildType\TFSBuild.proj(386,5): error : SendEmailTask failed: ActiveX control '8856f961-340a-11d0-a96b-00c04fd705a2' cannot be instantiated because the current thread is not in a single-threaded apartment.
The SendEmailTask
uses SmtpClient
to send an email. (my suspicion is that the SmtpClient
is using some underlying ActiveX object which is throwing this error).
How do I get MsBuild to invoke the custom task in a STA environment?