Проверьте наличие пустого файла и закройте торт - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь написать проверку в моем скрипте сборки Cake, чтобы извлечь файл из BuildParameters и проверить, является ли содержимое файла пустым - если содержимое пустое, вывести исключение и выйти из сборки.

Я пытаюсь использовать FileReadText из пространства имен FileHelpers, но по какой-то причине у меня не получается, чтобы моя сборка распознала команду файла. Я следую синтаксису и документации, найденным здесь: https://cakebuild.net/api/Cake.FileHelpers/FileHelperAliases/97F5679A

Вот код, который я пытаюсь использовать в build.cake:

var fileReadText= FileReadText(Parameters.TestParameters.TestListFP);
var fileText= fileReadText.ThrowIfNullOrEmpty(nameof(fileReadText));

Аргумент Parameters.TestParameters.TestListFP установлен в моем файле Parameters.cake следующим образом:

TestListFP = context.File("C:\Some\Path\some_file_name.txt");

При использовании приведенного выше кода я вижу эту ошибку:

Ошибка CS0103: имя 'FileReadText' не существует в текущем контексте

Обратите внимание, что у меня нет ICakeContext in build.cake, просто BuildParameters.

Я попытался решить проблему, добавив using Cake.FileHelpers; вверху моего build.cake файла, но затем я вижу эту ошибку:

Тип или имя пространства имен 'FileHelpers' не существует в пространстве имен 'Cake' (вы пропустили сборку ссылка?)

Скрипт прекрасно работает без моего FileReadText кода, поэтому я знаю, что TestListFP на самом деле является допустимым файлом.

Я думаю, что по своей сути я неправильно понимаю, как использовать FileHelpers и FileReadText, и я не смог найти никаких примеров использования в документации или где-либо еще. Если у кого-нибудь есть рекомендации по использованию этого метода или более эффективный способ выполнения sh того, что я пытаюсь сделать, я был бы признателен за помощь.

1 Ответ

1 голос
/ 27 февраля 2020

Добавили ли вы директиву препроцессора #addin, как упомянуто здесь:

https://github.com/cake-contrib/Cake.FileHelpers/#cakefilehelpers

Вы можете легко ссылаться на Cake.FileHelpers напрямую в вашем скрипте сборки через дополнение для торта:

#addin "Cake.FileHelpers"

...