使用WriteCodeFragment MSBuild任务

Tim*_*eyn 1 msbuild msbuild-task msbuild-propertygroup visual-studio msbuild-4.0

我试图使用WriteCodeFragment MSBuild任务创建AssemblyVersion属性。我在创建属性组以正确传递处理所需的ITaskItem数组时遇到问题。有人可以帮忙一个例子。

Tim*_*eyn 9

这将创建一个文件称为BuildVersion.cs具有AssemblyVersion的属性123.123.123.123。如果OutputFile将其删除,则将使用随机生成的文件名代替。该Compile项目名称会自动将项目编译项目(包括BuildVersion.cs在build)。该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>
Run Code Online (Sandbox Code Playgroud)