私は現在、TFS2012 および VS2012 テクノロジを使用して、Web アプリケーションと非 Web アプリケーションを構築および展開しています。
実施された調査:
- Microsoft ビルド エンジンの内部、MSBuild と Team Foundation ビルドの使用に関する本を読みます。
- 私の問題については、Stackoverflow、msdn、およびその他のフォーラムを参照してください。
残念ながら、私はまだ問題に直面しています。
現在のセットアップ:
私は持っています:
- ClassLib1.slnというソリューション
- ソリューション内のBuild.projファイル
- 2 ソリューション内のプロジェクト:
- ClassLib1.csproj - 非 Web アプリケーション
- MvcApp1.csproj - Web アプリケーション
- ビルドを実行するビルド サーバー
- Build.projファイルをビルドするビルド定義 ( DefaultTemplate.11.1.xaml ) 。
Build.projファイルには、次の構成が含まれています。
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<DirectoriesToDelete Include="\\server\build\test\MvcApp1" />
<DirectoriesToDelete Include="\\server\build\test\ClassLib1" />
<SolutionsToBuild Include="ClassLib1.sln" />
<ProjectsToPublish Include="MvcApp1\MvcApp1.csproj">
<Properties>
OutputPath=$(MSBuildProjectDirectory)\build\test\ClassLib1\MvcApp1\;
UseWPP_CopyWebApplication=true;
PipelineDependsOnBuild=false;
SkipInvalidConfigurations=true;
DeployOnBuild=true;
DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;
AutoParameterizationWebConfigConnectionStrings=false;
_PackageTempDir=\\server\build\test\MvcApp1
</Properties>
</ProjectsToPublish>
<ProjectsToPublish Include="ClassLib1\ClassLib1.csproj">
<Properties>
OutputPath=\\server\build\test\ClassLib1\
</Properties>
</ProjectsToPublish>
</ItemGroup>
<Target Name="Build">
<RemoveDir Directories="@(DirectoriesToDelete)" />
<MSBuild Projects="@(SolutionsToBuild)" />
<MSBuild Projects="@(ProjectsToPublish)" />
</Target>
</Project>
機能するもの:
msbuild をローカルで実行すると (例: msbuild Build.proj /t:Build )、すべてが機能します。両方のプロジェクトがビルドされ、指定されたPackageTempDirまたはOutPutPathに出力されます。
当面の問題:
ただし、ビルド定義を使用してビルドを実行しようとすると、指定した場所にMvcApp1.csprojファイルのみが出力されます。ClassLib1.csprojファイルがありません。
私は多くのことを試しましたが、これまでのところ何もうまくいきませんでした(手動で行うことを除いて)。
私はこれに少し慣れていないので、簡単に理解できなかったり、何かを見逃したりする可能性があることに注意してください。