Я надеялся найти подход, похожий на отладку Asp .Net / SOAP в старых версиях VS, где механизм MSTest запускает IIS Express и подключает VS к Asp. Net проекты. Поддерживается редактирование и продолжение.
На данный момент я разработал следующие подходы:
RestSharp Code:
var url = $"http://localhost:7071/api";
var functionKey = "this value is ignored by 'Azure Functions Core Tools' ";
var client = new RestSharp.RestClient(url);
var request = new RestSharp.RestRequest("GetConnectionString", RestSharp.Method.POST);
request.AddHeader("x-functions-key", functionKey);
var response = client.Execute<string>(request);
Запустите второй экземпляр VS и запустите функции.
Обновление кода для отражения URL-путей, отображаемых с помощью Azure Функции Core Tools.
Редактирование и продолжение работ.
Добавить этот класс в проект UnitTest:
Присоединить к процессу c .exe для отладки функций
Редактирование и продолжение не работают.
[TestClass]
public class Initializer
{
static System.Diagnostics.Process process { get; set; }
[AssemblyInitialize]
public static void Initialize(TestContext context)
{
//process does not use the WorkingDirectory properly with %userprofile%
var userprofile = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
var path = $@"{userprofile}\source\repos\mypro\...\myproj.Functions\bin\Debug\netcoreapp3.1";
var startInfo = new ProcessStartInfo
{
FileName = @"cmd.exe",
Arguments = @"/C ""%localappdata%\AzureFunctionsTools\Releases\3.2.0\cli_x64\func.exe host start --port 7071 --pause-on-error""",
//RedirectStandardInput = true,
//RedirectStandardOutput = true,
//RedirectStandardError = true,
//UseShellExecute = false,
UseShellExecute = true,
WorkingDirectory = path
};
process = new System.Diagnostics.Process()
{
StartInfo = startInfo
};
process.Start();
// Thread.Sleep(3000);
}
[AssemblyCleanup]
public static void Cleanup()
{
process.CloseMainWindow();
}
}
Запуск fun c .exe процесса
Рабочая папка: ... \ source \ repos \ xxx \ xxx \ xxx.Functions \ bin \ Debug \ netcoreapp3.1 \
Командная строка:
"C:\Users\username\AppData\Local\AzureFunctionsTools\Releases\3.2.0\cli_x64\func.exe" host start --port 7071 --pause-on-error
Прикрепить к забаве c .exe Процесс.
Редактировать и продолжить не работает.