0

既存のmsbuildファイル(Webアプリケーションの.csprojファイル)を拡張して、msbuildファイルにいくつかの追加のターゲット/タスクを指定しようとしています。この「拡張msビルドファイル」に構成固有のタスクを配置し、ビルドサーバー(TeamCity)でこのファイルを使用するという考え方です。私が最初にそれを解決しようとした方法は、フォルダ「msbuildscripts」をWebプロジェクトに追加し、そこに拡張msビルドファイルを配置することでした。

<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
  <Import Project="../My.Web.csproj" />
  ...more stuff...
</Project>

次に、次のようなものを使用してこのファイルを作成します。

c:\myweb\msbuild.exe msbuildscripts/extended.msbuild.file.xml

元のmsビルドファイルをインポートすると、そのcsprojファイルは「間違った」フォルダー(msbuildscripts)で「実行」され、csproj-build-fileは参照されているフォルダー/アイテムを検出しないため、これは機能しません。

特定の作業ディレクトリを使用するようにmsbuild.exeに指示する方法はありますか?実行タスクを使用してこの問題を解決することは可能ですが、それは良い解決策とは思えません。

4

1 に答える 1

3

次のようなMSBuildタスクを使用します。

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="MyBuild">

<ItemGroup>
 <ProjectToBuild Include="../My.Web.csproj" />
</ItemGroup>

<Target Name="MyBuild">
 <MSBuild Targets="Build" Projects="@(ProjectToBuild)"></MSBuild>
</Target>
</Project>
于 2011-09-28T09:53:51.107 に答える