Я думаю, что вам не хватает спецификации атрибута AssemblyInfoFiles в вашей задаче AssemblyInfo. Вот как это выглядит для проекта, над которым я работаю ...
<Target Name="AfterGet">
<Message Text="In After Get"/>
<CreateItem Include="$(SolutionRoot)\Source\SomeProject\My Project\AssemblyInfo.vb">
<Output ItemName="AssemblyInfoFiles" TaskParameter="Include"/>
</CreateItem>
<Attrib Files="@(AssemblyInfoFiles)"
ReadOnly="false"/>
<AssemblyInfo AssemblyInfoFiles="@(AssemblyInfoFiles)"
AssemblyDescription="$(LabelName)">
</AssemblyInfo>
</Target>
Сначала мы используем для создания свойства, которое содержит имя файла, который мы будем обновлять. Мы должны сделать это через createItem, потому что, когда мы запускаем сборку, файл не существует (и именно тогда MSBuild оценивает определения и определения в вашем файле сборки.
Затем мы снимаем бит readonly с файла.
Наконец, мы вызываем задачу AssemblyInfo, передавая ей файл (ы) для обновления и настраиваемое имя сборки, которое мы хотим ему дать (в этом случае мы помещаем метку сборки TFS в поле Описание сборки, чтобы мы могли легко определить из какой команды была собрана сборка.