SourceSafe、MSBuild和T4模板不工作的CruiseControl

SourceSafe、MSBuild和T4模板不工作的CruiseControl,msbuild,visual-sourcesafe,cruisecontrol,Msbuild,Visual Sourcesafe,Cruisecontrol,在T4模板之前,我们的设置是有效的——CruiseControl从SourceSafe中提取最新的文件,构建它们,并发送电子邮件 我们安装了VisualStudio2010SDK,然后安装了可视化和建模SDK。我们的Visual Studio解决方案非常简单…数据层项目使用实体框架(使用.tt文件)。。BusinessLayer项目具有对DataLayer.dll的引用。。UI项目引用了BL.dll。这一切在客户机中都能正常工作 在CC服务器上,我还安装了VS2010 SDK和可视化与建模SDK

在T4模板之前,我们的设置是有效的——CruiseControl从SourceSafe中提取最新的文件,构建它们,并发送电子邮件

我们安装了VisualStudio2010SDK,然后安装了可视化和建模SDK。我们的Visual Studio解决方案非常简单…数据层项目使用实体框架(使用.tt文件)。。BusinessLayer项目具有对DataLayer.dll的引用。。UI项目引用了BL.dll。这一切在客户机中都能正常工作

在CC服务器上,我还安装了VS2010 SDK和可视化与建模SDK。CC现在报告的错误如下:

C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.targets(396,5):

错误:加载程序集“C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0_b77a5c561934e089\System.Data.dll”时出现问题引发了以下异常:System.BadImageFormatException:无法加载文件或程序集

这是我们的ccnet.config文件的一部分:

<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>

C:\WINDOWS\microsoft.net\Framework64\v4.0.30319\MSBuild.exe
C:\ProgramFiles(x86)\CruiseControl.NET\server\IT\WorkingDirectory\ITX\
ITX.sln
/noconsolelogger/p:Configuration=Debug/v:diag/p:nowarn=1591/t:Transform/p:TransformFile=ITXModel.Views.tt
ITX_BL;ITX
900
C:\ProgramFiles(x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll
我认为只要将这个
/t:Transform/p:TransformFile=ITXModel.Views.tt
添加到buildArgs就可以了。。但不管有没有这些参数,它都有同样的错误


我对MSBuild、CruiseControl或T4模板不是很有经验。。对如何解决这个问题有什么建议、想法和想法吗?谢谢您抽出时间……)

检查该解决方案构建的所有项目配置是否为“任意CPU”,而不是“x86”、“任意CPU”(或“x64”)的混合。还请尝试将其传递给msbuild:

msbuild /p:Configuration=Debug;Platform=AnyCPU

我对转换目标一无所知。您能使用默认的生成目标编译它吗?

看起来文本转换任务依赖于32位System.data.dll,但使用64位工具调用。尝试从调用32位MSBuild.exe

C:\WINDOWS\microsoft.net\Framework\v4.0.30319\MSBuild.exe


所有项目都设置为“任意CPU”。感谢您提供的信息,非常感谢!它可以与“任何CPU”一起工作,或者如果它们都针对同一个平台。哇,好了,解决了这个问题。谢谢在我们开始使用T4模板之前,这已经持续了一年多,所以T4和x64似乎有问题?