我有一个简单的要求,即在项目目录中创建一个名为user.config的文件,但前提是它已经存在。
首次尝试:
<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专家都应该很容易看出我做错了什么......
答案 0 :(得分:4)
第一次尝试几乎是执行此操作的规范方法,除了缺少的条件(每个MsBuild任务都支持)之外,你基本上做对了:
<WriteLinesToFile File="user.config" Lines="@(LineText)" Overwrite="True"
Condition="!Exists('user.config')"/>