C# как скриптовый язык для мелких утилит...
От: Shmj Ниоткуда  
Дата: 18.01.23 19:38
Оценка: +2
Оставлю это тут для себя:

1. Создаем в папке мелкой утилиты Run.ps1 -файл с таким содержимым:

$srcFiles = Get-ChildItem "./*.cs" | select FullName

$sb = [System.Text.StringBuilder]::new()

[void]$sb.AppendLine(@'
using System;
using System.Net;

'@)

foreach ($srcFile in $srcFiles)
{
    $lines = (Get-Content $srcFile.FullName -Raw).Split([Environment]::NewLine)
  
    foreach ($line in $lines)
    {
        if ($line -match '^[ \t]*using [a-zA-Z0-9_.]+;.*$')
        {
            continue;
        }

        [void]$sb.AppendLine($line);
    }
}

$code = $sb.ToString()
Add-Type -TypeDefinition $code -Language CSharp

[MyNamespace1.Program]::Main("")
Pause


2. В самом скрипте указываем все using-и и вместо MyNamespace1 пространство имен вашей консольной утилиты. Класс Program и Main должны быть public.

3. Теперь легким движением руки наша утилита превратилась в скриптовую — можно менять без перекомпиляции и даже на машине без студии...

Хотя... Оно все-таки компилит это дело, как я понял. Так что смысл не большой.
Отредактировано 19.01.2023 6:41 Shmj . Предыдущая версия . Еще …
Отредактировано 18.01.2023 20:02 Shmj . Предыдущая версия .
Отредактировано 18.01.2023 19:55 Shmj . Предыдущая версия .
Отредактировано 18.01.2023 19:39 Shmj . Предыдущая версия .
powershell
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.