Как использовать пакеты Nuget в Cake Build Tool

build.cake:

var target = Argument("target", "Default");

Task("Default")
  .Does(() => {
     var client = new RestSharp.RestClient("www.test.com");
    Information("Hello World!");
});

RunTarget(target);

packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
    <package id="Cake" version="0.21.1" />
    <package id="RestSharp" version="105.2.3" />
</packages>

Получена ошибка:

ошибка CS0246: имя типа или пространства имен 'RestSharp' не может быть найдено (вы пропустили директиву using или ссылку на сборку?)

1 ответ

Решение

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

#addin nuget:?package=Cake.Foo
#addin nuget:?package=Cake.Foo&version=1.2.3
#addin nuget:?package=Cake.Foo&prerelease
#addin nuget:https://myget.org/f/Cake/?package=Cake.Foo&prerelease

Вы читаете больше о директивах препроцессора на cakebuild.net.

Ваш пример сценария будет выглядеть примерно так:

#addin nuget:?package=RestSharp&version=105.2.3

var target = Argument("target", "Default");

Task("Default")
  .Does(() => {
     var client = new RestSharp.RestClient("http://www.test.com");
    Information("Hello World!");
});

RunTarget(target);
Другие вопросы по тегам