Использование задачи WriteCodeFragment MSBuild - PullRequest
1 голос
/ 29 ноября 2010

Я пытаюсь использовать задачу WriteCodeFragment MSBuild для создания атрибута AssemblyVersion.У меня проблема с созданием группы свойств для правильной передачи массива ITaskItem, необходимого для обработки.Может кто-нибудь помочь с примером.

1 Ответ

6 голосов
/ 29 ноября 2010

Создается файл с именем 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>
...