Компиляция C# программ в Notepad++

02.08.2018 / Алекс Айфонов

Недавно я заметил, что Visual Studio отнимает слишком много времени при запуске на моём маломощном компьютере, тогда моё внимание привлёк текстовый редактор Notepad++ с подсветкой синтаксиса. Компиляция будет производится с помощью скрипта, который будет запускаться через вкладку "Запуск" комбинацией клавиш.

Скрипт на Powershell

В качестве промежуточного узла между исходным кодом и компилятором я решил использовать Powershell, это весьма мощное средство автоматизации, которое берёт своё начало с Windows 7. В данном скрипте будет использован компилятор, который встроен в операционную систему и расположен по следующему пути: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe (пользователям Windows 7 понадобится обновить .NET Framework до 4-ой версии) . Алгоритм работы скрипта таков: после того как вы поместите его в папку с .cs файлами (это обязательно), он скомпилирует последний изменённый .cs файл и запустит его. С алгоритмом разобрались, теперь перейдем к коду:

# переменной $NameCS присваивается путь к последнему изменённому файлу .cs $NameCS = (Get-ChildItem . -Include *.cs -Recurse | Sort-Object LastWriteTime -Descending | Select-Object Name -First 1 -exp fullname) # компиляция C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe $NameCS # переменная $ProgramExecute получает путь к недавно созданному .exe файлу $ProgramExecute = Get-ChildItem -Include *.exe -Recurse | Sort-Object LastWriteTime -Descending | Select-Object Name -First 1 -exp fullname # запуск последней скомпилированной программы Invoke-Item $ProgramExecute

Для создания скрипта (файла .ps1) вам понадобится вставить этот код в интегрированную среду сценариев Powershell ISE, найти её можно через пуск:

  • Запуск Powershell ISE

Теперь для успешного запуска скрипта нам нужно изменить политику вашего Powershell, делается это следующим образом: открываем пуск, пишем в поиске Powershell (без ISE), открываем от имени администратора и вписываем туда команду Set-ExecutionPolicy RemoteSigned.

  • Запуск команды в Powershell

Итак, если скрипт находится в папке с файлами C#, то после двойного нажатия по скрипту компиляция произойдет успешно. Но вот незадача, вкладка «Запуск» в Notepad++ принимает только .exe файлы, следовательно нам нужно конвертировать наш скрипт из .ps1 в .exe.

Конвертация скрипта из PS1 в EXE

В качестве преобразователя я буду использовать скрипт, написанный на Powershell, который можно скачать по следующей ссылке https://gallery.technet.microsoft.com/PS2EXE-Convert-PowerShell-9e4e07f1. После загрузки извлеките все файлы архива в удобное для вас место и откройте Powershell. Перед началом использования преобразователя нужно прописать следующую команду: Powershell.exe -version 2.0. Далее, с помощью команды cd перейдите в директорию, куда вы извлекли содержимое файла (к примеру cd C:/Users/Admin/Desktop). Почти готово! Теперь нужно выполнить команду, которая преобразует наш файл формата .ps1 в .exe файл:

ps2exe.ps1 -inputFile (путь к .ps1 файлу) -outputFile (имя файла .exe, например Program.exe)

У меня это имеет следующий вид:

.C:Users\Egor\Desktop> .\ps2exe.ps1 -inputFile C:Users\Egor\Desktop\Program.ps1 -outputFile Proram.exe

В случае успешного завершения вы увидите следующее сообщение:

  • Результат работы скрипта

Вот и всё! Теперь осталось только составить удобную для вас комбинацию клавиш которая будет запускать этот .exe файл, для этого нужно перейти во вкладку «Запуск»>«Запуск...»>Указать путь к файлу>«Сохранить».

Далее, будет предложено дать имя сочетанию клавиш, у меня это Compile с сочетанием Ctrl+R. Весь исходный код и готовый .exe файл можно скачать тут: https://github.com/Gornostalev/firtsprojects.

Поиск одинаковых элементов в массиве на Javascript

Для решения задачи можно написать обход массива в цикле, но у объекта Array уже есть несколько удобных методов, которые нам помогут.

Как в Javascript получить массив уникальных значений (unique array)?

Несколько наиболее простых вариантов получения массива уникальных(неповторяющихся) значений в Javascript.

Разбираемся со связкой React и Redux на простейшем примере

Простой пример, который поможет быстро разобраться, как управлять данными с помощью библиотеки Redux в ваших приложениях на React.

Комментарии (0)

Зарегистрируйтесь или авторизуйтесь, чтобы оставлять комментарии.