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的专家应该很容易看到我做错了什么......
如何改变最后一行在第一次尝试' '?还要弄清楚为什么第二个工作不起作用(在命令行上传递/ v:d)和/或添加一个Message任务,其中显示诸如%(RootDir)%(Directory)%(文件名)%(Extension) –
stijn
@Stijn,在第一次尝试中改变最后一行的工作就像一个魅力。您可以添加它作为答案,我会在这里奖励您正确的答案。 – Trygve
@stijn。希望你看到这一点。 – Trygve