Portable Areas 및 T4MVC을 사용하는 솔루션이있는 T4MVC 용 별도 프로젝트가있는 상황에서 7 개의 휴대용 영역과 기본 MVC3 응용 프로그램에 대해 생성 된 모든 파일이 있습니다. 우리는 지침을 따라 here 솔루션을 빌드 할 때 자동으로 클래스를 생성합니다.TeamCity의 휴대용 영역이있는 T4MVC
VS2010에서는 모두 디버그 & 릴리스 빌드에서 정상적으로 작동하지만 문제가 발생하는 곳에서는 TeamCity에서 실행되도록 노력하고 있습니다.
빌드 서버 here에서 T4를 설정하는 방법을 따라했으며 빌드 서버에서 msbuild를 실행하면 TextTemplate.exe를 실행하고 파일을 생성 할 수 있다는 것을 알 수 있습니다. 문제는 그 것입니다. 변환 할 파일을 찾지 못합니다.
TeamCity에서 실행되는 빌드 스크립트를 실행할 때 로컬 컴퓨터에서 동일한 동작을 재현 할 수있었습니다. DIAG 세트 :
Building with tools version "4.0".
Target "CreateCandidateT4ItemList: (TargetId:2)" in file "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.targets" from project "C:\TeamCity\buildAgent\work\daad348639a87062\Project_Build.xml" (target "Transform" depends on it):
Using "Message" task from assembly "Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "Message" (TaskId:2)
Creating a list of candidate items that might need to be processed by T4 items (TaskId:2)
Done executing task "Message". (TaskId:2)
Using "CreateItem" task from assembly "Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "CreateItem" (TaskId:3)
Done executing task "CreateItem". (TaskId:3)
Done building target "CreateCandidateT4ItemList" in project "Project_Build.xml".: (TargetId:2)
Target "SelectItemsForTransform: (TargetId:3)" in file "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemp
lating.targets" from project "C:\TeamCity\buildAgent\work\daad348639a87062\Project_Build.xml" (target "Transform" depends on it):
Task "Error" skipped, due to false condition; ($(TransformFile)=='') was evaluated as (C:\TeamCity\buildAgent\work\daad348639a87062\T4MVC\T4MVC.tt=='').
Initializing task factory "CodeTaskFactory" from assembly "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Build.Tasks.v4.0.dll".
Using "FilterCandidatesBasedOnItemSpec" task from the task factory "Code Task Factory".
Task "FilterCandidatesBasedOnItemSpec" (TaskId:4)
Done executing task "FilterCandidatesBasedOnItemSpec". (TaskId:4)
Done building target "SelectItemsForTransform" in project "Project_Build.xml".: (TargetId:3)
Target "CreateT4ItemLists: (TargetId:4)" in file "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.targets" from project "C:\TeamCity\buildAgent\work\daad348639a87062\Project_Build.xml" (target "ExecuteTransformations" depends on it):
Task "Message" (TaskId:5)
Creating T4 items lists for project ()... (TaskId:5)
Done executing task "Message". (TaskId:5)
Done building target "CreateT4ItemLists" in project "Project_Build.xml".: (TargetId:4)
Target "ExecuteTransformations: (TargetId:5)" in file "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.targets" from project "C:\TeamCity\buildAgent\work\daad348639a87062\Project_Build.xml" (target "Transform" depends on it):
Using "TransformTemplates" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.Build.Tasks.dll".
Task "TransformTemplates" (TaskId:6)
Directive processors: (TaskId:6)
{none} (TaskId:6)
(TaskId:6)
Include folders: (TaskId:6)
{none} (TaskId:6)
(TaskId:6)
Assembly references: (TaskId:6)
{none} (TaskId:6)
(TaskId:6)
Reference paths: (TaskId:6)
{none} (TaskId:6)
(TaskId:6)
Parameter values: (TaskId:6)
{none} (TaskId:6)
(TaskId:6)
Full list of templates passed in : (TaskId:6)
{none} (TaskId:6)
(TaskId:6)
Performing full T4 transformation (TaskId:6)
MinimalRebuildFromTracking = True (TaskId:6)
forcedRebuildRequired = False (TaskId:6)
\tTrackerLogDirectory = <null> (TaskId:6)
Tracking is disabled. TrackerLogDirectory has not been specified (TaskId:6)
Done executing task "TransformTemplates". (TaskId:6)
Using "PreprocessTemplates" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.Build.Tasks.dll".
Task "PreprocessTemplates" (TaskId:7)
Directive processors: (TaskId:7)
{none} (TaskId:7)
(TaskId:7)
Include folders: (TaskId:7)
{none} (TaskId:7)
(TaskId:7)
Assembly references: (TaskId:7)
{none} (TaskId:7)
(TaskId:7)
Reference paths: (TaskId:7)
{none} (TaskId:7)
(TaskId:7)
Parameter values: (TaskId:7)
{none} (TaskId:7)
(TaskId:7)
Full list of templates passed in : (TaskId:7)
{none} (TaskId:7)
(TaskId:7)
Performing full T4 preprocessing (TaskId:7)
MinimalRebuildFromTracking = True (TaskId:7)
forcedRebuildRequired = False (TaskId:7)
\tTrackerLogDirectory = <null> (TaskId:7)
Tracking is disabled. TrackerLogDirectory has not been specified (TaskId:7)
Done executing task "PreprocessTemplates". (TaskId:7)
빌드 서버 T4에 그게 필요로하는 프로젝트를 찾을 수 없습니다 보인다 나타납니다이 내가/v의 msbuild를 출력 다음을 얻을 실행
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<Configuration>Release</Configuration>
<TransformOnBuild>true</TransformOnBuild>
<TransformFile>T4MVC\T4MVC.tt</TransformFile>
<OverwriteReadOnlyOutputFiles>true</OverwriteReadOnlyOutputFiles>
</PropertyGroup>
<ItemGroup>
<None Include="T4MVC\T4MVC.tt">
<OutputFilePath>$(MSBuildProjectDirectory)\T4MVC</OutputFilePath>
</None>
</ItemGroup>
<ItemGroup>
<ProjectsToBuild Include="**\*proj" Exclude="ThemeGenerator\**" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.targets" />
<Target Name="Clean">
<ItemGroup>
<BinFiles Include="*\bin\*.*" />
</ItemGroup>
<Delete Files="@(BinFiles)" />
</Target>
<Target Name="Build" DependsOnTargets="Clean;Transform">
<MSBuild Projects="@(ProjectsToBuild)"
ContinueOnError="false"
Properties="Configuration=$(Configuration)" />
</Target>
</Project>
필요한 클래스를 생성하기위한 참조. 입력 폴더와 어셈블리 참조의 다양한 조합을 시도했지만 T4가 필요한 파일을 "볼"수 없게되었습니다.
아무도 아이디어를 해결하는 방법이 있습니까?
너무 msbuild를를 사용 .vdproj 설치 프로젝트를 빌드 할 수없는, 그래서 우리는 설치 프로그램을 구축 할 수있는 빌드 서버에서 명령 줄에서 VS를 실행하는 예를 들어
... T4 엔진은 VS를 필요로하지 않고 서버를 구축 할 수 있습니다. – Nathan