Исправил запуск по Ctrl+F5, но есть вопросы...
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.03.10 10:18
Оценка:
Запуска без отладки (по Ctrl+F5) всегда вел себя странно. Он всегда запускал отладочную версию (не смотря на то какая конфигурация активна) и закрывался сразу по завершении программы не давая увидеть ее результат.

Я это дело пофиксил, но есть некоторые проблемы.

Во-первых, сейчас при нажатии Ctrl+F5 не происходит сборки проекта. Это видимо нужно устранить.

Во-вторых, я всегда создают пакетный файл (.cmd-файл) в который добавляю вызов программы затем команду pause. Так вот проблема в том, что это работает для все видов исполнимых файлов запускаемых на выполнение. Так что если вы отлаживаете ГУИ-приложение, то все равно получите командную строку.

Я пока не понял как по исполнимому файлу определить является ли он консольным приложением или нет. Если кто-то знает как это определить, будьте добры поделится опытом!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Исправил запуск по Ctrl+F5, но есть вопросы...
От: nikov США http://www.linkedin.com/in/nikov
Дата: 29.03.10 10:49
Оценка: 43 (1)
Здравствуйте, VladD2, Вы писали:

VD>Я пока не понял как по исполнимому файлу определить является ли он консольным приложением или нет. Если кто-то знает как это определить, будьте добры поделится опытом!


Ecma-335, Partition II, 25.2.3.2 PE header Windows NT-specific fields, поле SubSystem
HOWTO: How To Determine Whether an Application is Console or GUI
Re[2]: Исправил запуск по Ctrl+F5, но есть вопросы...
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.03.10 12:19
Оценка:
Здравствуйте, nikov, Вы писали:

N>Ecma-335, Partition II, 25.2.3.2 PE header Windows NT-specific fields, поле SubSystem

N>HOWTO: How To Determine Whether an Application is Console or GUI

Здорово. Но нет ли такого же кода в менеджед виде?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Исправил запуск по Ctrl+F5, но есть вопросы...
От: nikov США http://www.linkedin.com/in/nikov
Дата: 29.03.10 12:43
Оценка:
Здравствуйте, VladD2, Вы писали:

N>>Ecma-335, Partition II, 25.2.3.2 PE header Windows NT-specific fields, поле SubSystem

N>>HOWTO: How To Determine Whether an Application is Console or GUI

VD>Здорово. Но нет ли такого же кода в менеджед виде?


Ну, например, http://ccimetadata.codeplex.com/
PEFileReader.IsConsoleApplication
Re[4]: Исправил запуск по Ctrl+F5, но есть вопросы...
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.03.10 14:24
Оценка:
Здравствуйте, nikov, Вы писали:

N>Ну, например, http://ccimetadata.codeplex.com/

N>PEFileReader.IsConsoleApplication

Здорово, но PEFileReader — это internal unsafe класс. А через что его можно использовать?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Исправил запуск по Ctrl+F5, но есть вопросы...
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.03.10 14:30
Оценка:
Здравствуйте, nikov, Вы писали:

N>Ну, например, http://ccimetadata.codeplex.com/

N>PEFileReader.IsConsoleApplication

В общем этот PEFileReader похоже не выковырять. Он там используется для внутренних целей.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Исправил запуск по Ctrl+F5, но есть вопросы...
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.03.10 15:37
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Я пока не понял как по исполнимому файлу определить является ли он консольным приложением или нет. Если кто-то знает как это определить, будьте добры поделится опытом!


А VSLangProj.prjOutputType не поможет?
... << RSDN@Home 1.2.0 alpha 4 rev. 1446>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: Исправил запуск по Ctrl+F5, но есть вопросы...
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.03.10 15:40
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>А VSLangProj.prjOutputType не поможет?


Нет. Исполнимый файл может быть не результатом компиляции проекта, а чем угодно. Например, это может быть nunit-console.exe.

Собственно всего пол дня поисков и вуаля:
http://rsdn.ru/forum/dotnet/3753979.1.aspx
Автор: VladD2
Дата: 29.03.10


Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Исправил запуск по Ctrl+F5 - окочательный вариант
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.03.10 18:48
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Запуска без отладки (по Ctrl+F5) всегда вел себя странно. Он всегда запускал отладочную версию (не смотря на то какая конфигурация активна) и закрывался сразу по завершении программы не давая увидеть ее результат.


В общем, исправил как мог.

Теперь при нажатии Ctrl+F5 происходит запись всех не записанных файлов, попытка компиляции активного проекта, и если она удалась, то запуск приложения без отладки. Если приложение консольное или в качестве запускаемого модуля используется консольное приложение, то после его окончания выдается предложение нажать любую кнопку для окончания работы (как в шарпе). Естественно, что при выбранной релизной конфигурации запускается релизный модуль, а при дебажной — дебажный.

Единственно чего не удалось добиться — это вывода прогресса компиляции в окно Output. В остальном похоже на поведение C#-проектов.

Тестировал на консольных проектах и WinForms-проектах.

Не тестировал на вебнутых проектах.

Просьба по тестировать ревизию 8689.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.