【发布时间】:2011-08-16 11:22:17
【问题描述】:
我在 MSBuild 脚本中使用SvnInfo task:
<SvnInfo LocalPath="$(Sources)">
<Output TaskParameter="Revision" PropertyName="Revision" />
</SvnInfo>
$(Sources) 仅包含源文件。
显然SvnInfo 依赖于$(Sources) 中的文件。
然后 Target 使用 info 生成带有修订号的输出文件。
实际上我想在修订号更改时运行 SvnInfo,而不是在修订号与上次运行相同时运行 Target(使用增量构建)。
如何在目标中正确指定输入(Target标签中的属性Inputs,其中包含SvnInfo任务的调用)?
我是通过以下方式制作的:
<ItemGroup>
<Target1Inputs Include="$(Sources)\**" />
</ItemGroup>
<Target Name="Target1" Inputs="@(Target1Inputs)" Outputs="...">
...
<!-- SvnInfo call here -->
<!-- File with revision number is created here -->
</Target>
在我看来它的解决方法,因为理想情况下我应该知道SvnInfo 依赖于哪些文件而无需猜测。有没有可能获得这样的信息?
我也不知道.svn文件夹是否被修改。
【问题讨论】:
-
所以您问如何通过文件或您的意思输入哪个输入来填写“@(Target1Inputs)”?
-
@sllev 我在问要在 Target 标签的 Input 属性中指定什么。我提出了我的变体,但我不确定。 (更新问题)
-
看我的回答,如果你还有别的意思也请告诉我
标签: svn msbuild msbuildcommunitytasks msbuild-target