Alexey Polyakov, Пока не могу ничего обещать, но могу посмотреть ваш файл. Киньте в почту? Можно не целый файл, а только часть, если что-то секретное - удалите, мне просто для анализа. И немного комментариев по последовательности ввода и вообще по работе с файлом.
Спасибо, но это фокус я знаю. Я там в примере кода косвенно указал что переменная i находится в корне области видимости.
Речь идёт о корневой области видимости.
Предположим, что решения в таком наборе условий нет, но если задача бороться с совпадением перемен при copy-paste, то может быть что-то может предложить рефакторинг? например, сообщить, что при вставке обнаружены совпадения имён переменных. И показать их список. Тоже было бы подспорье. Не знаете такого?
SmInc, Это-то я знаю. Внутри блоков можно скрывать переменные от внешнего доступа, но в данном случае переменная i объявлена в корне области видимости. Понимаю, что даже слова "область видимости" намекают, но ведь вроде нигде не написано, что её нельзя отменить?
Библиотека лежит в каталоге рядом с основной программой. Где она используется по ссылкам я тоже знаю. Но это не помогает. Точки останова всё равно будут срабатывать только на загруженной библиотеке, поэтому тут стандартный отладчик не сильно поможет. Нужно понять кто именно хочет видеть её раньше времени и провоцирует загрузку.
Мест, где используется библиотека настолько дохрена, что тут только философствовать... или что-то придумать.
Я только что понял, что моё незнание глубже, т.к. я до сих пор не осознавал как вообще собирается проект. Да, действительно, промежуточные файлы складываются в obj\Debug (в зависимости от настроек). Т.е. этот каталог не случаен.
В итоге на этот каталог указывает свойство IntermediateOutputPath:
Этот файл подключается через ссылку в проекте:
Правильно ли я это выяснил?
"и пользователь должен знать только то, что форма не отправилась". Это не работает для случаев редиректов на повторную аутентификацию, например. В этом случае вы на ожидаемый JSON получите html, но обработать его не сможете, т.к. не знаете, что за html вам прислал сервер. А это потому что браузер пропускает промежуточные редиректы и возвращает клиенту только конечный результат. Но примеров больше.
Обработка ошибок в ajax-запросе самое отвратительное занятие.
Зелимхан Бельтоев . Дополнение
Пошёл немного дальше и теперь не использую переменных при регистрации ошибок, а сразу пишу номер ошибки именно в том месте, где этот номер нужен: