FarNet — плагин для написания плагинов на .NET языках

Здесь можно обсудить ваш любимый плагин.
User avatar
NightRoman
Posts: 6053
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 50 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman »

Latest post of the previous page:

:) прочитайте README с самого начала, включая Requirements.
И поставьте Invoke-Build. Например: Install-Module InvokeBuild -Force
Это небольшой и полезный скриптовый модуль для а ля мейк файлов в ПШ. Потом удалите, если не нужен, от него ничего не останется.
User avatar
NightRoman
Posts: 6053
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 50 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman »

Хочу добавить, что вы неправильно понимаете назначение команд Install-Package.

То, что вы вызываете Install-Package из консоли ПШ, это вот эта команда:
https://docs.microsoft.com/en-us/powers ... rshell-5.0

Она чего-то там делает, я толком и не знаю, никогда ей не пользуюсь.
Куда-то скачивает пакет, словом. Для своих каких-то дел и правил.

А то, что вы думаете, что вызываете, то что NuGet советует как "PM> Install-Package ..."
(обратите внимание на приглашение PM>, а не PS>) -- это другая команда и
инструмент, она должна вызываться внутри Студии в специальной консоли пакет
менеджера. И предназначена она для добавления ссылки на пакет в проект, ну и
скачивания тоже. Кстати, я тоже никогда этой командой не пользуюсь.

Если объясните, что именно вы хотите сделать, вызывая Install-Package, и в
какой ситуации, то я подскажу, что на самом деле нужно делать вместо этого.

Но если честно, я все требования и шаги расписал в README. Если что-то надо
переписать, чтобы было понятно даже неискушенным, я это сделаю. Советуйте,
пожалуйста.
User avatar
citRiks
Posts: 1446
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 439 times
Been thanked: 91 times

FarNet — плагин для написания плагинов на .NET языках

Post by citRiks »

NightRoman,
Приветствую, вчера таки в итоге получился каменный цветок, но не успелось сообщить об этом :)
Получилось через ваш Invoke-Build, на него install-Module,
потом он довольно гладко скачал все что нужно, и у меня запустился javascript пример из readme.md.
до этого я экспериментировал с "выковорять из nupkg-es все нужные DLL и сложить их всех в папку farhome\farnet\modules\clearscript".
но это кажется что не сыграло роли.
Но все же, в этой powershell-вселенной, нельзя ли просто взять нужные файлы ДЛЛ + скрипты,
сложить в правильное место, и чтобы заработало без изощрений с онлайн-установкой?
что делать непосвяшенным если нужна оффлайн установка?
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
citRiks
Posts: 1446
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 439 times
Been thanked: 91 times

FarNet — плагин для написания плагинов на .NET языках

Post by citRiks »

NightRoman wrote: Mon 21 Dec, 2020 05:05 Но если честно, я все требования и шаги расписал в README. Если что-то надо
переписать, чтобы было понятно даже неискушенным, я это сделаю. Советуйте,
пожалуйста.
думаю надо написать какие версии повершелла допустимы.
а то юзер при первой неудаче может пойти обновлятся,
а в распоследней версии например powershell.exe уже называется pwsh.exe,
и в любом случае новая установка/переустановка внесет еще большую сумятицу.
Далее, онлайн установки когда они работают эти это хорошо,
но если это не настроено, то это плохо для начала работы.
Например, в древних Виндах (7) и повершеллах (3-4, 5?) используется SSL/TLS,
на который уже не согласны новые сайты дистрибюции (скачки) пакетов,
ошибка на это выдается крайне невнятная,
и обычному нормальному человеку получается совсем непонятно,
и я бы даже сказал наносит репутационные ущербы идее вообще приближаться к powershell.
Как я уже сказал, а нельзя ли сделать так,
чтобы разложить нужные файлы (DLL, scripts) в нужные места,
и чтобы ФарНет их сам обнаруживал и импортировал?
Онлайн-установки в windows это отдельный вид исскуства,
к этому снаряду лучше не подходить без разминки на чем нибудь попроще

Отмечу что powershell для мира M$/windows это необходимость и польза,
если умеючи, и не касаясь онлайн-дистирбуций,
то powershell 7.0 уже выглядит достойно сам по себе,
и его уже можно и нужно пользовать вместо cmd.exe,
чего нельзя было сказать о первых версиях powershell
А FarNet - это огромная хорошо проделанная работа,
и по содержанию и по оформлению, спасибо!
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
NightRoman
Posts: 6053
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 50 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman »

citRiks wrote: Mon 21 Dec, 2020 05:25 Но все же, в этой powershell-вселенной, нельзя ли просто взять нужные файлы ДЛЛ + скрипты,
сложить в правильное место, и чтобы заработало без изощрений с онлайн-установкой?
что делать непосвяшенным если нужна оффлайн установка?
Теоретически можно, практически нет. К такому пакету все равно нужна будет простыня инструкций, и выполняя ее вручную (если еще прочитает, а это не всегда, да?) пользователь что-нибудь напортачит. Поэтому предлагается онлайн установка со скриптом, который все делает правильно. Такая установка не требует никаких знаний о пакетах и установщиках. Плюс, такая установка позволяет и обнолять все без всяких сложностей.

Если нужна оффлайн установка, то соберите все, что нужно, на машине с инетом онлайн установкой, запакуйте и носите на флешке куда надо. Что еще тут можно посоветовать?
User avatar
NightRoman
Posts: 6053
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 50 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman »

citRiks wrote: Mon 21 Dec, 2020 06:08 Например, в древних Виндах (7) и повершеллах (3-4, 5?) используется SSL/TLS,
на который уже не согласны новые сайты дистрибюции (скачки) пакетов,
ошибка на это выдается крайне невнятная,
и обычному нормальному человеку получается совсем непонятно,
и я бы даже сказал наносит репутационные ущербы идее вообще приближаться к powershell.
Можно подробнее (нормальный баг репорт про установку). Наверняка есть какой-то способ в моем скрипте и сообщение об ошибке улучшить, а то и workaround какой автоматически выполнить.
User avatar
citRiks
Posts: 1446
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 439 times
Been thanked: 91 times

FarNet — плагин для написания плагинов на .NET языках

Post by citRiks »

NightRoman wrote: Mon 21 Dec, 2020 06:35 Можно подробнее (нормальный баг репорт про установку). Наверняка есть какой-то способ в моем скрипте и сообщение об ошибке улучшить, а то и workaround какой автоматически выполнить.
дома есть более оформленное обьяснение этой незадаче,
a пока даю эти первые попавшиеся ссылки:
Trying to install program using Powershell and getting this error
https://answers.microsoft.com/en-us/win ... 83827da143
PowerShell Installing NuGet, says unable to access internet, but I actually can
https://stackoverflow.com/questions/558 ... tually-can

solved these ways, before downloading in code:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
or server/host wide in code:

Code: Select all

# Set strong cryptography on 64 bit .Net Framework (version 4 and above)
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
# Set strong cryptography on 32 bit .Net Framework (version 4 and above)
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord 
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
NightRoman
Posts: 6053
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 50 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman »

А при установке чего именно это происходит?
(Не выглядит как установка FarNet или PowerShellFar.)
User avatar
citRiks
Posts: 1446
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 439 times
Been thanked: 91 times

FarNet — плагин для написания плагинов на .NET языках

Post by citRiks »

NightRoman,
насколько я понял, при установке всего что требует онлайн,
например вот цитаты:
Install Ldbc and FarLite modules from the PowerShell gallery by these commands:
..
FarDescription is published as the PSGallery module.
You can install the module by this command:
Install-Module FarDescription
PSGallery - online repository. из online repositries (не) скачивается. Потому что ТЛС1.0
а также все что идет через скачивание чег-бы то нибыло повершеллом, НуГеты и иже с ними
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
NightRoman
Posts: 6053
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 50 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman »

citRiks,
Эта тема для обсуждения FarNet... Ладно, пусть и PowerShellFar, они исторически неразлучны, FarNet для PowerShellFar мною и разрабатывался, в первую очередь. А вы про проблемы установки FarLite, FarDescription, и только сейчас упоминаете это. (не осуждаю, а так, ворчу)

Ну что сказать... FarNet не виноват. Его документация не может быть пособием по всем возможным проблемам установки чего-то еще. Если пользователь что-то хочет использовать в какой-то области (PowerShell, NuGet, PSGallery, Install-Module, LiteDB, MongoDB, F#, ...), он должен иметь какой-то уровень знаний в этой области.
Last edited by NightRoman on Mon 21 Dec, 2020 18:46, edited 1 time in total.
User avatar
NightRoman
Posts: 6053
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 50 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman »

citRiks wrote: Mon 21 Dec, 2020 08:38 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Нужен ли этот ход при установке FarNet и "обычных" модулей? Иначе говоря, нужно ли это хотя бы упомянуть тут -- https://github.com/nightroman/FarNet/bl ... Net.en.txt ?
У меня нет этих проблем, на все машинах все новое стоит, все работает. Нужен конструктивный совет от тех, кто сталкивается с проблемами, чтобы что-то изменить.
User avatar
lordmuzer
Posts: 525
Joined: Mon 12 Nov, 2007 22:05
Location: Киев
Has thanked: 14 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by lordmuzer »

Короткий ответ - нужен. Для ОС server 2008 и старше.
Last edited by lordmuzer on Mon 21 Dec, 2020 19:32, edited 1 time in total.
User avatar
NightRoman
Posts: 6053
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 20 times
Been thanked: 50 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman »

lordmuzer,
Спасибо, подскажите, как это сформулировать в инструкциях.

Или если это можно сделать в коде PowerShell установщика, то как правильно? (протестировать сам не смогу)
Например, если я всегда буду ставить Tls12 перед скачкой с NuGet, это будет правильно? (потом верну старое значение, конечно, для порядка)
User avatar
citRiks
Posts: 1446
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 439 times
Been thanked: 91 times

FarNet — плагин для написания плагинов на .NET языках

Post by citRiks »

NightRoman wrote: Mon 21 Dec, 2020 19:09
citRiks wrote: Mon 21 Dec, 2020 08:38[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Нужен ли этот ход при установке FarNet и "обычных" модулей? Иначе говоря, нужно ли это хотя бы упомянуть тут -- https://github.com/nightroman/FarNet/bl ... Net.en.txt ?
У меня нет этих проблем, на все машинах все новое стоит, все работает.
Нужен конструктивный совет от тех, кто сталкивается с проблемами, чтобы что-то изменить.
Да, нужен, вроде как 99.99% помню так, я про эту проблему и узнал когда стал устанавливать всякое с повершеллом.
ну это можно и нужно запихать в скрипт повершелловских, и/или дотнетский, да во все скрипты на всякий случай, наверное
может тогда отдельная инструкция и не понадобиться.
Сейчас увы не успевается повторить все с нуля (удивляюсь как вы успеваете себе делать и еще и публиковать оформленное?)
но кажется что это повторяемая на всех компютерах с Windows7 по крайней мере проблема,
в то же время, если знать где она, то легко решаемая в деплоймент скрипте
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
citRiks
Posts: 1446
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 439 times
Been thanked: 91 times

FarNet — плагин для написания плагинов на .NET языках

Post by citRiks »

P.S.
Сам Фар.Нет установился из НуПкджа без проблем,
да, методом доставания оттуда файлов и раскладывания их, как вы где-то написали
но вот дальше, как только добыча и установка самих модулей, и все что берется с онлайна, - то печаль-беда..
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
citRiks
Posts: 1446
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 439 times
Been thanked: 91 times

FarNet — плагин для написания плагинов на .NET языках

Post by citRiks »

NightRoman wrote: Mon 21 Dec, 2020 19:52 Например, если я всегда буду ставить Tls12 перед скачкой с NuGet, это будет правильно? (потом верну старое значение, конечно, для порядка)
Ну да, так и предлагается в качестве решения
И эта настртойка как я понимаю, не persistent, оно касается только current execution/session.
Если у вас будет желание и время, то наверно логичнее взять откуда нибудь виртуалку Windows 7,
и проверить на ней установки ФарНета+ПоверШелл модулей, можно даже без маеты с produkt keys,
как минимум месяц она будет жить без ключей (а потом только скулить что без ключей)
например вот ссылки где взять (caм не ппроверял)
Windows 7 Direct Download Links
https://www.heidoc.net/joomla/technolog ... load-links
https://www.heidoc.net/joomla/technolog ... nload-tool
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
Post Reply

Return to “Обсуждение плагинов”