Используйте \interfootnotelinepenalty=10000
для общего запрещения этого. Но будьте подготовлены к другим артефактам расположения... Установка штрафа ниже, чем 10 000 даст TEX некоторую гибкость в решении, когда побочные эффекты будут слишком плохи для переноса.
Для детального обсуждения видят объект FAQ TEX , Почему ЛАТЕКС разделяет сноски через страницы?
В прошлом я делал это разными способами, в зависимости от того, как работает программа. Я думаю, что самый простой способ сделать это с помощью директивы препроцессора if #DEBUG вокруг Debugger.Launch () таким образом, когда вы построили оптимизированный проект, вызов Debugger.Launch () не будет компилироваться в сборку.
Один из способов, которым мы также выполнили эту задачу, - это System.Windows.Forms.MessageBox.Show («прикрепить»), который позволял нам вручную подключаться к отладчику всякий раз, когда отображалось диалоговое окно «прикрепить».
Последний способ, который Я не предпочитаю изменять поведение вашей службы на основе переданных параметров командной строки. В основном я предпочитаю НЕ запускать службы с помощью ServiceBase.Run всякий раз, когда определенный параметр был запущен, но вызывая класс, который инкапсулирует поведение / основную функцию служба.
Вам необходимо подключить отладчик напрямую к службам Windows. Это может вам помочь: http://msdn.microsoft.com/en-us/library/7a50syb3%28VS.80%29.aspx .
Вы хотите отладить метод OnStart? В таком случае вы можете использовать System.Diagnostics.Debugger.Launch ()
или метод System.Diagnostics.Debugger.Break ()
, чтобы получить возможность подключить отладчик во время работы метода при запуске, иначе вы всегда будете поздно подключать отладчик.
Думаю, предложение толстого кота подключить ваш отладчик к процессу службы звучит правильно. Если и это не помогает, попробуйте использовать Debug.WriteLine и DebugView .