0

私はMSBuildを使用して、Visual Studio、WiX、SandCastleなどのプロジェクトのビルドプロセスをカスタマイズしています。できるだけ一般的なものにするために、ファイルのロード元、実行するカスタム実行可能ファイルなど、いくつかの「プロジェクト固有の」設定を定義するテキストファイルを使用したいと思います。

テキストファイルは次のようになります。$(MSBuildProjectDirectory).... \ Projects \ Project1 \ bin \ Release obj \ $(Configuration)\ Project1.Files.wxi -in * .dll -id TEST

各行は1つのコマンドまたはファイルを表します。

ターゲット内では、ReadLinesFromFileを使用してこれらのファイルのコンテンツを取得しています。ここまでは順調ですね!

問題は、「$(Configuration)、$(MSBuildProjectDirectory)」などの予約済みプロパティが評価されないため、通常のテキストとして処理されることです。

カスタムタスクを作成せずにこれらの$プレースホルダーを評価する方法についてのアイデアはありますか?

前もって感謝します!

よろしく、robert.oh。

4

1 に答える 1

1

行を読んですべてを自分で解析するのではなく、次のような別のファイル(たとえば、「local.build.config」という名前)を作成してみませんか。

<PropertyGroup>
    <someproperty>$(MSBuildProjectDirectory)..\Projects\Project1\bin\Release</someproperty>
</PropertyGroup>

ファイル内の情報を入力してから、実際のプロジェクトで、ビルドの先頭に次のような行を付けてファイルをインポートします。

<Import Project="local.build.config" Condition="Exists('local.build.config')"/>

MSBuildエンジンに最善を尽くさせることで、車輪の再発明を防ぎます。

于 2009-10-20T14:11:37.440 に答える