LINUX.ORG.RU
ФорумTalks

Где задавать нубские вопросы про MS Visual Studio 2022?

 , ,


0

2

Сунулся на RSDN — восстановление пароля не работает, регистрация нового пользователя тоже. Сунулся на Ru.Board — за день никто не ответил. Что ещё осталось?

(Проблема была в моём незнании различий между .NET Platform и .NET Framework, если интересно. Уже разобрался.)

★★★★★

Вообще-то, есть для ЛОРа годная стратегия. Появился у тебя вопрос, не задавай его. Напиши хейт-пост, мол хрень это полная, вот так не работает, вот тут не откликается, и т.д. Главное — больше экспрессии. Тут в тему набегают местные виндузятники, у них от возмущения рвёт пятую точку и они ясно и доходчиво объясняют тебе по фактам, что ты лаймер и не знаешь матчасти, а надо вот так и вот так.

imul ★★★★★
()

Дата регистрации: 14.09.08

До сих пор не знаешь, куда тут посылают вендоузятнегов?

Wapieth
()

Когда работал, вёл более-менее активную переписку с МС. Теперь не знаю, чем тебе помочь, все контакты вытер.

sparkie ★★★★★
()

Попробуй спросить на opensource.ru , слышал, что там сидят специалисты по всем вопросам. Должны помочь.

aiqu6Ait ★★★★
()
Ответ на: комментарий от imul

На винфаке же

Я предлагаю сделать такой раздел на лоре. Там все равно тусили одни и те же люди.

vasya_pupkin ★★★★★
()

на собеседовании, приглашаешь кандидатов и задаешь любые вопросы.

Kolins ★★★★★
()
Ответ на: комментарий от imul

winfaq.com.ru
windowsfaq.ru

Оба не работают. Каков новый адрес?

Xintrea ★★★★★
()
Ответ на: комментарий от lovesan

Что ж. Вот конкретные вопросы по .NET и C#:

  1. Как называется компиляция исходников в 2 файла: кроссплатформенный DLL и запускалку EXE? В каких случаях получается так, а в каких — один EXE?

  2. Как из программы узнать путь к бинарнику? Что сделать, чтобы прикратило ругаться на System.IO.Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]); ?

  3. Как положено из программы использовать системные переменные?

  4. В программе есть вызов внешнего бинарника с подстановкой системной переменной: MCQWERTY.Context.Execute(@"%CUSTOM_TMP%\blob1.exe", ...); Если запускать бинарник из командной строки в консоли, задав CUSTOM_TMP через set, это работает. В Visual Studio 2022 под отладчиком не работает, хотя переменная задана в настройках проекта. Как её правильно задавать? (MCQWERTY — класс из подключённых к проекту DLL дотнетовых сборок.)

  5. Как запустить настройки отладчика не в окне «Launch Profiles», а во вкладке, как все остальные настройки?

  6. Требуется редактировать файл на C#, использующий несколько дополнительных .NET assemblies, компилировать его (либо вызывать для него cscs.exe) и прогонять под отладчиком. Для этого необходимо ставить новый VS Community, или есть что-то более легковесное? VS Code так может?

  7. Чем может быть вызвана ошибка «Load library fail: C:\Program Files...; ErrorCode: 193»?

  8. Вдогонку к 2. Скрипт может запускаться как скрипт через cscs, а может компилироваться в бинарник. Во втором случае путь нужно брать из Environment.GetCommandLineArgs()[0], в первом — из Environment.GetCommandLineArgs()[1] т.к. нулевой — cscs. Как автоматически распознавать каким запускается?

question4 ★★★★★
() автор топика
Последнее исправление: question4 (всего исправлений: 3)
Ответ на: комментарий от seiken

У ИИ спрашивали?

Нет. Не считая справочного сайта MS, который теперь переводит ИИ. Этот перевод местами вгонял меня в ступор. Боюсь, с ответами ИИ будет не лучше.

question4 ★★★★★
() автор топика
Ответ на: комментарий от DumLemming

А кстати. Есть 64-битная DLL, нормально работающая под Вайном. Есть несколько дотнетовских сборок, которые используют классы и функции из неё. Есть скрипты на C Sharp (https://github.com/vassilych/cscs), которые используют эти сборки. Компилятор C# может собрать из них бинарник, который нормально работает под Моно, если не вызывает эту DLL.

  1. Как задействовать Вайн, чтобы обрабатывались вызовы этой DLL?

  2. В каком IDE лучше это отлаживать под Линуксом?

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

Хм, я конечно убегаю сейчас, пни чтоб в уведомлениях было.

1 кроссплатформа зависит от того что ты при создании проекта в платформах укажешь

2 рефлексия, если надо без рефлексии то ХЗ, никогда такого не делал, уверен гугл ответит

3 как угодно как сможешь

4 и 5 сходу не скажу

6 если шарп, то кроме VS Community вообще нет смысла что-то использовать, хотя скорее всего можно через консольку в оффтопике, точно знаю что с переводами на языки средствами дотнета именно студия генерирует нужные классы. Но у тебя вроде задачи компиляции

7 либо файл повреждён, либо ты пытаешься 64 битную либу в 32 битное приложение засунуть ну или наоборот 32 битную либу в 64 битное приложение

8 что за cscs? не люблю я такие аббриевиатуры про которые даже гугл ничего внятного не выдаёт, поправь пожалуйста или ссылку кинь - единственный вопрос из-за которого я в гугл полез из твоих.

peregrine ★★★★★
()
Ответ на: комментарий от question4

О увидел, не знаю что тут за велосипед и как он работает. Надо смотреть. В общем случае смотри что в argv argc лежит так и эдак.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

что за cscs?

https://github.com/vassilych/cscs

Позволяет запускать скрипты на C#. Скрипт от 1 до нескольких сотен строк компилируется полминуты. Есть мнение, что так можно заменить скриптовые движки, знатоки которых уходят на пенсию, благо студентов со знанием C# полно. Есть также мнение, что продукт настолько сырой, что проще сразу компилировать, чем ловить баги и ждать, пока Василич их починит :)

P.S. Насколько я понял, использование дотнета в качестве скриптового движка — штатная фича, а этот «велосипед» — одна из возможных реализаций. Но если я правильно понял справку на сайте MS, пока мы осваивали данную фичу, MS уже объявил её устаревшей.

question4 ★★★★★
() автор топика
Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от question4

Как называется компиляция исходников в 2 файла: кроссплатформенный DLL и запускалку EXE?

Какого то специального термина для этого нет

В каких случаях получается так, а в каких — один EXE?

«так» получается по умолчанию, а что бы один файл был нужно

<PublishSingleFile>true</PublishSingleFile>
в проект добавить и сделать Publish.

Как из программы узнать путь к бинарнику?

AppDomain.CurrentDomain.BaseDirectory

Как положено из программы использовать системные переменные?

Environment.GetEnvironmentVariable

Как её правильно задавать?

Что бы работало везде, можно задать в настройках операционной системы.

Как запустить настройки отладчика не в окне «Launch Profiles», а во вкладке, как все остальные настройки?

Никак

VS Code так может?

Да

Чем может быть вызвана ошибка «Load library fail: C:\Program Files...; ErrorCode: 193»?

Библиотека у тебя не той системы.

arax ★★
()
Ответ на: комментарий от lovesan

Сутки прошли. Ответов нет и не предвидится. Самый бесполезный человек на форуме :)

question4 ★★★★★
() автор топика
Ответ на: комментарий от arax

<PublishSingleFile>true</PublishSingleFile>

Спасибо, но я столкнулся с противоположной проблемой — нужна была отдельная DLL, а собиралось в 1 файл, хотя всё было по умолчанию. В итоге выяснил, что следовало создавать проект «Console App C#», а не «Console App .Net Framework C#».

Чем может быть вызвана ошибка «Load library fail: C:\Program Files…; ErrorCode: 193»?

Библиотека у тебя не той системы.

Библиотека как раз была той, Win64, а вот проект — не той. .Net Framework с настройками по умолчанию собирается несовместимым с 64-разрядными, как выяснилось.

AppDomain.CurrentDomain.BaseDirectory
Environment.GetEnvironmentVariable

Спасибо.

Как её правильно задавать?

Правильный ответ, как оказалось — не заключать пути с пробелами в кавычки.

question4 ★★★★★
() автор топика
Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от peregrine

7 либо файл повреждён, либо ты пытаешься 64 битную либу в 32 битное приложение засунуть ну или наоборот 32 битную либу в 64 битное приложение

Вот именно, только несколько неожиданным образом. Перепутал «Platform» и «Framework», поэтому внезапно собиралось 32-битное приложение.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

Ну а ты как хотел? Без внимательности в программировании никак. Вроде на все вопросы тебе в треде уже ответ дали?

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Вроде на все вопросы тебе в треде уже ответ дали?

Но не все ответы меня устраивают :)

Я надеялся побольше узнать про «Customizable Scripting in C Sharp», так как технология вполне кроссплатформенная. Но оказалась слишком малоизвестной.

Я надеялся, что есть более удобный доступ к настройкам отладчика. Не вышло.

Спасибо за попытки помочь.

В любом случае, VS мне вряд ли понадобится раньше следующей осени.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4
  1. Ниче не понял. Он тебе по разному может сделать, и так и так. При exe/winexe OutputType делает запускалку.

  2. Assembly.GetEntryAssembly().Location

  3. Обычно, для веб-приложений итп - через конфиги. гугли Microsoft.Extensions.Abstractions.Configuration

  4. launchSettings.json

  5. ^

  6. Нихера не понял, хз. Есть edit & continue, есть разное другое, зачем ставить чето итд, я не знаю. Студия подхватывает все загруженные .NET сборки. Можно подключаться просто как attach process.

https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-

ERROR_BAD_EXE_FORMAT

193 (0xC1)

%1 is not a valid Win32 application.

Битый бинарник.

  1. Очевидно по наличию cscs в argv[0]. Я его никогда не использовал, хз зачем он нужен.

Вообще для всего этого надо использовать Roslyn итп, а не дрочить вприсядку. А для скриптов - динамические языки. И вообще надо с лиспом работать, а не с этим C# сраным

https://github.com/Lovesan/bike

lovesan ★★★
()

почему на лоре пользователей виндовс не обьявляют иноагентами? с лишением всех звезд, и кормления на корпоративах.

alysnix ★★★
()

В copilot, логично же

One ★★★★★
()
Ответ на: комментарий от lovesan
  1. Ниче не понял.

Как обычно :) Объяснение в стартовом посте. Не туда ткнул в визарде.

  1. Assembly.GetEntryAssembly().Location

Спасибо, попробую, когда вернусь к этой задаче. Через полгода-год.

  1. … гугли Microsoft.Extensions.Abstractions.Configuration

Гугл про такое не знает :)

Если для этого нужно доустанавливать пакет Microsoft.Extensions.Configuration.Abstractions, то не годится.

launchSettings.json

  1. Как в нём записывать системные переменные с пробелами?

  2. Где в нём настройки окна/вкладки настроек дебагера?

  1. Нихера не понял

Вопрос был о замене Студии на VSCode или VSCodium.

  1. Битый бинарник.

Ответ неверный. Все бинарники были валидные. Но оказались под разные платформы из-за п.1.

для всего этого надо использовать Roslyn

На нём и начинали. Года 2 как от него отказались. Глючит при параллельном запуске.

question4 ★★★★★
() автор топика
Ответ на: комментарий от alysnix

почему на лоре пользователей виндовс не обьявляют иноагентами? с лишением всех звезд, и кормления на корпоративах.

Потому что:
1. Пользователь, пользователю рознь. Кому-то это по работе нужно, кому-то для своего хобби ибо софт вантуз онли, кому-то...
2. То что человек пользуется виндой не означает, что он пользуется только виндой.

anc ★★★★★
()
Ответ на: комментарий от question4

Неделя после праздников прошла :)

Какая неделя? Окончательный только вчера был. :)

anc ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)