Оставлю это тут для себя:
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. Теперь легким движением руки наша утилита превратилась в скриптовую — можно менять без перекомпиляции и даже на машине без студии...
Хотя... Оно все-таки компилит это дело, как я понял. Так что смысл не большой.