Как получить свойство из задачи в сборке TFS?
Я сделал пользовательскую задачу в моей сборке TFS, чтобы проверить файл GlobalAssemblyInfo.cs моего проекта, чтобы извлечь атрибут (точнее AssemblyInformationalVersion), чтобы использовать его значение в именовании zip-файла, который я создаю со сборкой.
<UsingTask TaskName="GetAssemblyInformationalVersion.GetAssemblyInformationalVersionTask"
AssemblyFile="$(MSBuildExtensionsPath)\GetAssemblyInformationalVersion.dll" />
Файл.cs для моей DLL имеет следующие два свойства:
[Required]
public String InfoFile { get; set; }
public String InfoVersion { get; set; }
Вот мой призыв к моей задаче:
<GetAssemblyInformationalVersionTask InfoFile="$(Path to file)\GlobalAssemblyInfo.cs" />
Мое намерение состоит в том, чтобы передать информационный файл сборки через свойство InfoFile, чтобы я мог найти то, что я хочу (что делает мой код C#), и установить его в свойстве InfoVersion, чтобы я мог ссылаться на него в TFS, запустив его как задачу. В принципе, я бы использовал свойство InfoVersion для именования моего zip-файла. Например,
"Package.$(some form of reference to InfoVersion).zip"
Тем не менее, я не смог найти способ действительно сделать это.
Мой вопрос: как я могу получить часть своей собственности в моей задаче? Кажется, что это должно быть легко, так как я не нашел ничего написанного об этом в Интернете, но любая помощь будет высоко ценится.
1 ответ
Ваша пользовательская задача, GetAssemblyInformationVersionTask, должна иметь свойство типа ITaskItem, которое украшено атрибутом [Output].
public class GetAssemblyInformationVersionTask
{
[Output]
public ITaskItem Version { get; set; }
public override bool Execute()
{
// code to set Version
return true;
}
}
Тогда вы сможете использовать его так:
<GetAssemblyInformationVersionTask InfoFile="$(Path to file)\GlobalAssemblyInfo.cs">
<Output TaskParameter="Version" ItemName="AssemblyVersion" />
</GetAssemblyInformationVersionTask>
AssemblyVersion будет переменной элемента, которая будет содержать значение свойства Version вашей задачи.
Если вы еще этого не видели , в разделе "Рекомендации по надежным сборкам" в MSDN , часть 2, затрагивается тема параметров вывода. Я посмотрю, не смогу ли я найти лучшие примеры в Интернете.
У Томаса Ардала есть еще один хороший пример [Вывода] в пользовательском задании.
НТН,
Z