Prior to T4 Templates, our setup was working - CruiseControl was pulling the latest files from SourceSafe, building them, and sending out emails.
We installed Visual Studio 2010 SDK, and then the Visualization & Modeling SDK. Our Visual Studio Solution is very simple...the DataLayer project is using Entity Framework (uses the .tt files) .. the BusinessLayer project has a reference to the DataLayer .dll .. the UI project has a reference to the BL .dll. This all works fine in the clients.
On the CC server, I've installed the VS 2010 SDK as well, and the Visualization & Modeling SDK. The error being reported by CC is now this:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.targets (396,5):
error: There was a problem loading the assembly 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll' The following Exception was thrown: System.BadImageFormatException: Could not load file or assembl ...
This is a section from our ccnet.config file:
<msbuild>
<executable>C:\WINDOWS\microsoft.net\Framework64\v4.0.30319\MSBuild.exe</executable>
<workingDirectory>C:\Program Files (x86)\CruiseControl.NET\server\IT\WorkingDirectory\ITX\</workingDirectory>
<projectFile>ITX.sln</projectFile>
<buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag /p:nowarn=1591 /t:Transform /p:TransformFile=ITXModel.Views.tt</buildArgs>
<targets>ITX_BL;ITX</targets>
<timeout>900</timeout>
<logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild>
I thought by simply adding this /t:Transform /p:TransformFile=ITXModel.Views.tt
to the buildArgs that would work .. but it had the same exact error, with or without those arguments.
I'm not very experienced with MSBuild, CruiseControl, or T4 Templates .. any suggestions, thoughts, ideas on how to resolve this problem? Thank you for your time .. :)
It looks like text transform task relies on 32 bit System.data.dll, but was called using 64 bit tool. Try to call 32 bit MSBuild.exe from
C:\WINDOWS\microsoft.net\Framework\v4.0.30319\MSBuild.exe