Итак, я собираюсь добавить автономный скрипт C # как часть шага в процессе развертывания, но у меня действительно трудное время, чтобы найти ссылку, показывающую как правильно «отформатировать» скрипт для использования в Octopus.
Я обнаружил, что все ссылки должны быть явными. Так, например, если сценарий использует HttpClient
для выполнения запроса GET, вы не можете полагаться на операторы using
для сокращения ссылки, а вместо этого должны использовать «полностью определенное пространство имен».
Так что, в основном, вместо того, чтобы делать это:
HttpClient client = new HttpClient();
Вы должны сделать это так:
System.Net.Http.HttpClient client = new System.Net.HttpClient()
Хорошо, поэтому я изменил свой сценарий, чтобы сделать явную ссылку на любой класс или метод в пределах данного пространства имен.
Теперь, что произойдет, если у меня будет собственный класс? Как мне справиться с этим? Я проиллюстрирую, что я имею в виду на примере. Скажем, у меня есть следующее:
using System;
namespace MyOctoScript
{
class Person
{
public string name { get; set; }
}
class Script
{
static System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
static System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
public const string endpoint = "some_valid_endpoint";
static async System.Threading.Tasks.Task Main(string [] args)
{
MyOctoScript.Person person = null;
// Use Http Client to fetch JSON from a given endpoint
System.Net.Http.HttpResponseMessage response = await client.GetAsync(endpoint);
// Parse JSON from response
string jsonString = await response.Content.ReadAsStringAsync();
// Store object in variable of type Person
person = serializer.Deserialize<MyOctoScript.Person>(jsonString);
}
}
}
Теперь этот скрипт работает как консольное приложение. Я хочу убедиться, что он работает, как только я добавлю его в качестве сценария C #, который является частью шага.
Какие изменения (если таковые имеются) мне нужно внести в приведенный выше код, чтобы добиться этого?
Спасибо всем заранее!