CruiseControl с шаблонами SourceSafe, MSBuild и T4 не работает - PullRequest
2 голосов
/ 21 марта 2011

До шаблонов T4 наша установка работала - CruiseControl извлекал последние файлы из SourceSafe, собирал их и отправлял электронные письма.

Мы установили Visual Studio 2010 SDK, а затем SDK для визуализации и моделирования.Наше решение Visual Studio очень простое ... проект DataLayer использует Entity Framework (использует файлы .tt) .. проект BusinessLayer имеет ссылку на DataLayer .dll .. проект пользовательского интерфейса имеет ссылку на BL .dll,Все это прекрасно работает на клиентах.

На сервере CC я также установил VS 2010 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>

Я просто подумалдобавив /t:Transform /p:TransformFile=ITXModel.Views.tt к buildArgs, который будет работать ... но у него была точно такая же ошибка, с этими аргументами или без них.

Я не очень разбираюсь в MSBuild, CruiseControl или T4 Templates .. любыхпредложения, мысли, идеи о том, как решить эту проблему?Спасибо за ваше время ..:)

Ответы [ 2 ]

1 голос
/ 21 марта 2011

Похоже, что задача преобразования текста основана на 32-битном файле System.data.dll, но была вызвана с использованием 64-битного инструмента.Попробуйте вызвать 32-битный MSBuild.exe из

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

1 голос
/ 21 марта 2011

Убедитесь, что все конфигурации проекта для этой сборки решения - «Любой ЦП», а не смесь «x86», «Любой ЦП» (или «x64»). Попробуйте также передать это в msbuild:

msbuild /p:Configuration=Debug;Platform=AnyCPU

Я ничего не знаю о цели Transform. Можете ли вы заставить его скомпилировать, используя цель Build по умолчанию?

...