1
プロジェクトディレクトリにuser.configという名前のファイルを作成するという単純な要件がありますが、存在しない場合にのみ必要です。MSBuildが存在しない場合、ファイルをコピーまたは作成する
初の試み:
<Target Name="BeforeBuild">
<ItemGroup>
<Line Include="line01"><Text><appSettings></appSettings></Text></Line>
<LineText Include="%(Line.Text)" />
</ItemGroup>
<WriteLinesToFile File="user.config" Lines="@(LineText)" Overwrite="false" />
</Target>
それがファイルに追加するので
は動作しません
第二の試み:
<Target Name="BeforeBuild">
<CreateItem Include="user_example.config">
<Output ItemName="ItemsThatNeedToBeCopied" TaskParameter="Include" />
</CreateItem>
<Copy SourceFiles="@(ItemsThatNeedToBeCopied)" DestinationFolder="$(ProjectDir)" Condition="!Exists('%(RootDir)%(Directory)%(Filename)%(Extension)')" />
</Target>
何が起こるように思わないのでが機能せず、理由について何も教えてくれない冗長なmsbuildの出力には何もありません
任意のMSBuildの専門家は、簡単に最初の試みはかなりこれを行うための標準的な方法であり、あなたは基本的に右に不足している状態(すべてのMSBuildのを除いて、それを持って...私が間違ってやっている
! .config ') "/>'?また、2つ目がうまくいかない理由を調べるには、コマンドラインでpass/v:dを実行するか、%(RootDir)%(Directory)%(Filename)のようなものを表示するMessageタスクを追加します。 )%(Extension) – stijn
@Stijn、最初の試みで最後の行を変更することは、魅力的なように機能しました。あなたはそれを答えとして追加することができ、私はここで正解をあなたに報います。 – Trygve
@stijn。あなたがこれを見ることを願っています。 – Trygve