【发布时间】:2010-11-29 02:07:06
【问题描述】:
我正在尝试使用WriteCodeFragment MSBuild 任务来创建AssemblyVersion 属性。我在创建属性组以正确传递处理所需的 ITaskItem 数组时遇到问题。有人可以举个例子吗?
【问题讨论】:
标签: visual-studio msbuild msbuild-task msbuild-4.0 msbuild-propertygroup
我正在尝试使用WriteCodeFragment MSBuild 任务来创建AssemblyVersion 属性。我在创建属性组以正确传递处理所需的 ITaskItem 数组时遇到问题。有人可以举个例子吗?
【问题讨论】:
标签: visual-studio msbuild msbuild-task msbuild-4.0 msbuild-propertygroup
这将创建一个名为BuildVersion.cs 的文件,其AssemblyVersion 属性为123.123.123.123。如果OutputFile 被删除,那么将使用随机生成的文件名。 Compile 项目名称自动将该项目添加到编译项目(在构建中包括 BuildVersion.cs)。 FileWrites 项目名称允许在清理期间删除文件。
<Target Name="BeforeBuild">
<ItemGroup>
<AssemblyAttributes Include="AssemblyVersion">
<_Parameter1>123.123.123.123</_Parameter1>
</AssemblyAttributes>
</ItemGroup>
<WriteCodeFragment AssemblyAttributes="@(AssemblyAttributes)"
Language="C#"
OutputDirectory="$(IntermediateOutputPath)"
OutputFile="BuildVersion.cs">
<Output TaskParameter="OutputFile" ItemName="Compile" />
<Output TaskParameter="OutputFile" ItemName="FileWrites" />
</WriteCodeFragment>
</Target>
【讨论】:
<ItemGroup><Compile Include="BuildVersion.cs" /></ItemGroup>
Output TaskParameter="OutputFile" ItemName="FileWrites" /> 添加到 WriteCodeFragment 元素的内容中,可以在 Clean 上删除文件。
OutputFile="BuildVersion.cs",任务每次调用都会生成一个新的唯一文件名。