Сообщение C# как скриптовый язык для мелких утилит... от 18.01.2023 19:38
Изменено 18.01.2023 19:39 Shmj
C# как скриптовый язык для мелких утилит...
Оставлю это тут для себя:
1. Создаем в папке мелкой утилиты Run.ps1 -файл с таким содержимым:
2. В самом скрипте указываем все using-и и вместо MyNamespace1 пространство имен вашей консольной утилиты. Класс Program и Main должны быть public.
3. Теперь легким движением руки наша утилита превратилась в скриптовую — можно менять без перекомпиляции и даже на машине без студии...
1. Создаем в папке мелкой утилиты Run.ps1 -файл с таким содержимым:
$srcFiles = Get-ChildItem "./*cs" | select FullName
$code = @'
using System;
using System.Net;
'@
foreach ($srcFile in $srcFiles)
{
$lines = (Get-Content $srcFile.FullName -Raw).Split([Environment]::NewLine)
foreach ($line in $lines)
{
if ($line.StartsWith("using "))
{
continue;
}
$code += $line
}
}
Add-Type -TypeDefinition $code -Language CSharp
[MyNamespace1.Program]::Main("")
Pause
2. В самом скрипте указываем все using-и и вместо MyNamespace1 пространство имен вашей консольной утилиты. Класс Program и Main должны быть public.
3. Теперь легким движением руки наша утилита превратилась в скриптовую — можно менять без перекомпиляции и даже на машине без студии...
C# как скриптовый язык для мелких утилит...
Оставлю это тут для себя:
1. Создаем в папке мелкой утилиты Run.ps1 -файл с таким содержимым:
2. В самом скрипте указываем все using-и и вместо MyNamespace1 пространство имен вашей консольной утилиты. Класс Program и Main должны быть public.
3. Теперь легким движением руки наша утилита превратилась в скриптовую — можно менять без перекомпиляции и даже на машине без студии...
1. Создаем в папке мелкой утилиты Run.ps1 -файл с таким содержимым:
$srcFiles = Get-ChildItem "./*.cs" | select FullName
$code = @'
using System;
using System.Net;
'@
foreach ($srcFile in $srcFiles)
{
$lines = (Get-Content $srcFile.FullName -Raw).Split([Environment]::NewLine)
foreach ($line in $lines)
{
if ($line.StartsWith("using "))
{
continue;
}
$code += $line
}
}
Add-Type -TypeDefinition $code -Language CSharp
[MyNamespace1.Program]::Main("")
Pause
2. В самом скрипте указываем все using-и и вместо MyNamespace1 пространство имен вашей консольной утилиты. Класс Program и Main должны быть public.
3. Теперь легким движением руки наша утилита превратилась в скриптовую — можно менять без перекомпиляции и даже на машине без студии...